高级cmd攻击命令_APT分析|海莲花APT组织新增Ratsnif木马攻击分析报告

0bb01010d337a387100371b825914c75.png

事件来源

近日,山石网科安全应急响应中心(HSCERT)对海莲花APT组织进行了跟踪分析,海莲花又名APT32,他们正在使用一套名为“Ratsnif”的远程木马来进行新的网络攻击。我们对Ratsnif木马进行了分析,并分析了一些技术和战术。自2016年以来海莲花就在积极开发Ratsnif木马程序,并且结合数据包嗅探、ARP毒化、DNS欺骗、HTTP重定向、Mac欺骗、远程shell等技术进行攻击下面是四个不同的Ratsnif样本,其中三个在2016年开发,第四个在2018年下半年开发的,我们将详细分析样本的攻击技术。

样本分析

样本1

  MD5  

  516ad28f8fa161f086be7ca122351edf

  SHA256  

  b4e3b2a1f1e343d14af8d812d4a29440940b99aaf145b5699dfe277b5bfb8405

  Filename  

  javaw.exe, Client.exe

  Path  

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

  Size  

  1.32 MB (1,387,520 bytes)

  File Type  

  PE32 executable for MS Windows (console) Intel 80386 32-bit

  Alias  

  OceanLotus APT32 Ratsnif

  Compile Time   

  2016-08-05 07:57:13

这是最早发现的Ratsnif样本,是在C2服务器被首次激活的时候编译的,这个好像是一个debug版本,这和2016年9月的后续版本非常相似。

样本2

  MD5  

  b2f8c9ce955d4155d466fbbb7836e08b

  SHA256  

  b214c7a127cb669a523791806353da5c5c04832f123a0a6df118642eee1632a3

  Filename  

  javaw.exe, Client.exe

  Path  

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

  Size  

  1.32 MB (1,387,520 bytes)

  File type  

  PE32 executable for MS Windows (console) Intel 80386 32-bit

  Alias  

  OceanLotus APT32 Ratsnif

  Compile Time  

  2016-08-06 04:30:06

这个样本是在上一个样本编译24小时候编译的,此版本在功能上只有一些细微差别,在重新编译之前已删除了对pcap_dump_flush()的调用:

6eb850fc256ba4e5b71cf1623f9501ba.png

b4e3b2a1f1e343d14af8d812d4a29440940b99aaf145b5699dfe277b5bfb8405中调用pcap_dump_flush 

491fa87cbfa057b69fa5494e693e463e.png

b214c7a127cb669a523791806353da5c5c04832f123a0a6df118642eee1632a3中缺少对pcap_dump_flush的调用

CodeView调试信息已更改,重新编译后样本的新"age":

8bc2ebae6e497347372101522124c0b5.png

b4e3b2a1f1e343d14af8d812d4a29440940b99aaf145b5699dfe277b5bfb8405中的年龄0x14

9b923eb495a4e0dae3058fc554f5957c.png

b214c7a127cb669a523791806353da5c5c04832f123a0a6df118642eee1632a3中的年龄0x15

两个样本在编译后提交给了VirusTotal,并包含与PDB信息相同的路径。该样本可能是由开发人员提交给VirusTotal的:

dc6e974092513d3b9439df869b0bf6ca.png

VirusTotal提交显示日期/时间和路径

样本3

  MD5  

  7f0ac1b4e169edc62856731953dad126

  SHA256  

  b20327c03703ebad191c0ba025a3f26494ff12c5908749e33e71589ae1e1f6b3

  Filename  

  javaw.exe, adobe.exe

  Path  

  N/A

  Size  

  432 KB (442,880 bytes)

  File Type  

  PE32 executable (DLL) (GUI) Intel 80386, for MS Windows

  Alias  

  OceanLotus APT32 Ratsnif

  Compile Time  

  2016-09-13 09:26:42

与2016年8月的前几个样本相比,这个样本是一个release版本,可能是海莲花在野攻击部署的早期Ratsnifs木马之一。

威胁特征

  • C2通过HTTP发包

  • 数据包嗅探

  • ARP中毒

  • DNS欺骗

  • HTTP重定向

  • 远程shell

