可以从MalwareBazaar | SHA256 08d9d5c3b0a134a56085e058b5078dbf68de75dc98409dff52c7dd5075598c3a (DCRat) (abuse.ch)收集初始样本。
SHA256(加载程序):08d9d5c3b0a134a56085e058b5078dbf68de75dc98409dff52c7dd5075598c3a
从初始样本中倾倒另一个样本。
SHA256 (DCRat):5bbbe8d556002a10bd289a52c5d38875123531eb59858b142aec9529cfef947d
-
恶意软件开发(更新到了155节)
-
先看样本
初始示例是 .NET 文件。PE 部分是合法的,尺寸似乎并不罕见。字符串具有一些关键的字符串,这些字符串指示一些重要的功能,但是,我们将从第二个(转储)示例中查看功能。唯一可疑的是只有一个导入的原生 API。这可能是因为恶意软件动态解析 API。
我们将使用dnSpy_x86工具检查恶意软件。该恶意软件的第一印象是它没有加密或混淆,因为功能是人类可读的。另一件事是有一个切入点。实际上,只有一个名为 main() 的方法,它有一个名称来指示其用途。
在 main() 中,我们遇到了一个包含大量字节的数组初始化。
在方法的末尾,有一行加载数组并调用(执行)它。此数组是我们正在寻找的实际 DCRat。若要获取它的转储,请运行调试器并完成数组初始化。然后,您将看到数组变量已初始化,数组的前两个字节为“4D5A”。这意味着数组包含字节,即 PE 文件的开头,这可能始终值得检查。
把它转储掉。当您查看新的转储时,您会看到它也是 .NET 文件。作为初始文件,PE 部分和字符串指示文件已解压缩。但是,当您在 dnSpy 中查看该文件时,您会看到它被混淆了。为了获得更好的视图,请通过将恶意软件拖到de4dot.exe上来进行反混淆。
检查 DCRat 功能
可以看到有很多命名空间,几乎所有的命名空间都有一个类。这可能是因为作者想让分析更难。
恶意软件在 E42 中包含其所有功能。第26类。这些功能由类分隔,因此您需要检查类以查看它们的作用。
信息收集
恶意软件从受害者的机器中窃取信息并将其发送到 C2。
驾驶信息
DCRat 获取驱动器信息并将其存储在字典 (ns38.rzR.smethod_0) 中。最初,它获取所有驱动程序并将其存储在 drives[] 数组中。它获取卷标(如果存在)、驱动器类型(可移动驱动器、本地磁盘或网络驱动器)、驱动器格式和大小。
然后,字典中的信息使用 Base64 加密,并在 ns45.wQX.ej1 中反转。每个数据用“&”分隔,并写在“=”符号之后。您也可以在合法 URL 上看到此模式。
然后,恶意软件执行 downloadString() 方法,并在收集的信息中附加硬编码地址。您还将看到有硬编码的 Content-Type 和 User-Agent。如下图所示,它接受所有类型的文件。
显示器、鼠标和键盘日志记录
恶意软件能够记录显示器规格(如宽度和高度)、鼠标位置 (ns15.F2U) 和键盘使用 (ns30.第25类)。此外,它可以在屏幕上移动光标。
进程记录
恶意软件获取有关进程的信息,例如进程名称、窗口标题和 PID,并将其发送到 C2。
用户信息
恶意软件获取用户信息,例如 PC 名称、用户名、Windows、CPU 名称、CPU 描述、CPU 内核、CPU 逻辑处理器、GPU 名称、GPU 视频内存、GPU 视频模式描述、主板描述、主板制造商、主板名称、主板 ID、BIOS 名称、BIOS 版本、防病毒软件、防火墙、RAM、LAN IP、IP、.NET 框架信息、城市、国家/地区代码、位置、监视器以及保存这些信息的时间。
为了获取受害者的 IP,恶意软件使用一个网站,但它使用 Base64 “aHR0cHM6Ly9pcGluZm8uaW8vanNvbg==” 加密。解密后,我们看到它是一个合法的域(https://ipinfo.io/json),它以 json 格式打印出受害者的 IP 和地理位置。
截屏
恶意软件可以截取屏幕截图。
下载文件
在 ns21 内部。Class13,根据字典中的信息下载文件。由于文件路径包括用户名和根文件夹(通常是 System32 文件夹),因此它从环境变量中获取这些信息。该恶意软件还会获取文件名、文件大小和上次更新时间。
它还获取.zip文件。(ns19.iBG)
恶意软件复制剪贴板 (ns27.NZE)。
它会在 %TEMP% 文件夹下创建一个随机命名的文件名.exe扩展名。然后,它将文件下载到其中。
在这里,恶意软件最初创建 BAT 文件,然后初始化一个包含一堆代码的字符串。然后,使用 File.WriteAllText() 将代码写入 BAT 文件并启动 BAT 文件。在开始之前,设置了一些功能。首先,该文件是隐藏的,因此受害者无法看到恶意软件正在运行,因为它运行后台。其次,它获取当前角色 administrator,以便文件将以管理员身份运行。第三,它允许文件执行 shell 命令,以便可以执行它拥有的命令。
正如我们将在持久性一章中看到的那样,此代码将启动示例。新示例的名称(与此示例相同,但名称不同)是在当前正在运行的进程中选择的。此代码将是为恶意软件提供持久性的开始。
C2 地址
通过运行恶意软件,我们可以观察到恶意软件尝试与单个 C2 地址连接。还可以看出,连接有很多参数。
C2 地址:cm56126.tw1.ru/
C2 的病毒总结果:13/91
Virustotal 结果低的原因可能是恶意软件是新的(对于分析日期)。如您所见,C2 仍然可以访问(状态代码为 200)。
Deleting Footprints & Persistency
在 get_persistency_value() 方法中,它通过下载从注册表项 HKEY_CURRENT_USER\Software\{SHA1 哈希值}、%TEMP% 文件夹、硬编码字典或 C2 获取以前提供的持久性值。该值在返回之前还经过 SHA1 哈希处理并解密 Base64。在 save_mutex() 方法中,它使用相同的配置再次创建已删除的注册表项。
在 delete_persistency() 方法中,有两个方法。其中之一删除计划任务。
另一个删除注册表项中的相关值 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 和 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
在同一类中,还有创建计划程序和创建注册表项的方法。每当启动计算机时,这些注册表项都会执行其中的值。因此,每当受害者启动计算机时,恶意软件将始终被执行。恶意软件使用多种持久性技术的原因是,如果检测到其中一种技术或不起作用,其他技术将保留。
schtasks.exe 运行时带有一些标志:
-
/tn →标识任务名称
-
/sc → 指定计划频率
-
/mo → 指定时间量
-
/tr → 指定将运行的任务及其路径
-
/f →强制创建任务,并在运行相同任务时禁止显示警告
-
/rl →指定权限
运行恶意软件后,可以看出恶意软件使用当前正在运行的文件名创建一个子进程,如果您检查该进程,您将看到进程随机位于 C: 驱动器内。当我多次运行恶意软件时,子进程位于 C:Python310、C:WindowsUsersPublicPublic Videos、C:ToolsdnSpybin 文件夹。新文件与其父进程相同。子进程的名称是随机选择的,如图 16 所示。但是,子进程的名称是在系统可执行文件中选择的,因为所有情况都为子进程提供位于不相关位置的系统可执行文件名称。这是因为恶意软件希望受害者和恶意软件分析师不会检测到自己。恶意软件还会跟踪所有子进程的位置,包括以前执行的子进程。
命令
该恶意软件执行重新启动或关闭计算机等命令。
关闭命令有一些参数:
-
/r →重新启动
-
/s →关机
-
/t →指定等待到关闭的时间
恶意软件执行 %TEMP% 文件夹中的文件。它支持 C#、VB、VBS、BAT 和 Powershell 文件。我们已经看到在 %TEMP% 文件夹中创建了一个 BAT 文件。这可能与此方法一起运行。下面是它如何运行 BAT 文件然后将其删除的示例。(NS25.第18类)
DOS攻击
恶意软件显然能够从受害者的计算机进行DOS攻击。创建了三个线程,每个线程的工作方式不同。第一个发送带有客户端对象的 TCP 请求。第二个使用套接字发送 UDP 请求,最后一个使用套接字发送 TCP 请求。For 循环使它们多次发送请求,以便用大量请求轰炸目标。(NS29.第23类)
删除所有文件和文件夹
恶意软件可以删除 C:Windows 文件夹和每个驱动程序的根文件夹中的所有文件和文件夹。它可以递归遍历所有文件夹并删除其中的文件。如果存在无法删除的文件,例如系统文件,恶意软件会将其隐藏起来,以便受害者看不到任何文件或文件夹。
YARA
rule dcrat_detector {
meta:
author = "psy_maestro"
date = "5/Feb/2024"
description = "Detects unpacked DCRat"
sha256 = "5bbbe8d556002a10bd289a52c5d38875123531eb59858b142aec9529cfef947d"
strings:
$cmd1 = "del /a /q /f "" ascii wide
$cmd2 = "notepad.exe & pause" ascii wide
$cmd3 = "schtasks.exe /create /tn "" ascii wide
$cmd4 = "" /sc MINUTE /mo" ascii wide
$cmd5 = "" /sc ONLOGON /tr "'" ascii wide
$cmd6 = "SELECT * FROM Win32_PnPEntity WHERE (PNPClass = 'Image' OR PNPClass = 'Camera')" ascii wide
$str1 = "DCRat.Code" ascii wide
$str2 = "DCRat-Log#" ascii wide
$str3 = "-P----------l---u-g----i--n" ascii wide
$str4 = "(\w\W.+)Telegram.exe" ascii wide
$str5 = "HKEY_CLASSES_ROOT\tdesktop.tg\shell\open\command" ascii wide
$str6 = "\discord\Local Storage\leveldb\" ascii wide
$str7 = "/config/loginusers.vdf" ascii wide
$str8 = "/steamapps/common" ascii wide
condition:
uint16(0) == 0x5A4D and //looks for MZ at 0x00
uint32(uint32(0x3C)) == 0x00004550 and // PE at 0x3C
all of them
}
IOC
C2:cm56126.tw1.ru/
-
-
-
windows网络安全防火墙与虚拟网卡(更新完成)
-
windows文件过滤(更新完成)
-
USB过滤(更新完成)
-
游戏安全(更新中)
-
ios逆向
-
windbg
-
还有很多免费教程(限学员)
-
更多详细内容添加作者微信
-
原文始发于微信公众号(安全狗的自我修养):DCRat 恶意软件分析报告