一叶丶 发表于 2021-5-26 17:23

一次恶意样本分析

本帖最后由 一叶丶 于 2021-5-27 17:26 编辑

## 梦开始的地方

该样本源于某ctf,目标是找到入侵者的key。
第一次尝试分析恶意样本,如有不足(错误),还请各位大佬们指出。

链接:(https://pan.baidu.com/s/1MmOdh4c5ZxWWCOpd_68EsQ)
提取码:6w4s

解压密码:52pojie

### 样本分析

样本基本信息如下。





静态分析一下,发现该样本无壳、使用了ADLE-32校验算法、MD5加密以及ZLIB压缩算法。






查看程序iat,发现包含大量敏感api。





wsock32.dll中WSAStartup、send等实现进程间通信。

advapi32.dll中OpenProcess、AdjustTokenPrivileges等api提升权限,RegOpenKeyExA、RegSetValueExA等api更新注册表,CreateServiceA、StartService等api更新服务对象。

kernel32.dll中WriteProcessMemory、LoadLibrary、GetProcAddress、CreateMutexA等api

user32.dll中SetWindowsHookExA、mouse_event、keybd_event等api设置消息钩子。

URLMON.DLL中URLDownloadToFileA下载远程文件。



查看程序资源发现可疑数据,该资源大小并不大应该不是dll、exe等可执行文件。





根据收集到的信息,猜测程序可能包含的功能有:

创建互斥对象、创建全局钩子实现键盘监控、鼠标监控等、DLL注入、修改注册表(开机自启)、下载远程恶意文件、等待远程服务端连接等。



对程序进一步分析。

没有混淆可以直接分析,跟进sub_48df60。





经过分析,sub_48dde0将遍历整个资源数据,寻找DCDATA资源。sub_409b7c对加载的资源进行校验判断是否正确加载。sub_405864和sub_4616b4加载密钥key并对资源进行解密。









对于资源段的加密,可以发现是rc4罢了。





密钥(key)





密文即为该资源数据。





解密后可发现大量"有用信息",只因是ctf罢了。








KEY{9AE1BFA9-BA8B-D417-4A73-F33557D42781}

至此,对于题目要求的key我们已经找到。然而,对于程序的分析才刚刚开始。



<u>Tips:合理利用搜索引擎,搜索 `Dark Comet` or `#KCMDDC51#-890` 亦可发现一些有趣的信息。</u>



此处将KQeG7WAgDdFg.dcp内容映射至内存,若校验通过,则保存远程服务器信息 `darkcomet.control.domain:1604` 。









程序本地保存的域名信息 `127.0.0.1:1604` ,此时将替换为经过解密后的域名信息,后续可能将对该域名进行访问(该域名已失效)。






后续的部分功能与上述类似,跳过该部分接着向下分析。

sub_45F5F8将自身映射到动态内存中,sub_45EB30在这里发现可疑字串 `0123456789abcdeffedcba987654321` ,猜测可能含有md5、sha-1等hash算法,预估其功能(目的)是为了校验加载至内存的自身木马程序是否正确 。








优化一下函数名,可以看到经过第一个md5_check_self将自身映射至内存后,计算出了自身的md5值,应该是为了检验自身是否正常被加载、有无被魔改。经过第二个md5_check_self时已经校验过计算过,直接返回了。













这里计算出的md5值与分析样本前计算出的md5值相同。



Create_Reg函数将在当前用户目录下创建/打开Software目录,再创建/打开DC3_FEXEC文件夹并创建 `时间-硬件配置文件信息序列号` 键值对。









跟进查看可以发现sub_4218e4将打开/创建键值,sub_422008将给打开/创建的键赋值。














程序后面没有正常加载INSTALL、KEYNAME、CHANGEDATA、FAKEMSG、PDNS、FILEATTRIB等资源,导致部分功能无法正常执行,应该是作者为了不对选手计算机造成太大影响,对解密资源数据进行了一定程度的修改。









简述一下这些没有加载成功的资源所包含的功能。

- 安装与 `KQeG7WAgDdFg.dcp` 内容相关的文件



- 安装成功后修改程序属性、注册表(自启动等一系列功能)





- 伪装正常程序的弹窗消息(MessageBoxA)



- 修改DNS。更改系统目录下的域名解析文件内容,我的是 `C:\Windows\System32\drivers\etc\hosts`



- 执行shell命令(ShellExecuteA打开了cmd)



- 在当前用户temp目录下创建不明文件



- 加载程序资源,创建dll文件






- 进行dll注入,目标:notepad。




















- 设置组策略 `HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System` ,禁止用户打开任务管理器。








### 小结

样本大致功能为:

- 创建互斥对象,
- 资源加载、解密(直接映射至内存)
- 根据解密的资源进一步破坏他人环境(修改注册表等)
- 修改hosts文件
- 访问远程服务器、下载/安装恶意文件
- 创建恶意dll文件等,并更改文件属性
- 将该dll注入notepad进程、设置开机自启。
- 设置组策略禁止用户任务管理器


未被作者修改的版本程序会在temp和system目录下创建/下载一些恶意文件,此版本由于资源缺失已无法正常加载。

pplus 发表于 2021-5-27 16:12

学习了 ,,,,学习

Hmily 发表于 2021-6-29 10:54

分析挺详细,加优秀鼓励,期待更多精彩分析。

jsncy 发表于 2021-6-30 17:47

这个厉害,

FlyingFire 发表于 2021-7-31 16:58

本想跟着做一遍,奈何经验不足,很多都看不懂。

HideMyEye 发表于 2021-8-17 10:17

很详细,学习了

wq2178 发表于 2021-8-17 10:25

只能说大佬NB

shanhai1 发表于 2021-9-23 14:22


只能说大佬NB

iyeoman 发表于 2021-9-24 23:58

学习学习再学习

54mj 发表于 2021-10-13 07:34

谢谢分享,大力支持
页: [1] 2
查看完整版本: 一次恶意样本分析