首页
社区
课程
招聘
[原创]伸向中亚地区的触手——DustSquad APT组织针对乌兹别克斯坦的活动分析
发表于: 2020-1-15 16:06 4384

[原创]伸向中亚地区的触手——DustSquad APT组织针对乌兹别克斯坦的活动分析

2020-1-15 16:06
4384

一.介绍

近日,Gcow安全团队的追影APT分析小组在公共的文件分析平台上捕获到了名为DustSpuad的APT组织,针对乌兹别克斯坦的外交部进行的一起网络攻击活动.所使用的正是名叫Octopus的Windows恶意程序

Octopus恶意程序的名称最初由ESET在2017年由APT组织在其旧C2服务器上使用的0ct0pus3.php脚本之后创造。卡巴斯基通过其监控平台发现Octopus恶意程序与DustSquad有关.在遥测中,我们发现这个组织对中亚共和国以及俄语系的国家产生着浓厚的兴趣 

此外,该组织专注于中亚用户以及外交实体,并且通过文件中的特殊字符,以及其手法,推断该组织可能来源于俄罗斯

二.样本分析

(一).释放者:


 


 

(二).压缩包所包含的文件:

(Octopus 加载器)

伪装成word文件,拥有word的图标.对于一些安全意识差的人员。这种伪造手段的成功几率较高


 

通过ExeInfoPE工具查看样本信息,发现该程序由Delphi编写


 

根据我们的分析,该样本的主要恶意部分在start()函数内

现在我们将利用ollydbg的动态调试以针对该样本进行分析

1).通过GetTickCount()和QueryPerformanceCounter()函数获取当前系统运行时间


 

2).信息收集部分

1.收集本地IP地址:

通过初始化WSAStartup通过调用gethhostname()获取本地主机名称,再通过gethostbyname()传入获取的本地主机名称以获取本地IP地址


 

并且将收集好的地址以Local IP Addr:{本地IP地址}的形式进行拼接


 

2.本地计算机名称

通过GetComputerNameW()函数获取本地计算机的名称


 

并且将收集好的地址以Computer Name:{本地计算机名称}的形式进行拼接


 

3.收集当前用户名称

利用GetUserNameW()函数收集当前用户名称


 

并且将收集好的地址以User Name:{当前用户名称}的形式进行拼接


 

4.收集Windows文件夹目录

利用GetWindowsDirectoryW()函数获取当前系统的windows文件夹目录


 

并且将收集好的地址以Windows Dir:{Windows文件夹目录}的形式进行拼接


 

5.收集恶意样本所在的当前目录

调用GetMouduleFileNameW()函数获取恶意软件当前目录的完整路径


 

并且将收集好的地址以Current Dir:{文件所在目录}的形式进行拼接

6.获取盘符信息

利用GetDriveTypeW()函数获取各个盘符的属性以及名称


 

并且将收集好的地址以Volume list:{盘符名称加盘符大小}的形式进行拼接

最后将信息以

Start

Local IP Addr:{本地IP地址}

Computer Name:{本地计算机名称}

User Name:{当前用户名称}

Windows Dir:{Windows文件夹目录}

Current Dir:{文件所在目录}

Volume list:{盘符名称加盘符大小}


 


 

3).C2中转:

向http[:]//poisonfight[.]com/idea.php发送Post请求

check=c558838690881fa7f75807cfa94b3713

接受json格式的回显{"status":"ok"}


 


 


 

判断是否返回为ok


 

接收到ok后,对远程C2服务器发起第二段post请求

http[:]//poisonfight[.]com/idea.php发送Post请求

servers=c558838690881fa7f75807cfa94b3713

返回的json结果为:

{"servers":[{"ip_addr":"cookiesqueen.com\/innovative"}]}


 


 


 

将回显的json进行截取拼接得到C2:http[:]//cookiesqueen[.]com/innovative.php


 

向C2端发送编码后的系统信息

S=sess_{随机字母组合} check={令牌编码}

(OD:)


 

 (Anyrun)


 

加密规则是先进行了一次base64加密,再通过URL编码过滤掉敏感字符,解密如下:


 

为了方便大家理解这一过程,笔者浅显的画了一个草图


 

4).文件下载

向http[:]//cookiesqueen[.]com/innovative.php

发送post请求

l=ZG93bmxvYWQ%3D以及

s=sess_{随机字母组合} check={令牌编码}

(OD:)


 

(Anyrun:)


 

在上文中我们得知了该组织的报文解密方法,对此进行解密


 

下载文件于%Temp%\{随机字母组合}


 

5).载荷解压

通过expand –d 命令获取当前cab压缩包中的内容


 

发现其中包含着java7.exe


 

利用extrac32.exe提取压缩包里的java7.exe于自启动文件夹下


 


 

此外,其会针对系统进行判断,若不属于其侦测范围的则不执行释放诱饵文档于桌面的行为

但我们在anyrun沙箱中看到了这个操作


 

释放的doc文档名为:èñïðàâëåííûé âàðèàíò_18.11.2019ã.doc

并且执行

诱饵界面为


 

部分译文为:


 


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (2)
雪    币: 958
活跃值: (174)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
帮顶一下.
2020-1-19 20:25
0
雪    币: 177
活跃值: (79)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不错的内容,值得仔细研究。
2020-1-22 15:06
0
游客
登录 | 注册 方可回帖
返回
//