样本执行后,Ratsnif创建一个名为“onceinstance”的互斥锁,初始化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进行解密。

三个Ratsnif样本都用了一个或多个C2结构域进行了硬编码,无论它们是否会被使用。

此示例包含2个硬编码域,但只有一个似乎曾经处于活跃状态:

  • search[.]webstie[.]net

  • dns[.]domain-resolve[.]org (inactive)

C2服务器公开了一个直观命名的Web API,支持以下端点:

   网址             描述

  /cl_client_online.php  

  POST包含收集的系统信息

  /cl_client_cmd.php  

  GET C2命令

  / cl_client_cmd_res.php  

  C2命令的POST结果

  /cl_client_logs.php  

  POST日志消息

Ratsnif恶意软件包含对通过cl_client_cmd.php HTTP响应发出的以下命令的支持:

63169c97b845f3ef22bea56f4d63a7bb.png

样本4

  MD5  

  88eae0d31a6c38cfb615dd75918b47b1

  SHA256  

  7fd526e1a190c10c060bac21de17d2c90eb2985633c9ab74020a2b78acd8a4c8

  Filename  

  N/A

  Path  

  N/A

  Size  

  745 KB (762,880 bytes)

  File Type  

  PE32 executable (DLL) (GUI) Intel 80386, for MS Windows

  Alias  

  OceanLotus APT32 Ratsnif

  Compile Time  

  Wed, 08 Aug 2018 02:52:52 UTC

在2018年下半年在野出现了这个样本,并用定制的海莲花 shellcode加载器来加载,这个样本最先是在Macnica Networks的博客中报道。与2016版本相比,此样本引入了配置文件,并且不依赖于C2进行操作,它还以HTTP注入,协议解析和SSL劫持的形式添加了新功能。

威胁特征

  • 由海莲花(OceanLotus)加载器部署

  • 使用为受害者的网络环境量身定制的单独提供的配置文件

  • 使用单独提供的SSL证书执行SSL劫持

  • 使用WolfSSL库解密SSL流量

  • 使用http_parser.c解析HTTP流量

  • 数据包嗅探可以通过协议解析提取登录凭据和其他敏感数据

  • ARP中毒

  • DNS欺骗

  • HTTP重定向

  • HTTP注入

这个样本的可执行文件是在加载器DLL中编码的Base64,并包含在两层shellcode中。加载器DLL解码payload,它被加载到内存并执行第一阶段的shellcode,这将解压缩二进制文件和执行2 次在单线程的shellcode。

第二阶段的shellcode将注入的嗅探器加载到内存,返回处理命令行的(GetCommandLineA,GetCommandLineW,_acmdln,_wcmdln)几个API函数,所以它们会被返回的硬编码字符串代替。该字符串包含指定配置文件路径的参数,以及可执行文件的原始路径:

  C:\ Users \ Administrator \ Desktop \ api \ temp \ royal \ 
   HkYh9CvH7.exe -p 
  C:\ ProgramData \ setting.cfg

配置文件是一个简单的文本文件,Base64编码,其中第一行没什么用,每个后续行指定一个参数。例如:

  [unused_line] 
  -ip [ATTACKER IP ADDRESS] 
  -ga [DEFAULT GATEWAY] 
  -subnet [SUBNET MASK] 
  -sniff -ssl_ip [IP ADDRESS] 
  -html_inject [BROWSER PROCESS NAME] 
  -dlog_ip [IP ADDRESS] 
  -mac [ATTACKER MAC ADDRESS] “true”|“false” 
  -name [DOMAIN NAME] [REDIRECTION IP] 
  -all 
  -dnsttl [INT VALUE] 
  -log [LOGFILE PATH] 
  -pass [CREDENTIALS DUMP PATH] 
  -dwn_ip [IP ADDRESS]

配置文件选项

但是解析dwn_ip参数的值存在一个错误,如果配置中存在该值,则会导致内存读取违例:

830a55da379ed7161ceb2a9ebffc3586.png

代码中的错误:“dwn_ip”的值作为字符串传递,而print_debug_msg需要指向字符串的指针。

