APT 响尾蛇
游荡于中巴两国的魅影——响尾蛇(SideWinder) APT组织针对巴基斯坦最近的活动以及2019年该组织的活动总结
微步情报局 2020-01-02 17:10:27 3257人浏览

本文由Gcow安全团队追影小组原创,并授权X情报社区转载。

一.前言:

Gcow安全团队追影小组于2019年11月份捕获到名为SideWinder(响尾蛇)组织针对巴基斯坦的活动,介于该组织主要针对巴基斯坦和中国以及其他东南亚国家,且其于10月份时候针对中国部分国防重要行业进行类似手法的攻击活动,为了更好了解对手的攻击手段以及加以防范,团队将以最近的样本为契机来总结该组织为期一年的攻击活动.

响尾蛇(又称SideWinder、T-APT-04)是一个背景可能来源于印度的APT组织,该组织此前已对巴基斯坦和东南亚各国发起过多次攻击, 该组织以窃取政府,能源,军事,矿产等领域的机密信息为主要目的。此次的攻击事件以虚假邮件为诱饵,利用Office远程代码执行漏洞(cve-2017-11882)或者通过远程模板注入技术加载远程URL上的漏洞文件.在针对于巴基斯坦的攻击中我们发现了Lnk文件的载荷,其主要驱动是mshta.exe,攻击者通过各种方式以达到伪装的目的

在我们的样本捕获中,我们发现了该组织在这一年之间的变化,其攻击的手段越来越先进,这对我国的军事部门当然是一个不容小觑的威胁,所以我们追影小组将带领各位读者来回顾该组织的攻击手法,以及其技术的更迭。

二.样本分析:

为了方便于各位读者的理解,笔者画了一张关于该组织攻击的流程图

如下:

1.png

在2019下半年,该组织经常使用该流程针对巴基斯坦和中国的目标进行攻击。

ADVOCATE.docx 利用远程模板注入技术加载含有漏洞的CVE-2017-11882漏洞RTF文档,使用的这样加载方式可以绕过防病毒网关,增加成功率。当成功加载main.file.rtf文件后,释放1.a 到Temp目录下,触发漏洞shellcode执行1.a,1.a是一个混淆后的Jscript脚本文件,再次释放Duser.dll文件 tmp文件,并拷贝rekeywiz.exe到 C:\ProgramData\DnsFiles目录下,并执行rekeywiz.exe文件,带起Duser.dll,Duser.dll加载tmp文件。

1.诱饵文档

1).样本信息:

样本MD5
9b1d0537d0734f1ddb53c5567f5d7ab5
样本SHA-1
e127a783870701cdd20a7fc750cad4dae775d362
样本SHA-256
f1cdd47f7a2502902d15adf3ac79c0f86348ba09f4a482ab9108ad98258edb55
样本类型
Office Open XML 文件
样本名称
ADVOCATE.docx
文件大小
9.02 KB (9232 bytes)

2).分析

2.png

打开ADVOCATE.docx样本后,利用远程模板注入技术远程加载远程模板: https://www.sd1-bin.net/images/2B717E98/-1/12571/4C7947EC/main.file.rtf

3.png

成功打开后显示,用掩饰目的文档,如下图:

4.png

2.漏洞文档:

1)样本信息:

样本MD5
3ee30a5cac2bef034767e159865683df
样本SHA-1
c29a1fd54f9f961211e9cd987f90bd8eb0932e45
样本SHA-256
f08ccc040c8d8db60f30a6d1026aa6523e97c6cf52b1b30f083a830a0a65a3a9
样本类型
富文本文件
样本名称
main.file.rtf
文件大小
1.72 MB (1804038 bytes)

2).分析:

当main.file.rtf加载成功后,会将1.A文件释放到当前用户temp文件夹下面

1.a是嵌入到rtf文档中的OLE Object,如下图:

5.png

通过分析rtf也可以看到

6.png


