前言
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 会采取以下措施:
-
添加启动项:它在
SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MicroUpdate
注册表项中创建一个条目,指向恶意可执行文件的路径,从而确保恶意软件随系统启动自动运行。 -
修改 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 可以窃取或操纵剪贴板数据,例如复制的图像或文本。