首页
论坛
课程
招聘
[原创]【APT样本分析】APT28样本超详细分析
2022-3-25 16:40 10384

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

2022-3-25 16:40
10384

一、基本信息

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

二、测试环境及工具

2.1测试环境

Win7 x64 SP1

2.2测试工具

2.2.1查壳工具

ExeinfoPE

2.2.2监测工具

火绒剑、Processonitor、Regshot

2.2.3调试工具

OD、IDA

三、基本静态分析

3.1字符串分析

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

 

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

 

image.png

 

各个国家的语言

 

image.png

3.2PE分析

image.png

3.2.1导入表

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

3.3壳分析

无壳
image.png

四、行为分析

4.1文件监控

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

4.2进程监控

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

4.3网络监控

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

4.4注册表监控

敏感操作:
注册表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

 

1707函数
通过_wcsstr找".dll"的子串
image.png
解密三个字符串
image.png

 

1D09函数
判断当前函数的运行权限
image.png
判断运行权限是属于高权限0x3000
image.png
image.png
结果是0x1000,直接退出
结果是0x2000,返回值是1
结果是0x3000,返回值是2
结果是0x4000,返回值是3
结果是0x5000,直接退出

 

回到1707函数
如果是system权限
执行1B02函数
执行1957函数
加载一个Advapi32.dll
image.png
获取OpenProcessToken函数地址
image.png
调用OpenProcessToken函数
image.png
获取LookupPrivilegeValue函数地址
image.png
调用LookupPrivilegeValue函数
image.png
调用AdjustTokenPrivileges函数
image.png
上面是将程序更改为SeSecurityPrivilege权限,下面更改成SeTcbPrivilege权限
image.png
image.png

 

执行1C3D函数
该函数功能,遍历进程,找到explorer进程
image.png
通过OpenProcess函数打开explorer进程,通过OpenProcessToken函数获得explorer的令牌句柄,将OpenProcessToken的第三个参数TokenHandle返回。
image.png

 

回到1B02函数
内存初始化
执行18DC函数,该函数,将ESI的字符串写入内存
image.png
再回到1B02函数
加载Advapi32.dll
image.png
获取CreateProcessAsUser函数地址
image.png
执行CreaterocessAsUser函数,以当前登录用户身份运行程序
image.png
执行完毕后
image.png

 

回到1707函数,执行后续的内存释放操作
image.png
如果是administrator(高权限)权限,则直接执行
image.png
image.png
至此详细分析完毕
梳理如下
image.png

六、应对策略

样本行为
1、释放文件C:\Users\Administrator\AppData\Local\cdnver.bat和C:\Users\Administrator\AppData\Local\cdnver.dll
2、修改注册表
image.png
基于此样本,删除文件、还原注册表即可。


Unidbg 模拟执行精讲

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