默认释放到 temp文件夹中,如下图:

7.png

1.a文件通过Shellcode加载起来

(1).Shellcode分析

shellcode 代码 如下图:

直接在00411874 处下断点 此处为 ret处,也就是将通过覆盖ret返回地址,达到任意代码执行目的,如下图:

8.png

可以看到esp 值已经被覆盖为0x18f354,这个就是shellcode入口地址,如下图:

9.png

也可以在rtf 文件中找到shellcode,如下图:

10.png

Shellcode通过获取RunHTMLApplication来加载恶意js

11.png

对异或后的js代码进行解密,秘钥是12

12.png

将执行js的命令行替换其原来的命令行

13.png

恶意js如下:(读取1.a文件的所有内容并且用eval执行)

14.png

15.png

(2).1.a分析

i.样本信息

样本MD5
4513f65bdf6976e93aa31b7a37dbb8b6
样本SHA-1
73ae6cd3913bcfb11d9e84770f532f2490ddef6c
样本SHA-256
054a029b378b8bbf5ea3f814a737e9c3b43e124995d05d7dac45a87502bf2f62
样本类型
Js脚本文件
样本名称
1.a
文件大小
878.91 KB (900000 bytes)

ii.分析

通过分析,1.a是一个通过DotNetToJScript成生的Jscript文件,并且经过混淆过,但是还原后还可以看出来如下图:

16.png

17.png

18.png

其主要逻辑即为将内置的c# dll解密后内存加载其Work函数传入三个参数

第一个参数是黑dll的数据,第二个参数是同目录下的tmp文件数据,第二个参数是混淆的C2地址

通过调试解密出内置dll文件的base64编码

19.png

Base64解密后

20.png

删除前面加载部分然后保存为dll文件

21.png

StInstaller.dll

其Work函数是其核心

22.png

1) .检测白名单文件是否存在,若存在则拷贝到其工作目录下

23.png

2) 修改注册表添加启动项以开机启动,注册表的值为拷贝后的白名单文件路径

24.png

3) 释放对应的恶意dll和tmp文件以及配置的config文件

25.png

4) .启动白名单程序

26.png

通过API Monitor可以直观看到释放流程,如下图:

27.png

1.拷贝c:\windows\syswow64\rekeywiz.exe到c:\ProgramData\DnsFiles\rekeywiz.exe下面.

2. 释放 Duser.dll文件到C:\ProgramData\DnsFiles\Duser.dll

3. 释放 xxx.tmp 文件到 C:\ C:\ProgramData\DnsFiles\xxx.tmp

4. 使用CreatePocess 拉起 rekeywiz.exe

(3).Duser.dll分析

i.样本信息

样本MD5
ff9d14b83f358a7a5be77af45a10d5a2
样本SHA-1
612b239ce0ebaf6de6ee8eff1fb2fa2f3831ebd2
样本SHA-256
920197f502875461186a9d9fbf5a108f7c13677bbdeae129fbc3f535ace27a6f
样本类型
Dll(动态链接库)文件
样本名称
Duser.dll
文件大小
5.50 KB (5632 bytes)

ii.分析

Rekeywiz.exe 是一个白名单文件,存在dll劫持特性,俗称白加黑如下图:

28.png

利用rekeywiz.exe 带起Duser.dll,Duser.dll再将 ***.tmp文件,此处用***表示随机文件名,解密后,内存加载.net,使其逃避防护软件查杀.关键代码如下图所示:

29.png

选取.tmp文件的前32字节当做秘钥,对后续的字节进行异或解密后,使用Assembly.Load 加载到内存执行。

解密后,发现是一个.net后门程序,如下图所示:

30.png

(4).SystemApp.dll分析

i.样本信息

