技术报告:APT组织Wekby利用DNS请求作为C&C设施,攻击美国秘密机构
最近几周Paloalto Networks的研究人员注意到,APT组织Wekby对美国的部分秘密机构展开了一次攻击。Wekby这些年一直活跃在医疗、电信、航空航天、国防和高科技等多个领域。它会在漏洞出现的第一时间就对其大加利用,就像在HackingTeam的zero-day漏洞事件中表现的那样。
Wekby使用的恶意软件是HTTPBrower恶意软件家族的一员,这种恶意软件利用DNS请求作为指令和控制机制(C&C)。此外,它还使用各种模糊处理技术,使得技术人员在分析过程中屡屡受阻。根据样本中看到的那些元数据,Palo Alto网络公司将其命名为pisloader恶意软件。
基础设施
Pisloader恶意软件家族通过HTTP从下面URL中进行传播。这个URL至今还处于活跃状态。
http://globalprint-us [.]com/proxy_plugin.exe
示例中还有在此域下的其他URL:
http://globalprint-us [.]com/proxy_web_plugin.exe
MD5:E4968C8060EA017B5E5756C16B80B012
SHA256: 8FFBB7A80EFA9EE79E996ABDE7A95CF8DC6F9A41F9026672A8DBD95539FEA82A
在忽略了垃圾代码之后,恶意软件实际上是非常简单的。开始它会随机生成一个10字节长的字母数字作为标头。其余的数据会进行base32编码,之后删除填充。此数据会用于填充子域,而这个子域就是之后的DNS请求中用于TXT记录的地方。
这种利用DNS作为C&C攻击的做法一直没有被恶意攻击者广泛采用过,除了下面这些:
· FrameworkPOS
· C3PRO-RACCOON
· FeederBot
· Morto
· 新型PlugX
与此同时,这一做法也使得pisloader可以绕过某些安全产品(如果无法绕过,这些安全产品就会发现其中的异常)。
pisloader会定期发送一个信标,其中包含被用作有效荷载的4字节随机大写字符串。下面的示例中显示了这一点:
对于pisloader预估响应之外的所有响应,恶意软件都会不予理睬。所以攻击者会设置下面的DNS,因为如果没有设置额外标明,恶意软件就没有办法进行分辨。
· 响应
· 所需的递归函数
· 可用的递归函数
“问题”和“回答资源记录”字段必须被设置为0×1值。另外,响应查询子域必须与原始DNS请求匹配。
攻击者还将远程命令和控制(C&C)服务器静态嵌入到恶意软件中去。在案例中我们还发现了“ns1.logitech-usa[.]com”主机。
C&C服务器会用一个TXT文档进行响应,而文档的加密方式与初始请求类似。在响应中,第一个字节会被忽略,剩下的数据是用的base32编码方法。下面是示例:
下面是恶意软件支持的相关命令以及它们的描述:
· sifo——收集受害者系统信息
· 驱动器——列举受害者计算机上的驱动器
· 列表——列举提供目录中的文件信息
· 上传——将文件上传到受害者计算机
· 打开——生成命令外壳程序
下面是正在使用这些命令的一些情况。我们使用了一个模拟的DNS服务器来生成命令并接收结果数据。
发送“驱动器”命令:
发送“打开”命令:
发送“sifo”命令:
列举C盘内容:
此外,大量命令都与HTTPBrowser类似。这些命令的格式化响应也是一致的。在一份已知的HTTPBrowser样例中发现了与作为讨论样本的pisloader类似的元数据,而且用来生成这些命令的代码可以通过GitHub获得。这也让我们更加确信,pisloader就是这个恶意软件家族的一员。
结论
Wekby使用更高级的恶意软件继续将矛头对准各种高机密组织机构。Pisloader恶意软件家族使用了各种新技术(将DNS作为C2协议)和各种反分析策略(利用面向返回编程)。
为此,Palo Alto网络采用了以下措施来保护用户避免这种威胁:
· 能够正确识别所有pisloader产品的WildFire
· 专门为这一系列恶意软件设计的pisloader自动对准标记
· 攻击中所使用到的所有域名、IP都已经被标记为恶意
· 已经创建了用于检测pisloader DNS通信的IPS规则