执行后,嗅探器将从指定文件中读取配置,使用Base64对其进行解码并将其解析为内存中的结构。如果在配置中指定了“-sniff”参数,则恶意软件将自己从防火墙规则表删除:

netsh advfirewall firewall add rule name=\"Core Networking -Router Solicitation\" dir=in action=allow program={self_path} enable=yes

用于添加Windows防火墙规则的命令行

wmic path win32_networkadapter where index=%d call disable

用于在禁用LSO之前禁用网络适配器的命令行

从wpcap.dll导入相同的API后,样本会创建负责ARP投毒和DNS欺骗的线程。

为了能够解密SSL流量,恶意软件使用名为WolfSSL的开源库和单独提供的证书和私钥文件执行SSL劫持。为此,它创建了一个内部WolfSSL服务器,侦听65000 - 65535范围内的第一个可用端口:

7da5ad83dfe37700da80019d41aa82ab.png

使用WolfSSL

与将所有数据包存储到PCAP文件的2016年Ratsnif变体不同,2018变体使用多个嗅探器类来从数据包中收集敏感信息。这将减少攻击者必须收集,泄露和处理的数据量,并显示攻击者感兴趣的信息。

恶意软件可以嗅探以下协议/端口的流量:

  接口

  端口

  头文件

  CSniffFtp

  21, 990

  ABOR ACCT ADAT ALLO APPE AUTH CCC CDUP CONF CWD DELE ENC EPRT EPSV FEAT HELP HOST LANG LIST LPRT LPSV MDTM MIC MKD MLSD MLST MODE NLST OPTS PASS PASV PBSZ PORT PROT PWD QUIT REIN REST RETR RMD RNFR RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XMKD XPWD XRCP XRMD XRSQ XSEM XSEN 230

  CSniffImap

  143, 993

  CAPABILITY LOGOUT STARTTLS AUTHENTICATE LOGIN SELECT EXAMINE CREATE RENAME LSUB STATUS APPEND CHECK CLOSE EXPUNGE FETCH STORE UID

  CSniffLdap

  389, 636, 10389, 10636

  Various

  CSniffNntp

  119

  AUTHINFO USER AUTHINFO PASS ANONYMOUS 281

  CSniffPop

  110, 995

  RCEV RCVD RSET +OK USER PASS RETR QUIT

  CSniffSmb

  445

  Various

  CSniffSmtp

  25, 465

  HELO MAIL RCPT SEND SOML SAML VRFY EXPN TURN FROM

  CSniffTds

  1433

  SELECT name, password_hash FROM master.sys.sql_logins where is_disabled = 0; -- priv

  CSniffTelnet

  23

  Login Failed login: password:

  SniffHttp2

  80, 443

  Various

每个嗅探器类接口包含两种方法,分别用于从传入和传出数据包中提取敏感信息。这些通常依赖于搜索明文标题字符串以进行凭据窃取:

084c4df4b9f929e58453839734eb9bea.png

在Telnet协议中搜索登录名和密码命令

此外,HTTP嗅探器接口还能够执行注入以将任意攻击者提供的内容插入HTML,虽然此样本包含在.rdata部分中硬编码的Base64编码的C2 URL与2016版本中的地址相同,但恶意软件似乎从未使用它; 相反,它将捕获的信息记录到文本文件中,以供另一个模块进一步渗透。

要重新创建样本运行的条件,在192.168.8.135上配置了默认网关,并运行iNetSim作为DNS和HTTP服务器。攻击者机器位于192.168.8.134,受害者位于192.168.8.138。Ratsnif配置为如下操作:

  TEST CONFIG
  -ip "192.168.8.134"
  -ga "192.168.8.135"
  -subnet "255.255.255.0"
  -sniff
  -ssl_ip "192.168.8.254"
  -html_inject "iexplore.exe"
  -dlog_ip "192.168.8.254"
  -mac "00:0C:29:59:62:46" "true"
  -name "www.google.com" "192.168.8.135"
  -dnsttl "100"
  -log "C:\ratsnif.log"
  -pass "C:\ratsnif.pcap"
  -dwn_ip