样本MD5
6162005b9ae5d4a8070bfe5f560b0912
样本SHA-1
b4928e4c3a8787e0461e2e78138091134c7f719a
样本SHA-256
d8aa512b03a5fc451f9b7bc181d842936798d5facf1b20a2d91d8fdd82aa28b7
样本类型
Dll(动态链接库)文件
样本名称
SystemApp.dll
文件大小
576.00 KB (589824 bytes)

ii.分析

31.png

start函数

首先加载基础设置信息,设置两个时间回调函数GET函数,POST函数,通过基础配置Settings类的属性来判断是否需要获取系统信息,写入选择文件,最后执行两个时间回调函数GET,POST,执行时间是5000秒。

32.png

LoadSettings函数

通过Settings的settingsFilePath来获取配置文件路径,然后通过Decode函数来加载到内存,在返回一个用配置文件信息初始化的Settings类,否则返回默认配置

33.png

基础配置信息

其中可以看见默认C2地址: 

https://reawk.net/202/OaZbRGT9AZ6rhLMSEWSoFykWnI7FeEbXdgvNvwZP/-1/12571/10255afc

34.png

DecodeData函数

Decode函数主要复制加解密数据文件,就是将文件的前32位当作key,循环异或后面的数据,来解码出源文件数据。

35.png

EnCode函数,也就是加密函数,和Decode函数同理

36.png

Get函数

从配置信息里面的c2地址下载数据,通过DecodeData函数解码后传入Process执行,

37.png

Process函数上半部分

Process函数主要将传入的数据文件解析执行,先申请出一个Loader类型,加载传入的data,然后将data解base64后,根据解码出来的数据的第一个byte来选择需要执行的功能。

38.png

Process函数中间部分

函数可执行的主要功能:

1. 获取系统信息 写入.sif文件

39.png

2. 获取文件列表 写入.flc文件

40.png

3. 获取指定文件,先复制移动到.fls

41.png

4. 修改setting

42.png

5. 更新c2地址

43.png

6. 准备上传文件

44.png

7. 加载文件执行

45.png

8. 设置文件最大尺寸

46.png

9. 下载文件

47.png

Case功能列举表格:

Case值
功能
1
获取系统信息 写入.sif文件
2
获取文件列表 写入.flc文件
3
获取指定文件,先复制移动到.fls
4
修改setting
5
更新c2地址
6
准备上传文件
7
加载文件执行
8
设置文件最大尺寸
9
下载文件

48.png

Process函数下半部分

Process函数执行出现异常就写入随机命名.err文件

49.png

POST函数上半部分

50.png

POST函数中间部分

51.png

POST下半部分

52.png

POST函数结束部分

把执行写入的文件,也就是GET获取请求执行后的信息或者程序异常的的信息写入的文件,准备上传同时删除写入的文件,如果执行报错依然写入.err文件

53.png

UploadFile函数

通过之前post函数更具文件的后缀入.sif、.fls、.err等来设置type类型,构造包体,然后发包,也就是我们说的回显。改后面基本分析结束。

后门获取的信息表:

盘符信息:
磁盘大小

磁盘名字

可用空间

总空间

磁盘格式
目录信息:
目录大小

目录名字

目录创建时间

目录写入时间

目录读写属性
文件信息:
文件大小

文件名字

文件创建时间

文件写入时间

文件读写属性

三.活动总结:

1).针对中国的攻击:

部分诱饵文档如下(介于一些因素这些样本将不会给出相应的样本hash)

54.png

55.png

56.png

57.png

58.png

59.png

60.png

1.a文件与其攻击巴基斯坦的样本有着一定的相似性

61.png

但是有略微的不同

攻击中国的样本直接调用ActiveX控件对象进行解密

62.png

而攻击巴基斯坦的样本则是通过自实现的解密算法进行

63.png

样本所使用的都是Write.exe与PROPSYS.dll的白加黑组合

其中PROPSYS.dll依旧与上文流程类似

读取其同目录下的tmp文件并且区其前32个字节作为异或解密的秘钥

然后将tmp文件32个字节后的数据解密后内存加载

