初探远控c&c

如有不足(错误),请多指正。

远控c&c

远控C&C(木马)是一种监听、盗取用户数据的后门程序

其功能可能包括:

  • 获取他人用户信息,远程控制他人电子设备。

  • 自启动。

  • 隐藏自身。

可能包含的具体操作:

  • 解密远控模块(资源加载、资源释放、资源解密)。

  • 简单检查解密是否成功后就开始加载进内存执行。

  • 修改注册表(开机自启等)。

  • 开启某个端口进行监听,等待远程服务器连接。

  • 收集本地系统信息等。

  • 下载远程文件,自我执行等。

  • 在system等较为敏感的文件夹下创建恶意文件。

  • 根据远程服务器命令,执行对应的控制模块。

特洛伊木马

Rootkit

梦开始的地方

一个远控木马。该样本源于某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目录下创建/下载一些恶意文件,此版本已被阉割。