.NET恶意软件Dark Crystal RAT的详细样本分析

对.NET恶意软件Dcrat样本的一次粗浅分析,手动解码三阶段恶意软件,提取C2服务器和一些恶意行为分析。

前言

Dark Crystal RAT (Dcrat)是一种典型的RAT恶意软件,可以让攻击者从远程控制被感染的计算机,通常用于窃取各种类型的敏感信息,例如剪贴板内容和应用程序中的个人登录详细信息。

第一阶段

DIE查看

image.png

基于.NET的恶意软件,使用dnSpy进行分析;样本还有混淆保护。

同时查看信息熵:

image.png

很高的熵,这表明了Dcrat可能载入了另一个有效负荷。

dnSpy分析

使用dnSpy进行分析,跳转到入口点:

image.png

恶意软件创建了一个极大的数组unit,一直向下翻,发现解密:

image.png

经过解密之后,以名称koi加载到内存中。

查看解密代码Decrypt

image.png

根据LoadModule函数,koi是以模块的形式载入的,那我们就有了一个办法来提取到这一块内存。

模块断点提取koi

首先创建模块断点:

image.png

使用俩个通配符来创建断点,这将会使恶意软件在加载任何模块时发生中断。

image.png

启动程序,之后程序会断下来,最先加载的模块是mscorlib.dll,点击继续,程序会接着断在样本自身。这里再接着运行一次就能发现koi加载了:

image.png

在顶部调式的窗口点击模块:

image.png

保存为koi.exe

解密后提取

另一种提取第二阶段的办法,直接在Decrypt后面下断点,将解密后的array2复制出来保存为exe文件。

image.png

0x4D0x5A。PE文件标志

第二阶段 koi.exe

DIE查看

image.png

同样是一个基于.NET的32位恶意软件,加了混淆保护。

![image.png]https://cdn-yg-zzbm.yun.qianxin.com/attack-forum/2024/08/attach-7a74b7559da15a64ba401b489aa7f8da05208532.png)

观察信息熵,似乎没有加壳或者其它混淆。

dnSpy分析

image.png

同上一个文件一样,koi的初始名字为rewrwr,右键发现没有入口点。

在Form1中发现大量的类似base64编码的文本数据:

image.png

尝试解密:

image.png

推测是经过了其它的混淆。

在下面找到了混淆的逻辑:

image.png

通过一个for循环,每次取第一个字母。验证一下:

image.png

MZ,PE文件标识。依据该混淆逻辑编写一个python脚本:

image.png

将提取出的数据保存为output.bin

第三阶段

DIE查看

image.png

依旧是基于.NET的32位程序,没有混淆。

查看信息熵:

image.png

熵表现也很正常,即没有可以隐藏大型负载的高平坦曲线。

dnSpy分析

image.png

DIE显示没有ConfuserEx,但实际情况还是很难分析。尝试用NETRecatorSlayer反混淆了一下。

image.png

C2域名提取

在Class55中发现了一个有趣的字符串:

image.png

看起来像 base64 编码 + gzip(H4sIAA 是 base64 编码的 gzip 标头),尝试用cyberchef解密一下:

image.png

结果看起来还需要在逆转一下和base64一次。

image.png

得到了一个字典 和 互斥锁 Wzjn9oCrsWNteRRGsQXn 以及一些基本配置。

但是似乎还是没有什么用,往下继续,发现第二个字符串:

image.png

按照刚刚的步骤解码:

image.png

得到一串乱码,回去分析代码:

i59,base64编码:

image.png

smethod_3, Reverse:

image.png

i6B,根据字典替换字符:

image.png

smethod_4 —> smethod_2, base64编码+gunzip:

image.png

混淆的思路就出来了,对刚刚得到的SCRT字典做一点处理:

image.png

用第一处字符串解密得到的SCRT字典对第二个字符串base64+gunzip后的字符串进行字符替换,编写一个python脚本进行处理:

image.png

!image.png](https://cdn-yg-zzbm.yun.qianxin.com/attack-forum/2024/08/attach-64541fa2ce4e6644af351b256859975948d97091.png)

得到C2服务器的地址

行为分析

一些Dcrat恶意软件常见的恶意行为,窃取信息的操作、键盘记录器、从远程URL下载文件…

窃取信息

Dcrat会从剪贴板中窃取信息:

image.png

尝试从剪贴板读取 Unicode 文本并存储在 @class.string_0

获取屏幕截图:

image.png

uKI方法获取屏幕截图,包括宽和高。

image.png

image.png

Dcrat不断获取屏幕截图,将屏幕截图转换成字节数组JPEG的形式再上传到C2服务器。

窃取Steam凭证:

image.png

通过检索注册表项的操作获取Steam路径和登录用户,之后解析loginusers.vdf文件以获取Steam ID和Steam游戏平台中的游戏名称列表。

窃取纸飞机凭证:

image.png

窃取Discord文件:

image.png

持久性操作

Dcrat使用计划任务和修改注册表来实现持久性。

通过schtasks.exe创建计划任务

image.png

第一个任务

  • /tn 指定任务名称,通常是该恶意程序本身
  • /sc MINUTE /mo 创建一个每隔几分钟就执行一次的任务(5,15)
  • /tr 执行的程序路径
  • /f 强制创建

第二个任务创建了一个在用户登录时执行的计划任务,添加了个新参数-以最高权限执行。

第三个任务同第一个,但是以最高权限执行。

通过计划任务(定时执行、登录执行)可以确保恶意程序在计算机上的持久性。

修改注册表键

image.png

修改 Run 子键,Dcrat尝试在每个节点下的 "Software\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run" 都添加一个新的键值对,值为Dcrat恶意程序的路径。该注册表位置用于存放要在用户登录时自动启动的程序。

修改 Winlogon 子键,Dcrat尝试在 "Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon" 子键中修改 Shell 键。这个键通常指向系统外壳程序(如 explorer.exe),代码将指定文件路径追加到 Shell 键的值中。通过修改 Shell 键,恶意软件可以在用户登录后立即启动。

  • 发表于 2024-08-21 09:35:54
  • 阅读 ( 19634 )
  • 分类:漏洞分析

0 条评论

Sciurdae
Sciurdae

16 篇文章

站长统计