用于测试的配置

下图显示了恶意软件发送ARP数据包,询问配置文件中指定的子网上所有计算机的MAC地址,同时忽略自身(192.168.8.134)和默认网关(192.168.8.135):

de2849a8e2753e5392572f5890130fe2.png

ARP广播

一旦它拥有子网上所有机器的MAC地址,Ratsnif就会向这些地址发送未经请求的ARP数据包,更新每个受害者的默认网关的MAC地址:

be6babf307664c74096f7ca16a420795.png

ARP中毒

下图显示了对受害计算机的影响,攻击者IP地址和默认网关IP地址(192.168.8.135)现在共享相同的物理地址:

283a5cf1adda2668f8eea5be848f0943.png

arp -a结果显示受害计算机上的中毒ARP表

一旦ARP表中毒,所有发往默认网关的流量将通过Ratsnif路由,并且可以在重传之前进行存储和操作。

最后显示了针对www.google.com的中毒DNS响应,其中DNS查询被Ratsnif截获,修改为指向攻击者控制的IP地址以及发送给原始请求者的虚假响应:

095c4b30528f4ffbf6e754401a1eb4e1.png Ratsnif日志文件输出,显示动作

C2中的 ARP投毒和DNS欺骗

search.webstie.net

  Attribute  

  Value

  Server  

  whois.web4africa.net

  Registrar  

  WEB4AFRICA INC

  Email  

  contact@privacyprotect.org

  Name  

  Domain Admin, C/O ID#10760

  Organization  

  Privacy Protection Service INC d/b/a PrivacyProtect.org

  Street  

  PO Box 16

  City  

  Nobby Beach

  State  

  Queensland

  Postal  

  QLD 4218

  Country  

  AUSTRALIA

  Phone  

  4536946676

  NameServers  

  ns21.cloudns.net

  ns22.cloudns.net

  ns23.cloudns.net

  ns24.cloudns.net

"海莲花"(又名APT32、OceanLotus),被认为是来自越南的APT攻击组织,自2012年活跃以来,一直针对中国的敏感目标进行攻击活动,是近几年来针对中国大陆进行攻击活动的最活跃的APT攻击组织之一。

该组织一直在不断的更新他们的攻击武器库,无论是钓鱼的诱饵形式、payload的加载、横向移动等。

Ratsnif木马就是一个很好的例子,它的开发更新使我们能够监测如何根据他们的攻击目定制合适工具。样本大量使用了开源代码,整体开发质量其实挺差的,Ratsnif并不符合OceanLotus恶意软件中常见的高标准。

IOCs

Ratsnif

 b4e3b2a1f1e343d14af8d812d4a29440940b99aaf145b5699dfe277b5bfb8405

 b214c7a127cb669a523791806353da5c5c04832f123a0a6df118642eee1632a3

b20327c03703ebad191c0ba025a3f26494ff12c5908749e33e71589ae1e1f6b3

7fd526e1a190c10c060bac21de17d2c90eb2985633c9ab74020a2b78acd8a4c8

Mutex name

search[.]webstie[.]net

C2

66.85.185.126

IP

search[.]webstie[.]net

dns[.]domain-resolve[.]org

PDB Path

X:\Project\BotFrame\Debug\Client.pdb

Packet capture output

ntdata.tmp

Windows Firewall Rule

Core Networking - Router Solicitation

参考信息

http://blog.macnica.net/blog/2019/04/oceanlotus-218a.html

https://elixir.bootlin.com/zephyr/v1.13.0/source/subsys/net/lib/http/http_parser.c

https://threatvector.cylance.com/en_us/home/report-the-spyrats-of-oceanlotus.html

https://threatvector.cylance.com/en_us/home/report-oceanlotus-apt-group-leveraging-steganography.html

https://threatvector.cylance.com/en_us/home/threat-spotlight-ratsnif-new-network-vermin-from-oceanlotus.html

https://github.com/wolfSSL/wolfssl

161ead68be8be667e4fa117b659e8029.png

如需帮助请咨询 hscert@hillstonenet.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值