初探远控c&c
如有不足(错误),请多指正。
远控c&c
远控C&C(木马)是一种监听、盗取用户数据的后门程序
其功能可能包括:
获取他人用户信息,远程控制他人电子设备。
自启动。
隐藏自身。
可能包含的具体操作:
解密远控模块(资源加载、资源释放、资源解密)。
简单检查解密是否成功后就开始加载进内存执行。
修改注册表(开机自启等)。
开启某个端口进行监听,等待远程服务器连接。
收集本地系统信息等。
下载远程文件,自我执行等。
在system等较为敏感的文件夹下创建恶意文件。
根据远程服务器命令,执行对应的控制模块。
梦开始的地方
一个远控木马。该样本源于某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我们已经找到。然而,对于程序的分析才刚刚开始。
Tips:合理利用搜索引擎,搜索 Dark Comet
or #KCMDDC51#-890
亦可发现一些有趣的信息。
此处将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目录下生成pdb文件,而非恶意程序的正常流程。


这里并不是该程序生成的文件,是调试过程中ida产生的文件。
mozilla-temp-files可作为火狐的播放媒体缓存文件,tmpaddon似乎是火狐的某配置文件。
未被作者修改的版本程序会在temp和system目录下创建/下载一些恶意文件,此版本已被阉割。