APT28样本超详细分析

APT 2年前 (2022) admin
830 0 0

APT28样本超详细分析

本文为看雪论坛优秀‍‍‍文章
看雪论坛作者ID:FSNSN




基本信息


病毒名称: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字符串分析


日期月份时间相关的字符串
APT28样本超详细分析

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

APT28样本超详细分析
各个国家的语言:
APT28样本超详细分析

3.2PE分析

APT28样本超详细分析


3.2.1导入表


1、KERNEL32.dll
APT28样本超详细分析

关键函数
 
进程遍历:
CreateToolhelp32Snapshot
Process32NextW
文件操作:
WriteFile
DeleteFile
CreateFile
FlushFileBuffers

获取当前操作系统的信息:
GetEnviromentVariable

解密相关:
Decodeointer

反调试相关:
IsDebuggerPresent
IsProcessorFeaturePresent //判断处理器相关信息
 
2、ADVAPI32.dll
可能跟提权相关
APT28样本超详细分析
 
3、SHELL32.dll
命令执行相关
APT28样本超详细分析


3.3壳分析


无壳
APT28样本超详细分析




行为分析


4.1文件监控

创建、写入、修改文件
APT28样本超详细分析


4.2进程监控

启动一个rundll32.exe进程
APT28样本超详细分析
通过rundll32.exe加载释放的dll文件
APT28样本超详细分析


4.3网络监控

因为使用的模拟网络,所以需要根据DNS请求的域名进行过滤
APT28样本超详细分析
威胁情报进行查询APT28样本超详细分析


4.4注册表监控

敏感操作:
注册表HKCREnvironmentUserInitMprLogonScript键值所指的程序会在杀毒软件启动前启动,而且修改它不需要管理员权限,因此我们可以通过其来达到权限维持的效果。
APT28样本超详细分析
 
综上,可以看出,我们拿到的样本,执行后,释放一个bat文件和一个dll文件,bat文件调用rundll32.exe执行dll文件,并写入注册表进行权限维持。网络方面收集完本机信息会去访问C2服务器。核心功能应该是在dll文件中,接下来先分析这个母体文件。




综合分析


IDA大致分析样本流程如下:
APT28样本超详细分析

下面结合OD详细分析:
OD加载后,停留在此处。
APT28样本超详细分析

执行大量函数,无法直观判断具体功能。


APT28样本超详细分析

一直执行下去发现,程序终止,所以猜测上面的函数应该有反调试的功能。
APT28样本超详细分析
根据动态获取的基地址,结合IDA的OEP,直接跳转程序入口,下断点并执行到此处。
APT28样本超详细分析
程序开始执行。

1DEF函数

先是执行了三个相同的函数。
APT28样本超详细分析
函数内部有循环和运算操作,猜测是进行加解密操作。
APT28样本超详细分析
OD执行查看,解密字符串如下,是三个路径。
APT28样本超详细分析
 
12D3函数

两次执行1063函数解密字符串:
第一次:cdnver.dll
APT28样本超详细分析
函数内部如下:
APT28样本超详细分析
第二次:函数内部逻辑同上
APT28样本超详细分析
 
1000函数

解密一段数据,该数据是PE文件
解密前:
APT28样本超详细分析
解密后:

APT28样本超详细分析
 
13F7函数

1DEF函数解密字符串:
APT28样本超详细分析
实现数据压缩解压缩
APT28样本超详细分析
解压到此处
APT28样本超详细分析
解压完毕
APT28样本超详细分析
 
155B函数

执行10CD函数
执行1DEF函数解密两个字符串
APT28样本超详细分析
APT28样本超详细分析
获取当前环境变量的字符串
APT28样本超详细分析
加载Kernel32.dll
APT28样本超详细分析
获取CreateFile函数地址
APT28样本超详细分析
调用CreateFile创建一个文件
APT28样本超详细分析

APT28样本超详细分析
获取WriteFile函数的地址
APT28样本超详细分析
APT28样本超详细分析
此时文件已经写入完毕
APT28样本超详细分析
 
264C函数

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

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

通过_wcsstr找”.dll”的子串
APT28样本超详细分析
解密三个字符串
APT28样本超详细分析
 
1D09函数

判断当前函数的运行权限
APT28样本超详细分析
判断运行权限是属于高权限0x3000
APT28样本超详细分析
APT28样本超详细分析
结果是0x1000,直接退出
结果是0x2000,返回值是1
结果是0x3000,返回值是2
结果是0x4000,返回值是3
结果是0x5000,直接退出
 
回到1707函数
如果是system权限
执行1B02函数
执行1957函数
加载一个Advapi32.dll
APT28样本超详细分析
获取OpenProcessToken函数地址
APT28样本超详细分析
调用OpenProcessToken函数
APT28样本超详细分析
获取LookupPrivilegeValue函数地址
APT28样本超详细分析
调用LookupPrivilegeValue函数
APT28样本超详细分析
调用AdjustTokenPrivileges函数
APT28样本超详细分析

上面是将程序更改为SeSecurityPrivilege权限,下面更改成SeTcbPrivilege权限
APT28样本超详细分析
APT28样本超详细分析
 
执行1C3D函数

该函数功能,遍历进程,找到explorer进程
APT28样本超详细分析
通过OpenProcess函数打开explorer进程,通过OpenProcessToken函数获得explorer的令牌句柄,将OpenProcessToken的第三个参数TokenHandle返回。
APT28样本超详细分析
 
回到1B02函数
内存初始化
执行18DC函数,该函数,将ESI的字符串写入内存
APT28样本超详细分析
再回到1B02函数
加载Advapi32.dll
APT28样本超详细分析
获取CreateProcessAsUser函数地址
APT28样本超详细分析
执行CreaterocessAsUser函数,以当前登录用户身份运行程序
APT28样本超详细分析
执行完毕后
APT28样本超详细分析
回到1707函数,执行后续的内存释放操作
APT28样本超详细分析
如果是administrator(高权限)权限,则直接执行
APT28样本超详细分析
APT28样本超详细分析
至此详细分析完毕。
梳理如下:
APT28样本超详细分析




应对策略


样本行为
1、释放文件C:UsersAdministratorAppDataLocalcdnver.bat和C:UsersAdministratorAppDataLocalcdnver.dll
2、修改注册表
APT28样本超详细分析
基于此样本,删除文件、还原注册表即可。



APT28样本超详细分析


看雪ID:FSNSN

https://bbs.pediy.com/user-home-819301.htm

*本文由看雪论坛 FSNSN 原创,转载请注明来自看雪社区


APT28样本超详细分析


# 往期推荐

1.CVE-2016-0095提权漏洞学习笔记

2.java序列化与反序列化

3.CVE-2022-21999 Windows Print Spooler 权限提升漏洞分析

4.The House of Mind (FASTBIN METHOD) + PRIME

5.totolink登陆跳过—分析思路

6.Android APP漏洞之战—插件化漏洞和解压缩漏洞详解



APT28样本超详细分析



APT28样本超详细分析

球分享

APT28样本超详细分析

球点赞

APT28样本超详细分析

球在看



APT28样本超详细分析

点击“阅读原文”,了解更多!

原文始发于微信公众号(看雪学苑):APT28样本超详细分析

版权声明:admin 发表于 2022年4月15日 下午5:59。
转载请注明:APT28样本超详细分析 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...