首页
社区
课程
招聘
[原创]【APT样本分析】APT28样本超详细分析
发表于: 2022-3-25 16:40 13712

[原创]【APT样本分析】APT28样本超详细分析

2022-3-25 16:40
13712

病毒名称:ff808d0a12676bfac88fd26f955154f8884f2bb7c534b9936510fd6296c543e8
MD5:36524C90CA1FAC2102E7653DFADB31B2
SHA1:8D6DB316EA4E348021CB59CF3C6EC65C390F0497
CRC32:04DA02C3
样本来源:anyrun

Win7 x64 SP1

ExeinfoPE

火绒剑、Processonitor、Regshot

OD、IDA

日期月份时间相关的字符串
image.png

各种字符,猜测跟加密相关

image.png

各个国家的语言

image.png

image.png

1、KERNEL32.dll
image.png

关键函数

进程遍历:
CreateToolhelp32Snapshot
Process32NextW
文件操作:
WriteFile
DeleteFile
CreateFile
FlushFileBuffers
获取当前操作系统的信息:
GetEnviromentVariable
解密相关:
Decodeointer
反调试相关:
IsDebuggerPresent
IsProcessorFeaturePresent //判断处理器相关信息

2、ADVAPI32.dll
可能跟提权相关
image.png

3、SHELL32.dll
命令执行相关
image.png

无壳
image.png

创建、写入、修改文件
image.png

启动一个rundll32.exe进程
image.png
通过rundll32.exe加载释放的dll文件
image.png

因为使用的模拟网络,所以需要根据DNS请求的域名进行过滤
image.png
威胁情报进行查询image.png

敏感操作:
注册表HKCR\Environment\UserInitMprLogonScript键值所指的程序会在杀毒软件启动前启动,而且修改它不需要管理员权限,因此我们可以通过其来达到权限维持的效果。
image.png

综上,可以看出,我们拿到的样本,执行后,释放一个bat文件和一个dll文件,bat文件调用rundll32.exe执行dll文件,并写入注册表进行权限维持。网络方面收集完本机信息会去访问C2服务器。核心功能应该是在dll文件中,接下来先分析这个母体文件。

IDA大致分析样本流程如下:
image.png
下面结合OD详细分析:
OD加载后,停留在此处
image.png
执行大量函数,无法直观判断具体功能
image.png
一直执行下去发现,程序终止,所以猜测上面的函数应该有反调试的功能
image.png
根据动态获取的基地址,结合IDA的OEP,直接跳转程序入口,下断点并执行到此处
image.png
程序开始执行
1DEF函数
先是执行了三个相同的函数
image.png
函数内部有循环和运算操作,猜测是进行加解密操作
image.png
OD执行查看,解密字符串如下,是三个路径
image.png

12D3函数
两次执行1063函数解密字符串:
第一次:cdnver.dll
image.png
函数内部如下
image.png
第二次:函数内部逻辑同上
image.png

1000函数
解密一段数据,该数据是PE文件
解密前:
image.png
解密后:
image.png

13F7函数
1DEF函数解密字符串:
image.png
实现数据压缩解压缩
image.png
解压到此处
image.png
解压完毕
image.png

155B函数
执行10CD函数
执行1DEF函数解密两个字符串
image.png
image.png
获取当前环境变量的字符串
image.png
加载Kernel32.dll
image.png
获取CreateFile函数地址
image.png
调用CreateFile创建一个文件
image.png
image.png
获取WriteFile函数的地址
image.png
image.png
此时文件已经写入完毕
image.png

264C函数
1DEF执行7次解密字符串:
image.png
加载ADVAPI32.dll,里面包含注册表、事件日志等相关操作
image.png
获取RegOpenKeyExW函数地址,用于打开注册表键
image.png
主键名称对应的常数
image.png
image.png
获取环境变量及处理字符串工作
_wgetenv:从环境中取字符串,获取环境变量
image.png
获取“LOCALAPPDATA”的环境变量
image.png
_wcsstr:从字符串中寻找子串
返回值:返回str中第一次出现strSearch的指针,如果strSearch未出现在str中,则返回NULL。如果strSearch指向长度为零的字符串,则函数返回str。
image.png
从cdnver.dll找".",获取文件后缀名字
image.png
循环判断,防止文件名中有不止一个"."
image.png
直到文件名中没有".",EAX返回值是0
image.png

2030函数
1DEF解密字符串
image.png
将其宽字节转多字节,UNICODE转ASCII
image.png
同样的对字符串"#1"、"cdnver.dll"、"LOCALAPPDATA"、"start"、"cdnver.bat"进行处理
image.png
获取CreateFileA的函数地址,准备创建文件
image.png
创建文件
image.png
创建文件完毕
image.png
构建字符串
image.png
字符串构建完成
image.png
通过WriteFile,写入文件
image.png
写入成功
image.png
lstrcatW:字符串拼接,该函数将一个字符串附加在另一个字符串后面。
image.png
构造字符串
image.png
加载ADVAPI32.dll,获取RegSetValueEx的函数地址
image.png
设置注册表,权限维持操作。因为HKEY_CURRENT_USER\Environment\Logon Scripts 的执行顺序在杀软前,所以Logon Scripts可以优先于杀软执行,绕过杀软对敏感操作的拦截。
image.png
设置前和设置后
image.png
image.png


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

最后于 2022-3-27 14:43 被FSNSN编辑 ,原因:
收藏
免费 5
支持
分享
打赏 + 80.00雪花
打赏次数 1 雪花 + 80.00
 
赞赏  Editor   +80.00 2022/04/15 恭喜您获得“雪花”奖励,安全圈有你而精彩!
最新回复 (6)
雪    币: 1334
活跃值: (1995)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这病毒可真强,进去一看hello world。都不给分析
2022-3-25 17:07
0
雪    币: 308
活跃值: (438)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
抱歉了老哥,图床崩了
2022-3-25 20:05
0
雪    币: 308
活跃值: (438)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
库尔 这病毒可真强,进去一看hello world。都不给分析
现在应该可以了
2022-3-27 14:59
0
雪    币: 231
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
有分析cdnver.dll嘛
2022-3-29 17:41
0
雪    币: 308
活跃值: (438)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
浅汐 有分析cdnver.dll嘛
正在分析,下篇文章就是
2022-3-29 20:32
0
雪    币: 231
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
FSNSN 正在分析,下篇文章就是
好嘞,坐等
2022-4-1 18:43
0
游客
登录 | 注册 方可回帖
返回
//