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

  • A+

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

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

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

二.样本分析

(一).释放者:

图片.png

图片.png

图片.png

图片.png

图片.png

(二).压缩包所包含的文件:
(Octopus 加载器)

图片.png

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

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

图片.png
根据我们的分析,该样本的主要恶意部分在start()函数内
现在我们将利用ollydbg的动态调试以针对该样本进行分析
1).通过GetTickCount()和QueryPerformanceCounter()函数获取当前系统运行时间

图片.png
2).信息收集部分
1.收集本地IP地址:
通过初始化WSAStartup通过调用gethhostname()获取本地主机名称,再通过gethostbyname()传入获取的本地主机名称以获取本地IP地址

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

图片.png
2.本地计算机名称
通过GetComputerNameW()函数获取本地计算机的名称

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

图片.png
3.收集当前用户名称
利用GetUserNameW()函数收集当前用户名称

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

图片.png
4.收集Windows文件夹目录
利用GetWindowsDirectoryW()函数获取当前系统的windows文件夹目录

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

图片.png
5.收集恶意样本所在的当前目录
调用GetMouduleFileNameW()函数获取恶意软件当前目录的完整路径

图片.png
并且将收集好的地址以Current Dir:{文件所在目录}的形式进行拼接
6.获取盘符信息
利用GetDriveTypeW()函数获取各个盘符的属性以及名称

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

最后将信息以
Start
Local IP Addr:{本地IP地址}
Computer Name:{本地计算机名称}
User Name:{当前用户名称}
Windows Dir:{Windows文件夹目录}
Current Dir:{文件所在目录}
Volume list:{盘符名称加盘符大小}

图片.png

图片.png
3).C2中转:
向http[:]//poisonfight[.]com/idea.php发送Post请求
check=c558838690881fa7f75807cfa94b3713
接受json格式的回显{"status":"ok"}

图片.png

图片.png

图片.png

判断是否返回为ok

图片.png
接收到ok后,对远程C2服务器发起第二段post请求
http[:]//poisonfight[.]com/idea.php发送Post请求
servers=c558838690881fa7f75807cfa94b3713
返回的json结果为:
{"servers":[{"ip_addr":"cookiesqueen.com\/innovative"}]}

图片.png

图片.png

图片.png

图片.png

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

图片.png
向C2端发送编码后的系统信息
S=sess_{随机字母组合} check={令牌编码}
(OD:)

图片.png
(Anyrun)

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

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

图片.png
4).文件下载
向http[:]//cookiesqueen[.]com/innovative.php
发送post请求
l=ZG93bmxvYWQ%3D以及
s=sess_{随机字母组合} check={令牌编码}
(OD:)

图片.png
(Anyrun:)

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

图片.png
下载文件于%Temp%{随机字母组合}

图片.png
5).载荷解压
通过expand –d 命令获取当前cab压缩包中的内容

图片.png
发现其中包含着java7.exe

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

图片.png

图片.png

此外,其会针对系统进行判断,若不属于其侦测范围的则不执行释放诱饵文档于桌面的行为
但我们在anyrun沙箱中看到了这个操作

图片.png
释放的doc文档名为:èñïðàâëåííûé âàðèàíò_18.11.2019ã.doc
并且执行
诱饵界面为

图片.png
部分译文为:

图片.png

由此可见该活动针对的是乌兹别克斯坦的外交部门
并且恶意样本会记录该信息,base64编码后以Post形式反馈给C2
(OD:)

图片.png
(Anyrun:)

图片.png

图片.png

图片.png

图片.png

收集之前的解压cab文件记录,以及解压后的文件路径以及遍历启动文件夹内的存在,确保后门的持久化运行

6).载荷清理
释放s.bat于%Temp%\下

图片.png
写入s.bat

图片.png

图片.png

如下图所示

图片.png
主要内容是判断你所运行的exe是否存在,若存在则删除,若不存在则删除自身
为了方便大家看着方便,笔者画了一幅流程图便于大家方便理解

图片.png

(三).网络模块
(Octopus 被控端)

图片.png

经过exeinfo PE查壳后发现其依旧使用delphi编写

图片.png

(一).获取%AppData%路径,并且释放.setting.ini,写入配置

图片.png

图片.png

(二).像中转c2发出中转请求
和加载器的手段一样,不再赘述
发送check请求,判断存活

图片.png
发送Servers请求获得中转C2的json格式

图片.png
拼凑字符串得到C2

图片.png

(三).收集信息
1).收集当前计算机名称
执行命令
C:\windows\system32\wbem\WMIC.exe computersystem get name /format:list

图片.png

图片.png

2).收集系统安装时间
执行
C:\windows\system32\wbem\WMIC.exe os get installdate /format:list

图片.png

图片.png

3).获取本地盘符
执行
C:\windows\system32\wbem\WMIC.exe path CIM_LogicalDiskBasedOnPartition get Antecedent,Dependent

图片.png

图片.png

4).收集序列号
执行
C:\windows\system32\wbem\WMIC.exe path win32_physicalmedia where tag="\\.\PHYSICALDRIVE0" get serialnumber /format:list

图片.png

图片.png

此外,被控端拥有与记载器类同的收集信息部分,这里就不再赘述

(四)发送报文并接受回显
将收集到的信息以如下方式组成json格式

图片.png

图片.png
Base64编码后以Post方式向http[:]//cookiesqueen[.]com/innovative.php
?query=c558838690881fa7f75807cfa94b3713发送报文

图片.png

图片.png

报文解密后

图片.png
接受返回指令为{“rt”:”30”}

图片.png

三.组织关联

根据卡巴斯基于2018.10.15发布的关于DustSquad组织使用Octopus恶意软件攻击中亚地区的报告来看
(链接放在附录部分)
该活动与本活动有以下的几点共性

1).释放于自启动文件夹的被控端都拥有相同的Java图标

图片.png
2).拥有部分重合的代码逻辑

图片.png

图片.png

3).相似的C2报文格式

图片.png

图片.png

4).类似的C2中转方式

图片.png
5).相同的信息收集指令

图片.png

根据以上信息我们基本上可以判断这次的攻击属于DustSquad组织利用Octopus恶意软件攻击乌兹比克斯坦的外交实体

四.总结

该组织能够熟练的进行投递rar文件的信息对目标进行攻击,并且使用Delphi的恶意软件,以及通过入侵一些正常网站,上传C2中转的PHP文件做到中转C2的操作,这样既可以避免了杀毒软件的静态查杀,又可以随时撤走载荷。

五.IOCs

图片.png
C2:
http[:]//cookiesqueen[.]com/innovative.php
http[:]//poisonfight[.]com/idea.php

URL:
http[:]//poisonfight[.]com/idea.php?check= c558838690881fa7f75807cfa94b3713
http[:]//poisonfight[.]com/idea.php?servers= c558838690881fa7f75807cfa94b3713
http[:]//poisonfight[.]com/idea.php?servers= c558838690881fa7f75807cfa94b3713
http[:]//poisonfight[.]com/idea.php?query= c558838690881fa7f75807cfa94b3713

执行命令:
WMIC.exe computersystem get name /format:list
WMIC.exe os get installdate /format:list
WMIC.exe path CIM_LogicalDiskBasedOnPartition get Antecedent,Dependent
WMIC.exe path win32_physicalmedia where tag="\\.\PHYSICALDRIVE0" get serialnumber /format:list

释放文件:
{自启动文件夹}/Java7.exe
%AppData%.settings.ini
%userprofile%\Desktop\èñïðàâëåííûé âàðèàíò_18.11.2019ã.doc
%Temp%{随机字符}