样本分析-DarkComet远控木马
person 发表于 广东 二进制安全 351浏览 · 2024-11-30 15:44

前言

DarkComet 是一种远程访问木马(Remote Access Trojan, RAT)。该恶意软件以隐蔽方式运行,主要用于窃取受害者的敏感信息,包括系统数据、用户凭据、用户名、密码和其他个人数据。这些信息会被传输到攻击者指定的目标地址,进一步用于恶意目的。

作为一种功能强大的后门工具,Backdoor.DarkComet 不仅可以窃取数据,还允许攻击者在受感染设备上安装其他恶意软件,甚至将其纳入僵尸网络,用于发送垃圾邮件或开展其他恶意活动。它还能禁用防病毒软件及其他安全功能,使其更难被检测或移除。

DarkComet 的传播方式多样,主要包括与免费软件捆绑、伪装成电子邮件中的无害程序,以及利用网站软件漏洞进行攻击。由于感染后症状不明显,用户往往难以察觉其存在,为攻击者提供了长期控制目标设备的机会。

样本

规避检测

修改文件属性

完整的命令是:

"C:\Windows\System32\cmd.exe" /k attrib "C:\Users\admin\AppData\Local\Temp\jPWRwWFD.exe" +s +h

这里使用了一个命令 attrib ,用于修改文件或文件夹的属性。+s+h 分别将文件设置为系统文件和隐藏文件,用于掩盖自身的存在。

修改进程权限

释放文件

DarkComet在 C:\Users\admin\Documents\MSDCSC\ 目录中 放置一个名为msdcsc.exe的文件并从那里执行它。

实际上,释放文件和原文件是相同的,这说明它可以在别的位置启动。

信息收集

收集硬件配置信息:

GetCurrentHwProfileA():此函数用于获取当前硬件配置文件信息。

  • 硬件配置文件 ID (HWID):标识当前硬件配置文件的全局唯一标识符 (GUID),允许恶意软件唯一地识别系统。

  • 坞站状态:通过dwDockInfo字段提取,此信息显示系统是否已坞站(例如,连接到坞站)或未坞站。这有助于恶意软件根据系统的硬件配置调整其行为。

获取设备的日期和时间

它还通过查询与当前用户的安全标识符 (SID) 关联的注册表项来检查计算机的位置设置:

\REGISTRY\USER{SID}\Control Panel\International\Geo\Nation

数据处理

样本多次调用函数sub_4735E8

该函数执行资源管理并处理各种数据,包括:

  • C2 域信息:恶意软件与之通信的命令和控制服务器。

  • SID(安全标识符):识别与恶意软件活动相关的用户配置文件。

  • 互斥值:用于确保一次只有一个恶意软件实例在受感染的系统上运行。

while循环中处理数据,利用此功能,恶意软件会循环遍历DARKCOMET DATA,根据提供的参数字符串检索特定属性。

以下是恶意软件用来迭代 DARKCOMET DATA 的循环:

sub_4735E8 函数中,DarkComet 会遍历其内部的数据集(称为 "DARKCOMET DATA"),以匹配特定的参数并提取相应的属性。该过程通过循环遍历数据条目,使用提供的字符串来检索所需的值。

提取的 DARKCOMET 数据:

#BEGIN DARKCOMET DATA --
MUTEX={DC_MUTEX-D1SPNDG}
SID={Sazan}
FWB={0}
NETDATA={8.tcp.eu.ngrok.io:27791}
GENCODE={fKTZRKdv0Nij}
INSTALL={1}
COMBOPATH={7}
EDTPATH={MSDCSC\\msdcsc.exe}
KEYNAME={MicroUpdate}
EDTDATE={16/04/2007}
PERSINST={0}
MELT={0}
CHANGEDATE={0}
DIRATTRIB={6}
FILEATTRIB={6}
FAKEMSG={1}
EF={1}
MSGCORE={{42696C67697361796172FD6EFD7A20332073616E6979652069E7696E64652079656E6964656E206261FE6C6174FD6C6163616B74FD722E2E2E}
MSGICON={48}
SH1={1}
CHIDEF={1}
CHIDED={1}
PERS={1}
OFFLINEK={1}
#EOF DARKCOMET DATA --

恶意软件会从这些数据中提取并使用一些关键属性,包括:

  • C2 域:定义了恶意软件将被窃取的数据发送到的服务器地址(即命令与控制服务器)。
  • EDTDATE:记录与恶意软件安装相关的日期(例如,16/04/2007)。这个日期表明,恶意软件不会更改被删除的可执行文件的时间戳。

互斥锁:确保只有一个实例在运行:

活动名称:用于识别特定的攻击或操作。

它还处理恶意软件的属性,定义其行为方式和与系统的交互方式:

  • EDTPath:可执行文件的路径(MSDCSC\msdcsc.exe)

注册表项(KEYNAME):MicroUpdate,用于维护系统注册表中的持久性。

DARKCOMET 数据中可以看出,恶意软件不会更改投放可执行文件的原始创建日期。CHANGEDATE 属性被设置为 0,意味着日期保持不变。

持久性操作

为了在受感染的系统中保持持久性,DarkComet 会采取以下措施:

  1. 添加启动项:它在 SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MicroUpdate 注册表项中创建一个条目,指向恶意可执行文件的路径,从而确保恶意软件随系统启动自动运行。
  2. 修改 WinLogon 注册表项:它会修改 \REGISTRY\MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit 注册表项,以确保恶意软件在每次用户登录时持续运行。

API解析

RAT

远控木马常见的一些恶意行为

模拟鼠标

使用mouse_event函数来模拟鼠标运动和按钮点击。

模拟键盘行为

使用keybd_event函数:

恶意软件在用户不知情的情况下可以操纵用户环境,输入数据或执行操作。

捕获键盘输入

调用GetKeyboardType(0)来确定主键盘的类型。如果返回7,则表明该键盘是“语言”键盘,通常是Unicode键盘。

捕获用户的击键,从而允许恶意软件在不被发现的情况下记录输入。

该函数可以检索指定虚拟键的状态,将 256 个虚拟按键的状态复制到指定的缓冲区。

DarkComet 使用的函数处理每个输入字符 (ch),这些字符可以代表键盘上的按键或特定命令。根据字符的值,恶意软件会应用一系列条件检查和操作。

它利用 VkKeyScanA(ch) 函数将字符转换为相应的虚拟键代码。这一转换使得恶意软件能够精确地识别和模拟键盘操作,从而更有效地记录按键或执行特定命令。

这里VkKeyScanA将字符转换为按键。

使用EnumDisplayDevicesA函数来检索有关连接到系统的显示设备的信息。

DarkComet 尝试访问剪贴板中的数据,重点关注 0xE 格式,该格式用于增强型图元文件 (EMF),即矢量图形格式。通过这样做,RAT 可以窃取或操纵剪贴板数据,例如复制的图像或文本。

0 条评论
某人
表情
可输入 255