首页 >> 网络安全 >>病毒分析 >> 探寻木马进化趋势:APT32多版本远控木马Ratsnif的横向分析
详细内容

探寻木马进化趋势:APT32多版本远控木马Ratsnif的横向分析

一、概述

OceanLotus恶意组织(又名APT32、CobaltKitty)正在使用一系列名为“Ratsnif”的远程访问木马来实现新的网络攻击功能。Blackberry Cylance的威胁研究人员对Ratsnif木马进行了分析,发现该木马使用了一种名副其实的瑞士军刀网络攻击技术。该恶意木马自2016年以来就不断更新,目前已经结合了数据包嗅探、网关和设备ARP投毒、DNS毒化、HTTP注入和MAC欺骗等功能。


我们总共深入研究了四个不同的Ratsnif样本,其中前三个在2016年开发完成,第四个在2018年下半年创建。


二、恶意样本1

2.1 基本信息

MD5:516ad28f8fa161f086be7ca122351edf

SHA-256:b4e3b2a1f1e343d14af8d812d4a29440940b99aaf145b5699dfe277b5bfb8405

文件名:javaw.exe、Client.exe

路径:X:\Project\BotFrame\Debug\Client.exe

大小:1.32MB(1387520字节)

文件类型:Windows系统PE32可执行文件(控制台)Intel 80386 32位

代号:OceanLotus APT32 Ratsnif

编译时间:2016年8月5日 07:57:13


2.2 分析

截至目前,我们最早发现的Ratsnif样本是在其C2域名被首次激活的同一天编译的:

1.jpg

这一木马似乎是一个调试版本,与2016年9月的后续版本非常相似,我们将以此版本的恶意软件作为基础,探究后续三个新版本的进化趋势。


三、恶意样本2

3.1 基本信息

MD5:b2f8c9ce955d4155d466fbbb7836e08b

SHA-256:b214c7a127cb669a523791806353da5c5c04832f123a0a6df118642eee1632a3

文件名:javaw.exe、Client.exe

路径:X:\Project\BotFrame\Debug\Client.exe

大小:1.32MB(1387520字节)

文件类型:Windows系统PE32可执行文件(控制台)Intel 80386 32位

代号:OceanLotus APT32 Ratsnif

编译时间:2016年8月6日 04:30:06


3.2 分析

该版本在上一个版本编译后的24小时之内编译完成,在功能上,与上一个版本仅有一处细微的差别,即在重新编译之前,已经删除对pcap_dump_flush()的调用。

在恶意样本1中,调用了pcap_dump_flush:

2.jpg

在恶意样本2中,缺少对pcap_dump_flush的调用:

3.jpg

此外,CodeView调试信息已经更改,反映了重新编译后样本的新“年龄”(Age)。

在恶意样本1中,“Age”为0x14:

4.jpg

在恶意样本2中,“Age”为0x15:

5.jpg

两个样本均在编译后的一分钟之内被提交至VirusTotal,并包含与PDB信息相同的路径。我们认为,该样本似乎是由开发人员自动提交到在线扫描服务的。


VirusTotal上展现的提交日期、时间和路径:

6.jpg

四、恶意样本3

4.1 基本信息

MD5:7f0ac1b4e169edc62856731953dad126

SHA-256:b20327c03703ebad191c0ba025a3f26494ff12c5908749e33e71589ae1e1f6b3

文件名:javaw.exe、adobe.exe

路径:N/A

大小:432KB(442880字节)

文件类型:Windows系统PE32可执行文件(DLl)(GUI)Intel 80386

代号:OceanLotus APT32 Ratsnif

编译时间:2016年9月13日 09:26:42


与2016年8月编译的前两个样本相比,这个样本的功能与此前样本非常相似,该样本是一个发布的版本,可能是OceanLotus在野外部署的早期Ratsnifs之一。


4.2 威胁特征

1. 通过HTTP协议连接C2;

2. 数据包嗅探;

3. ARP投毒;

4. DNS欺骗;

5. HTTP重定向;

6. 远程Shell。


4.3 分析

