默小白 发表于 2019-5-24 09:15

【转帖】APT28分析之Seduploader样本分析

本帖最后由 默小白 于 2019-5-24 09:17 编辑

转自:https://xz.aliyun.com/t/5199

最近在研究APT攻击,我选择研究APT的方法通过一个APT组织入手,我选择的是APT28这个组织,APT28组织是一个与俄罗斯政府组织的高级攻击团伙,我将分析该组织的攻击样本、攻击方法、攻击目的来研究一个APT组织。本次分析的是该团伙使用的CVE-2015-1641漏洞样本,所有资料均来自互联网。
Seduploader恶意软件作为APT28的第一阶段后门使用,主要作用是用于侦察并下载第二阶段的木马。

主要的攻击方式交付这种木马:
1 鱼叉攻击(使用钓鱼邮件包含恶意的office文档)
2 水坑攻击(使用Sedkit漏洞工具包,主要包括flash跟IE的漏洞)

此木马的一些特点:
1 包含有Carberp开源木马的代码
2 此木马已经被编译的有Windows跟OS X版本
3 进行反分析已经不同版本多种连接C&C的方式

**样本分析**
文件的信息如下
文件名称 btecache.dll
SHA-256 c2551c4e6521ac72982cb952503a2e6f016356e02ee31dea36c713141d4f3785
创建时间 2016-05-20 13:16:01
文件大小 51.0 KB (52,224 字节)

文件名称 svchost.dll
SHA-256 69940a20ab9abb31a03fcefe6de92a16ed474bbdff3288498851afc12a834261
创建时间 2016-05-20 22:58:15
文件大小 32.5 KB (33,280 字节)

**交付方式**
这两个文件是通过社工邮件携带的恶意的rtf文档,rtf文档包含有CVE-2015-1641漏洞

**持久化方式**
在上篇文章有介绍,在HKEY_CURRENT_USER\Software\Microsoft\Office test\Special\Perf中如下所示带有释放的btecache.dll,每次打开office程序的时候,会加载这个DLL,实现木马的持久化

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519194914-1fc8cb06-7a2c-1.png)

**与Carberp同源性分析**
在分析着两个DLL中发现了很多跟Carberp开源木马的代码相同的代码,如下Getkernel32函数,在API获取函数的方式跟RC2密钥都是相同的

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519194951-362b7c5e-7a2c-1.png)

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195035-50223ada-7a2c-1.png)

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195106-62bd0620-7a2c-1.png)

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195110-65256fce-7a2c-1.png)

RC2密钥

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195133-72dd9510-7a2c-1.png)

**btechche.dll分析**

这个文件会随着office进程而加载,但是会比较进程,只有word进程才选择启动,并创建了一个ASLIiasiuqpssuqkl713h互斥体

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195217-8cd21734-7a2c-1.png)

之后拼接出释放的另一个的DLL文件svchost.dll的路径,并且将一个begin字符串传入,而通过分析svchost.dll发现是这个DLL的导出函数。

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195240-9ae9f7ce-7a2c-1.png)

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195243-9cc61596-7a2c-1.png)

之后将自身复制到新开辟的内存中,并开启线程

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195306-aa803c20-7a2c-1.png)

加载svchost模块

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195337-bcef6656-7a2c-1.png)

获取begin地址并执行

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195403-cc0ebfce-7a2c-1.png)

**Svchost模块分析**
**通信分析**
首先创建互斥量MutexName = "sSbydFdIob6NrhNTJcF89uDqE2"

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195449-e7819204-7a2c-1.png)

然后创建了一个线程,并且判断主机是否联网

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195520-f9f6e524-7a2c-1.png)

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195523-fbb4d9d4-7a2c-1.png)

之后,开始连接google.com,并生成随机路径

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195552-0d6950b0-7a2d-1.png)

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195556-0f5aa6c6-7a2d-1.png)

使用POST协议进行发送,不管返回状态码是200还是404都是会进行到下一步。

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195622-1f357350-7a2d-1.png)

之后直连C&C,并收集系统信息进行发送,C&C为191.101.31.6
收集的系统信息并发送

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195653-31be2652-7a2d-1.png)

收集的系统信息包括
系统进程信息如图

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519195714-3df9c6d8-7a2d-1.png)

参数解释:
Id:硬盘信息 硬盘序列号

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519200509-5966dac2-7a2e-1.png)

w: 后面跟两个字节
第一个字节:表示获取的操作系统版本信息
第二个字节:表示是32位还是64位
后面跟进程信息

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519200532-669e521a-7a2e-1.png)

Disk:
通过注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\Enum
获取磁盘信息如图

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519200556-75732a04-7a2e-1.png)

build=0x7caa0e19
表示木马版本的硬编码
还有一些其他的参数,但是这次并没有发送
Inject:表示是否进行注入
最后通过自定义的加密算法进行加密然后发送,发送完之后,判断如果状态码是200或者404表示C&C存活,

在发送结束后,如果设置标志位(此样本没有设置),将会将C&C 191.101.31.6 BASE64编码后设置到如下注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Servers\Domain

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519200633-8b6fc07e-7a2e-1.png)

**功能分析**
在接收数据之后进行解密后,主要与以下指令进行比较

!(https://xzfile.aliyuncs.com/media/upload/picture/20190519200709-a0bb8cc4-7a2e-1.png)

包括以下指令,进行文件,执行,设置操作

Execte
Delete



参考文章
https://unit42.paloaltonetworks.com/unit42-new-sofacy-attacks-against-us-government-agency/
https://www.welivesecurity.com/wp-content/uploads/2016/10/eset-sednit-full.pdf
页: [1]
查看完整版本: 【转帖】APT28分析之Seduploader样本分析