64.png

同样其解密后的后门与上文针对巴基斯坦的后门类似

65.png

2).对巴基斯坦的活动

SideWinder除了针对中国的目标之外,其还热衷于针对巴基斯坦的相关在目标,

与针对中国的目标有相同的特点就是Sidewinder组织对巴基斯坦的军事相关的目标也饶有兴趣,并且也会去攻击政府组织

部分诱饵如下

66.png

67.png

68.png

69.png

该组织在对巴基斯坦的攻击活动中使用了压缩包中带有lnk的攻击手法,该手法在针对中国的活动中并没有很多次的出现

Lnk载荷

针对于Lnk文件的载荷,该组织通过使用mshta.exe远程加载目标hta文件的手法

70.png

71.png

Hta文件貌似也有NotNetToScript的工具,并且其采用了不同的加载payload的方式

采用wmi的方式收集本地杀毒软件信息

72.png

替换掉内置的混淆字符串,将文件解密加载到内存中

73.png

调用pink函数

74.png

参数一为下一阶段的hta文件

参数二是收集到的杀毒软件信息

参数三是被base64加密的doc文件信息

75.png

参数四是doc诱饵文件名称

内存加载的dll名称为:LinkZip.dll

释放诱饵文档并打开,做到伪装的目的

76.png

77.png

下载下一阶段的hta文件并用mshta.exe执行

78.png

下一阶段hta的代码与前文的差不多,利用js加载内存执行payload

79.png

该一类样本的流程图如下:

80.png

在另一个样本中,我们发现了相同的释放doc的代码

81.png

Mydoc.docx如下

82.png

以及类似的函数pink

83.png

但是经过分析

这个的第一个参数为exe文件的数据

第二个参数为dll文件的数据

第三个参数是wmic命令收集的杀毒软件信息

其C#内存加载的dll为prebothta.dll

其根据不同的杀毒软件信息执行不同的策略

84.png

释放lnk到启动文件夹以持久化

85.png

释放bat并执行

86.png

由于该样本的回连下载的服务器已经失效,故不能分析

该一类样本的流程图如下:

87.png

四. 技术特点以及演进:

注意:该特点不具有普适性,同时里面给出的时间节点只是在那个时间段内该组织针对目标使用最多的手法,不是代表在那个时间段该组织使用的全部手法,该组织会针对目标的不同进行调整

1) .白加黑的使用

Exe名称
Dll名称
属性信息
Cmdl32.exe
Cmpbk32.dll
Microsoft连接管理器自动下载
Credwiz.exe
Duser.dll
系统凭据备份和还原向导
Write.exe
Propsys.dll
写字板程序
Rekeywiz.exe
Duser.dll
EFS REKEY向导

该组织在白加黑的寻找上偏向于寻找系统文件的白加黑利用,在2018年的活动中主要使用cmdl32.exe+cmpbk32.dll与credwiz.exe+duser.dll的两种组合,在2019年的活动中新增加了wrte.exe+propsys.dll与rekeywiz.exe与duser.dll的组合

未来估计会有别的新的白加黑组合的出现

88.png

2)载荷的明文字符的处理方式

该组织在对js脚本内存加载C# dll文件的时候,采用了字符串拼接等手段.其在2019的1月份到10月份通常采用的是base64解密其c# dll的shellcode然后内存加载,并且其中调用的activexobject都可见,极其方便于分析以及安全软件的查杀,在11月份到12月份针对巴基斯坦的攻击活动中,该组织大幅度的对其明文字符串进行了混淆,主要采用自编的异或算法和base64进行解密操作

89.png

3).漏洞文件加载js loader的方式

在2019年1月到3月的活动中,该组织主要采用的是通过漏洞加载远程地址上托管的hta文件,但在2019年3月到12月的活动中,则采用使用在本地释放1.a文件,再加载1.a文件的js代码.其中该组织都会采用命令行替换的方式去加载恶意js