在其执行后,Ratsnif将创建一个名为“onceinstance”的互斥锁,初始化2.2版本的Winsock,并收集系统信息,包括用户名、计算机名称、工作站配置(通过NetWkstaGetInfo API)、Windows系统目录、网络适配器信息。然后,借助HTTP协议以POST的方式将上述信息发送到攻击者的C2服务器,具体而言,是发送到/cl_client_online.php API端点。接下来,创建一个日志记录线程,通过对/cl_client_logs.php发出HTTP POST请求,从而将日志消息路由到C2.。随后,恶意软件继续加载wpcap.dll,然后引入以下函数:

pcap_sendqueue_transmit
pcap_findalldevs
pcap_freealldevs
pcap_open_live
pcap_sendqueue_alloc
pcap_next_ex
pcap_sendqueue_queue
pcap_sendpacket
pcap_close
pcap_sendqueue_destroy
pcap_dump_open
pcap_dump_ftell
pcap_dump_flush
pcap_dump_close
pcap_dump

在成功加载WinPcap之后,将会对/cl_client_cmd.php发出进一步的HTTP POST请求,该请求用于从攻击者那里获取命令代码。该代码将每隔10秒检查一次命令。在由简单的命令处理器调度之前,C2命令通过Windows API的方式,使用带有硬编码的、使用AES算法的静态密钥进行解密。


4.4 C2

我们分析的所有Ratsnif样本,都对其中的一个或多个C2域名进行硬编码,无论这些域名是否实际使用。在我们目前所分析的样本中,包含两个硬编码后的域名,但似乎只有一个域名曾经处于活跃状态:

search[.]webstie[.]net

dns[.]domain-resolve[.]org(非活动域名)


URL及实际作用如下:

/cl_client_online.php  以POST方式提交收集到的系统信息

/cl_client_cmd.php  以GET方式获取C2的命令

/cl_client_cmd_res.php  以POST方式提交C2命令的执行结果

/cl_client_logs.php  以POST消息获得日志消息

该恶意软件支持借助cl_client_cmd.php的HTTP响应发出以下命令:


(1)命令:dump

参数:N/A

描述:将内部“dump”(转储)标志设置为1,从而在发出“devIp”命令时,将截获的数据包写入文件(ntdata.tmp)。如果转储文件超过10MB,那么该文件将会被删除并重新创建。


(2)命令:devIp

参数:IP地址

描述:加载WinPcap,对指定的IP执行ARP投毒,并可以选择进行数据包嗅探,或将数据包转储到ntdata.tmp。


(3)命令:gatewapIp

参数:IP地址

描述:如果没有网关IP中毒,那么需要使用SendArp()中的毒化后ARP表。


(4)命令:tarDns

参数:域名、IP地址

描述:执行ARP和SMB端口扫描。使用以下SMB数据包标头,该数据包标头似乎来源于nmap脚本(https://svn.nmap.org/nmap/nselib/smb.lua):

7.png

(5)命令:vicIp

参数:IP地址

描述:在中毒的设备或网关上,该命令将创建多个线程,以执行其他ARP毒化、数据包嗅探和数据包重新传输。


(6)命令:exIp

参数:IP列表、端口

描述:从要监视的主机范围中排除的IP地址和端口列表。


(7)命令:logtm

该命令未实现。


(8)命令:runtm

参数:整数

描述:使用atoi()将提供的参数从ASCII字符串转换并存储为整数。


(9)命令:httprd

参数:主机名

描述:使用两种方法中的一种,重定向HTTP请求。方法为:直接更新请求中的主机名,或使用HTTP 301响应代码。


(10)命令:httpExt

参数:扩展名清单

描述:指定要执行HTTP重定向的文件扩展名列表。


(11)命令:shell

参数:命令行

描述:带有stdout重定向的CreateProcessA。


(12)命令:stop

描述:停止毒化


(13)命令:exit

参数:退出代码

描述:停止毒化,并使用退出代码终止程序。


查看原文:https://www.4hou.com/reverse/18994.html

技术支持: 建站ABC | 管理登录