在两周前,FortiGuard实验室发现了一份恶意文件,文件名称为“Draft PH-US Dialogue on Cyber Security.doc”,带有很强的政治主题。这份文件旨在利用漏洞CVE-2017-11882,一旦成功,它会在受害者的%temp%目录中放入一个恶意软件。
我们对这个恶意软件的分析显示,它属于Hussarini,也叫Sarhust,一个后门家族,自2014年以来一直被积极用于针对东盟地区国家的高级持续性威胁(Advanced Persistent Threat,APT)攻击。
据报道,菲律宾是东盟中最容易受到APT攻击的国家。在2016年发生了数起大规模数据泄露事件后,菲律宾开始加大了对于网络攻击防御的投资。然而,尽管有了这些投资,菲律宾似乎仍然是最容易被这些APT攻击作为目标的国家之一。
利用漏洞的文档
我们的分析从利用CVE-2017-11882漏洞的名为“Draft PH-US Dialogue on Cyber Security.doc”的文档开始。在成功利用之后,恶意文档文件会在%Temp%目录中放入两个文件。
l Outllib.dll
l OutExtra.exe
OutExtra.exe实质上是经微软签名的合法应用程序,名为finder.exe。此文件是Microsoft Office套件的一部分,可用于在Outlook数据文件中查找关键字。但是,在此攻击中,这个文件被用于通过DLL劫持加载Hussarini后门。
DLL劫持(DLL hijacking)是一种被某些APT恶意软件使用的技术,原本用于加载良性DLL的合法应用程序(.exe)将会因被欺骗而加载一个包含恶意代码的DLL。通过使用这种技术,恶意软件可以逃避主机入侵防御系统(HIPS)的监视。大多数HIPS工具都会将已签名或受信任的文件列入白名单,因此通过对已签名文件进行DLL劫持所加载的任何恶意软件都会被监视行为排除在外。在此攻击的上下文中,OutExtra.exe原本是一个已签名的合法应用程序, 然而它因被欺骗而加载了一个伪装成合法的Outllib.dll文件的恶意软件文件。
诱饵文档
为了避免引起受害者的怀疑,这个漏洞从看似合法的hxxp://157.52.167.71:29317/office/word/2003/ph2/philip.varilla下载一个诱饵文件。然而,在我们的分析中,诱饵文档的下载链接已经关闭。
然而,在查看了URI之后,我们发现了一些线索,表明黑客可能希望用户相信文档的来源。首先是“ph2”,这对菲律宾来说可能意味着“ph”,而“2”则是诱饵文档的第二个目录。其次是“philip.varilla”,通过谷歌搜索这个关键词,我们发现它可能是一个人名,指向了菲律宾信息和通信技术部(DICT)的服务总监。DICT是负责菲律宾信息和通信技术(包括网络安全)规划、开发和推广的机构。
Hussarini
事实上,文件Outllib.dll实际上是Hussarini后门,一个能够导出包含恶意代码的函数的DLL。执行文件OutExtra.exe时,会调用其中一些函数,从而有效地执行其恶意代码。
图1.Hussarini的导出函数
虽然原始的Outllib.dll也具有上面的一些函数,但请注意,它具有比后门DLL更多的导出函数。
图2.原始Outllib.dll文件的导出函数
文件大小也有很大的差异。原始的Outllib.dll的文件大小范围为4-8 MB,具体取决于版本,但假文件的范围仅为40-50 KB。文件大小差异很大的原因之一是后门DLL的导出函数中只有一个包含恶意代码。所有其他的都只是RETN函数,它们什么都不会做。
因此,我们将重点分析包含名为RenInitInstance@12的后门代码的函数。这个函数首先会实例化一个类,用于初始化bot的设置。然后创建两个并发线程,并将创建的对象作为其参数。图3. Hussarini的主函数
第一个线程充当了客户端线程,负责与命令和控制(C&C)服务器通信并监听命令。然后解析响应,并将其传递给充当worker的第二个线程。worker线程执行命令并将结果报告给客户端线程。
在与其命令和控制(C&C)通信之前,恶意软件会使用随机生成的值将一个ServerID保存在注册表中。这个ID用于标识僵尸网络中的bot。
图4. bot的ServerID
C&C通信
有趣的是,代码中有一个私有IP地址10.1.0.105,可能被用作测试C&C服务器。这个IP地址在运行时将替换为真正的C&C :publicdfaph.publicvm.com。
在与C&C进行通信时,Hussarini会使用由base64编码的自定义协议,该协议通过HTTP发送。由于代码的高层次性质和有限的分析时间,我们无法识别协议的所有字段,但了解一些重要的部分就足以理解通信的工作原理。
图5. Hussarini协议
它发送的初始数据包含生成的ServerID、大小和消息的校验和。此数据使用base64编码,并作为参数发送给HTTP GET请求。
图6.发送给命令和控制服务器的初始消息
来自C&C的响应附有标签<CHECK></CHECK>。其中间的数据也是base64编码的。解码后,我们可以看到它遵循与初始消息相同的数据结构。
图7.来自命令和控制服务器的初始响应
检查后,恶意软件会获得以下系统信息,并通过HTTP POST请求发送给C&C:用户名、计算机名、操作系统和CPU信息。
图8.将设备信息发送给C&C
在我们能够接收到来自C&C的命令之前耗费了一些时间,当我们接收命令时,我们突然失去了与C&C的连接,这可能意味着黑客手动控制C&C。连接中断可能是因为攻击者检测到bot正在被分析并阻止了我们的分析环境与C&C通信,或者仅仅是因为bot并没有被用于执行进一步的攻击。接收到的数据包含<COMMAND></COMMAND>标签,由base64编码,并且在解码时仍然遵循与协议的相同数据结构。这些命令非常明显,因为它的字符串在解码数据后没有加密。
图9.从C&C接收到的命令
第一个命令包含字符串“cache.txt”。使用此命令调用worker线程,以在运行恶意软件的同一目录下创建以下文件。
l cache.txt
l cache.txt.cfg
第二个命令包含命令提示符(cmd.exe)的命令。
图10.从C&C接收到的下一个命令
从C&C发送的以下cmd命令随后将传递给worker线程,并写入cache.txt。
图11.用cache.txt编写的命令
写在cache.txt上的命令的描述如下:
l systeminfo –获取计算机的系统信息
l arp –a – 查看IP地址到MAC地址的映射
l ipconfig /all – 显示所有当前的TCP/IP网络配置值
l netstat -ano – 显示协议统计信息和当前TCP/IP网络连接
l tasklist -v –用于所有任务运行的应用程序和服务列表及其进程ID(PID)。
l net start –启动正在运行的各种服务
l net view –显示网络上可见的其他计算机
l dir “c:users” /o-d –显示所有用户
在发送这些cmd命令后,C&C会停止响应。这可能是黑客决定在看到这些命令的结果后阻止连接。
根据其代码,这个恶意软件能够执行以下来自黑客的命令:
l 创建、读、写文件
l 下载并执行文件/组件
l 使用cmd.exe启动远程shell
尽管其他APT后门具有更多的功能,例如键盘记录、屏幕截图等,但Hussarini只有很少的功能,包括下载和执行文件/组件的功能。不过,它的功能可以被黑客扩展。此外,由于这个后门可以启动远程cmd shell,因此攻击者可以使用所有cmd命令,如图11所示。
Hussarini使用一个动态域来保持匿名性,并且还可能能够更改C&C服务器的IP地址。但是,在进行此分析时,我们只看到它解析为IP地址157.52.167.71,这与用于托管诱饵文档的IP相同。
图12. C&C域名解析
结论
Hussarini在2014年针对菲律宾和泰国的APT活动中首次被提及。如今,这种恶意软件仍在被积极地用于针对菲律宾的攻击。菲律宾信息和通信技术部成立于2016年,并承认菲律宾的网络安全状况仍处于起步阶段。总的来说,正是由于处于初步阶段,菲律宾仍会继续成为网络犯罪/网络间谍,甚至是获国家支持攻击的目标。因此,我们预计针对该地区的攻击将继续在数量和质量上持续发展。
IOCs
SHA256:
154261a4aab73f1ceef28695d8837902cc1e8b5cca0b8fc81ddeda350564adc0 – MSOffice/CVE_2017_11882.A!tr
05dcc7856661244d082daa88a074d2f266c70623789a7bb5a919282b178d8f98 – W32/Sarhust.D!tr
CC:
hxxp://157.52.167.71:29317/office/word/2003/ph2/philip.varilla
hxxp://publicdfaph.publicvm.com:8080/
审核人:yiwang 编辑:边边