90.png

4).lnk攻击载荷加载js loader的方式

该组织对于构造lnk文件的载荷也是变化多样,不过其主要是通过使用mshta.exe执行托管于服务器的远程hta文件,不过该组织总是通过不同的手段来掩盖其执行的策略,比如下图中的执行start来拉起mshta以及利用lnk的性质来伪装成ctfmon以欺骗受害者的执行(具体手段请看参考链接中瑞星的报告,这里就不再赘述)

91.png

五.总结

sidewinder(响尾蛇)组织作为一个迅速进步,以及拥有c++,c#,delphi等后门以及大规模使用js以及开源的工具对其后门进行装载,使用lnk以及文档载荷。并且其诱饵样本的大部分文件都是诱惑力很高的文件,这种高的诱饵文档会加大人员的受害几率.并且使用系统文件的白加黑技术和内存加载技术与杀毒软件进行对抗。

六.参考链接

http://it.rising.com.cn/dongtai/19639.html

https://www.antiy.cn/research/notice&report/research_report/20190508.html

https://www.freebuf.com/articles/network/196788.html

http://it.rising.com.cn/dongtai/19658.html

http://it.rising.com.cn/dongtai/19655.html

域名(2) 威胁情报数目 子域名 历史指向ip 相关样本 微步标签 < 1/1 >
URL(38) < 1/4 >
cdn-in.net/includes/b7199e61/-1/7384/35955a61/final
cdn-in.net/plugins/-1/7384/true/true/
hxxps://msftupdate.srv-cdn.com/cdne/plds/zoxr4yr5KV.hta
hxxps://msftupdate.srv-cdn.com/fin.hta
hxxp://www.google.com.d-dns.co/includes/686a0ea5/-1/1223/da897db0/final.hta
hxxp://webserv-redir.net/includes/b7199e61/-1/5272/fdbfcfc1/final
hxxp://pmo.cdn-load.net/cgi/5ed0655734/-1/1078/d70cc726/file.hta
hxxp://fb-dn.net/disrt/fin.hta
hxxp://cdn-edge.net/checkout.php
hxxp://cdn-edge.net/cart.php
hxxp://cdn-edge.net/amount.php
hxxp://ap12.ms-update-server.net/checkout.php
hxxp://ap12.ms-update-server.net/cart.php
hxxp://ap12.ms-update-server.net/amount.php
hxxp://s2.cdn-edge.net/checkout.php
hxxp://s2.cdn-edge.net/cart.phpB
hxxp://s2.cdn-edge.net/amount.php
hxxp://webserv-redir.net/plugins/-1/5272/true/true/
hxxp://webserv-redir.net/plugins/-1/5272/true/true/done
hxxp://s12.cdn-apn.net/checkout.php
hxxp://s12.cdn-apn.net/cart.php
hxxp://s12.cdn-apn.net/amount.php
hxxp://cdn-do.net/plugins/-1/7340/true/true/
hxxp://cdn-list.net/KOmJg2XSthl3PRhXnB6xT6Wo967B1n5uGf7SfiBC/-1/7340/b729d30c/css
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/1
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/2
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/3
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/v4.0.30319
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/4
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/5
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/6
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/7
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/8
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/9
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css/10
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/134/7e711ada/res/css
cdn-list.net/1SdYMUrbdAfpgSt3Gv13U8Jca6qOvI4I2Fa1zSCT/-1/7384/43e2a8fa/css
www.sd1-bin.net/images/2B717E98/-1/12571/4C7947EC/main.file.rtf
戈登 2020-01-06 18:24:47 回复
太厉害了
dirshell 2020-01-03 12:58:52 回复
特牛
匿名用户 2020-01-03 10:03:23 回复
写的是 够详细的,这东西民间组织是通过何种方式获取到的啊?
匿名用户 2020-01-03 09:48:58 回复
Gcow NB!!!