梦开始的地方
该样本源于某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并对资源进行解密。
资源加载、解密
资源加载、解密2
对于资源段的加密,可以发现是rc4罢了。
rc4加密
密钥(key)
key
密文即为该资源数据。
解密前资源数据
解密后可发现大量"有用信息",只因是ctf罢了。
解密后资源数据
解密后资源数据
KEY{9AE1BFA9-BA8B-D417-4A73-F33557D42781}
至此,对于题目要求的key我们已经找到。然而,对于程序的分析才刚刚开始。
<u>Tips:合理利用搜索引擎,搜索 Dark Comet
or #KCMDDC51#-890
亦可发现一些有趣的信息。</u>
此处将KQeG7WAgDdFg.dcp内容映射至内存,若校验通过,则保存远程服务器信息 darkcomet.control.domain:1604
。
保存KQeG7WAgDdFg.dcp内容
保存KQeG7WAgDdFg.dcp内容2
程序本地保存的域名信息 127.0.0.1:1604
,此时将替换为经过解密后的域名信息,后续可能将对该域名进行访问(该域名已失效)。
保存解密域名信息
后续的部分功能与上述类似,跳过该部分接着向下分析。
sub_45F5F8将自身映射到动态内存中,sub_45EB30在这里发现可疑字串 0123456789abcdeffedcba987654321
,猜测可能含有md5、sha-1等hash算法,预估其功能(目的)是为了校验加载至内存的自身木马程序是否正确 。
md5校验
特征码
优化一下函数名,可以看到经过第一个md5_check_self将自身映射至内存后,计算出了自身的md5值,应该是为了检验自身是否正常被加载、有无被魔改。经过第二个md5_check_self时已经校验过计算过,直接返回了。
check
check
计算出的md5值
这里计算出的md5值与分析样本前计算出的md5值相同。
Create_Reg函数将在当前用户目录下创建/打开Software目录,再创建/打开DC3_FEXEC文件夹并创建 时间-硬件配置文件信息序列号
键值对。
修改注册表
修改注册表2
跟进查看可以发现sub_4218e4将打开/创建键值,sub_422008将给打开/创建的键赋值。
修改注册表3
修改注册表4
修改注册表5
程序后面没有正常加载INSTALL、KEYNAME、CHANGEDATA、FAKEMSG、PDNS、FILEATTRIB等资源,导致部分功能无法正常执行,应该是作者为了不对选手计算机造成太大影响,对解密资源数据进行了一定程度的修改。
未正常加载的资源
为正常加载的资源2
简述一下这些没有加载成功的资源所包含的功能。
修改注册表6
创建dll文件
dll注入1
dll注入2
dll注入3
dll注入4
- 设置组策略
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
,禁止用户打开任务管理器。
修改注册表7
小结
样本大致功能为:
- 创建互斥对象,
- 资源加载、解密(直接映射至内存)
- 根据解密的资源进一步破坏他人环境(修改注册表等)
- 修改hosts文件
- 访问远程服务器、下载/安装恶意文件
- 创建恶意dll文件等,并更改文件属性
- 将该dll注入notepad进程、设置开机自启。
- 设置组策略禁止用户任务管理器
未被作者修改的版本程序会在temp和system目录下创建/下载一些恶意文件,此版本由于资源缺失已无法正常加载。