首页
社区
课程
招聘
[原创]游荡于中巴两国的魅影——响尾蛇(SideWinder) APT组织针对巴基斯坦最近的活动以及2019年该组织的活动总结
发表于: 2020-1-15 16:33 5474

[原创]游荡于中巴两国的魅影——响尾蛇(SideWinder) APT组织针对巴基斯坦最近的活动以及2019年该组织的活动总结

2020-1-15 16:33
5474

一.前言:

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

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

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

二.样本分析:

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

如下:


 

在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).样本信息:

2).分析

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

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


 

2.漏洞文档:

1)样本信息:

2).分析:

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

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


 

通过分析rtf也可以看到


 

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


 

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

(1).Shellcode分析

shellcode 代码 如下图:

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


 

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


 

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


 

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


 

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


 

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


 

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


 


 

(2).1.a分析

i.样本信息

ii.分析

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


 


 


 

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

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

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


 

Base64解密后


 

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


 

StInstaller.dll

其Work函数是其核心


 

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


 

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


 

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


 

4) .启动白名单程序


 

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


 

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.样本信息

  ii.分析

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


 

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


 

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

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


 

(4).SystemApp.dll分析

i.样本信息

ii.分析

start函数

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


 

LoadSettings函数

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


 

基础配置信息

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

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


 

DecodeData函数

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


 

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


 

Get函数

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


 

Process函数上半部分

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


 

Process函数中间部分

函数可执行的主要功能:

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


 

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


 

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


 

4. 修改setting


 

5. 更新c2地址


 

6. 准备上传文件


 

7. 加载文件执行


 

8. 设置文件最大尺寸


 

9. 下载文件


 

Case功能列举表格:


 

Process函数下半部分

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


 

POST函数上半部分


 

POST函数中间部分


 

POST下半部分


 

POST函数结束部分

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


 

UploadFile函数

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

后门获取的信息表:

三.活动总结:

1).针对中国的攻击:

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


 


 


 


 


 


 


 

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


 

但是有略微的不同

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


 

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


 

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

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

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

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


 

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


 

2).对巴基斯坦的活动

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

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

部分诱饵如下


 

 
 


 


 

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

Lnk载荷

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


 


 

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

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


 

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


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 4
支持
分享
最新回复 (5)
雪    币: 471
活跃值: (4048)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
学到新知识    白加黑利用,在2018年的活动中主要使用cmdl32.exe+cmpbk32.dll与credwiz.exe+duser.dll的两种组合,在2019年的活动中新增加了wrte.exe+propsys.dll与rekeywiz.exe与duser.dll
2020-1-15 19:24
1
雪    币: 3127
活跃值: (2075)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
3
谢谢关注
2020-1-15 20:20
0
雪    币: 2141
活跃值: (7226)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
4
帮顶
2020-1-17 14:32
0
雪    币: 1705
活跃值: (676)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
写篇游荡在故宫的粉色魅影我想更具有震撼力
2020-1-18 09:57
0
雪    币: 1722
活跃值: (201)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
转了
2020-1-18 20:31
0
游客
登录 | 注册 方可回帖
返回
//