一、前情提要
PX0,公众号:顺丰安全应急响应中心你在“漫游”看世界,他们却在小窗口里窥视着你【上】
加载和调用过程非常简单,攻击者擅长使用dll反射加载,这也与以往的Dragon Breath情报匹配;
二、样本分析
1、持久化&启动
安装过程中调用Setup.dll中的func函数,运行后将自身写入注册表持久化并指定RunWebHelper加载函数;
2、资源加载
从资源点下载k3.bin文件并写入dfCgA71dgg.log;
申请内存并加载log文件内容,通过EnumChildWindows回调触发运行;
3、反射加载
k3.bin内部实际是反射加载器,首先解密匹配字节序列0xBF, 0xAF, 0xBF, 0xAF 后将shellcode指针移动到匹配位置的下一个字节后(i + 4)取值,并跳出循环;
通过PEB获取第三个模块即kernel32模块基址(属于常见的内存免杀技术,会出现在一些shellcode、syscall等项目中,实际相当于替换了LoadLibrary过程,对函数Hook无效)
模糊匹配字符GetP和rocA从kernel32中获取GetProcAddress函数地址;
动态解析并获取内存申请和保护相关函数,开始对内存进行一系列修补和验证;
通过判断payload是否包含 MZ 和 PE 标志等,进行一系列格式验证和内存对齐;
将payload中的PE头和节表复制到已分配的内存中,重建PE文件的内存布局。
修复重定位表 ,将获取到的导入函数地址填充到导入表中,修复导入表;
通过以上步骤对ServerDll.dll进行修补完成反射,调用F*ck函数运行后门代码;
恶意代码全部存放在payload函数(DllMain同样会跳到payload函数)
4、后门分析
payload内容即Dragon Breath后门代码,也是类似Gh0st通过加载插件的方式扩展能力,由于C2服务器已经失联,很多功能无法分析;
有特点的部分是,Dragon Breath后门会根据主机名创建注册表项,用于存储和读写关键信息;
动态加载模块和api,读取Enable键值判断后门是否在运行,运行则退出;
Time键值,不存在则根据系统时间创建注册表项并写入当前时间,记录后门启动时间;
CopyC键值,若存在则进行base64和异或解密,不存在则使用默认C2地址;
ARPD键值,用于存储和加载插件相关的信息(isARDll | PluginMe | getDllName)
Remark键值,用于存储一些基本的操作系统和环境信息例如版本、权限信息;
ZU键值,用于获取Chrome MetaMask区块链钱包(小狐狸钱包)插件信息;
完成基本的环境和信息校验后,建立网络连接与C2服务器通信;
在连接过程中会不断进行时间校验,循环不断尝试建立网络连接并处理C2通信;
当后门成功上线后会对一些杀软进程和QQ、百度网盘进行扫描,下发对应的插件进行免杀或信息窃取;
0:关机/重启/注销
1:设置全局标识
2:设置注册表项 Remark
3:设置注册表项 ZU
4:清除事件日志
5:获取MetaMask区块链钱包扩展的状态
6:下载并执行文件
8:使用 ShellExecute 执行命令,可见窗口
9:使用 ShellExecute 执行命令,隐藏窗口
112:获取剪贴板内容
113:设置剪贴板内容
125:在隐藏的 cmd 窗口中执行命令
126:将缓冲区写入文件并执行它
128:设置注册表项 CopyC
35-37,101-111, 127:检查导出 PluginMe、isARDL、getDllName、isCSDll等
三、Yara检测
Elastic Security编写的DragonBreath后门规则
rule Windows_Trojan_DragonBreath_b27bc56b {
meta:
author = "Elastic Security"
id = "b27bc56b-41a2-4b3d-bff4-a14b90debe08"
fingerprint = "4bc82f64191cf907d7ecf7da5453258c9be60e5dbaff770ebc22d9629bcbc7e2"
creation_date = "2024-06-05"
last_modified = "2024-06-12"
threat_name = "Windows.Trojan.DragonBreath"
reference_sample = "45023fd0e694d66c284dfe17f78c624fd7e246a6c36860a0d892d232a30949be"
severity = 100
arch_context = "x86"
scan_context = "file, memory"
license = "Elastic License v2"
os = "windows"
strings:
{ 50 6C 75 67 69 6E 4D 65 } =
{ 69 73 41 52 44 6C 6C } =
{ 25 64 2D 25 64 2D 25 64 20 25 64 3A 25 64 } =
condition:
all of them
}
四、组织归因
通过微步情报关联分析,这批样本也是从8月左右开始活动,虽然Dragon Breath此版本免杀能力对比银狐较弱,但手法和资源存在关联性,不排除后期的快速升级迭代,所以需要进一步关注他们的活动范围;
五、情报分析
DragonBreath后门拓线情报,与上篇文章中的银狐情报有部分交叉;
https://www.virustotal.com/graph/g5b02da5b1f1745d390956f6c622eb6aee69e8f2917be4d91b54669e77c3f8f45
六、IOC
103.96.140.53:8083
6013ccd89a4b11d7d2ea16953f549585
35a8aece69cc432d192932fc90f04451
5fea854b91c7c8fa7cd5132970776965
84369a732feb2b0012484074183ae2ad
https://www.nfozzyf0[.]icu/53/k3.bin?v919