2020年2月在特定主机上发现木马被注入到系统进程内存中,其目标是外交组织。最初引起我们注意的是企业级的类API编程风格,这种方法在恶意软件世界中并不常见。从C&C服务器重用(Choopa VPS服务),目标配置技术和代码相似性,可将此活动归属于SixLittleMonkeys(aka Microcin)组织。
SixLittleMonkeys主要目标为外交实体,攻击者使用隐写术来提供配置数据和其他模块,这一次是从合法的公共镜像托管服务cloudinary.com获得的。
软件架构
所说的“类似于企业级API的编程风格”是指与套接字异步工作,客户端软件和此类木马都不需要这种服务器端编程方法。因此看来,开发人员保持了服务器编程的习惯。
其次,注入库中导出函数参数看起来更像API,如果攻击者计划更改加密或日志记录算法,他们可以在不接触网络模块的情况下进行更改。另一个注入的库导出函数参数是主机名,如果未将受感染的主机名作为参数传递,命令将不会执行,它会过滤掉所有发送给其他主机的消息。
感染时间线
后门通过dll劫持由GoogleCrashHandler.exe启动,将带有隐写下载器和解密器(spoolsv.dll)的文件注入到类似spoolsv.exe API的网络模块中,然后注入到同一系统进程中。在此新的网络模块之前,主机上已经存在另一个Microcin后门。
这个UPX打包的.dll通过合法的GoogleCrashHandler.exe执行的,其编译时间戳是假的。
流程图
下载器/解密器
攻击由spoolsv.exe加载spoolsv.dll下载器/解密器模块开始:
到目前为止已发现该模块的三个样本,文件尾部包含以下加密的配置数据。
bitmap URL通过网络模块下载图片,在控制服务器中有目标ID和随机ASCII字符用于网络模块。
要获取bitmap,下载程序会向cloudinary.com发送HTTP GET请求,隐写位于.bmp文件的调色板内。解密算法包括四个阶段:
将相邻的半字节合并为一个字节
使用自定义XOR算法解密数据长度
解密主数据的六字节XOR密钥
使用解密的长度和密钥解密数据本身
在所有情况下,加密内容都是带有网络模块和C2的PE文件。
网络内存模块
下载程序从位图中解密配置数据和C2域,然后会在spoolsv.exe虚拟地址空间内开始最后一个阶段。
网络模块的入口是带有多个参数的导出函数SystemFunction000()。木马使用目标的指纹数据准备HTTP POST请求,参数为请求的一部分,说明如下:
最后两个参数说明了为什么将网络模块称为类API:无需修改代码即可使用任何加密算法和日志记录方式。
目前为止已经描述了感染链,模块架构,自定义加密和基于HTTP POST的C2通信协议,下表为命令集:
IOCs
Downloader
ef9c82c481203ada31867c43825baff4
1169abdf350b138f8243498db8d3451e
c7e11bec874a088a088b677aaa1175a1
Network module
f464b275ba90b3ba9d0a20b8e27879f5
9320180ef6ee8fa718e1ede01f348689
06fd6b47b1413e37b0c0baf55f885525
625a052ddc80efaab99efef70ba8c84f
Domains and IPs
95.179.136.10
apps.uzdarakchi[.]com
forum.uzdarakchi[.]com
forum.mediaok[.]info
owa.obokay[.]com
参考链接
来源:freebuf.com 2020-07-15 15:09:41 by: Kriston
请登录后发表评论
注册