伪装成10086官网流量的Cobalt Strike木马深度分析
字数 5305
更新时间 2026-05-10 17:43:01
Cobalt Strike 木马伪装 10086 官网流量攻击样本分析与防御教学文档
一、样本概述
本教学基于GR_Specialist_Riyadh_Application.zip恶意压缩包样本,该样本通过多重规避手法(隐藏文件、快捷方式诱导、白加黑 DLL 加载)落地 Cobalt Strike 远控木马,并伪造中国移动 10086 官网流量逃避检测。核心特征包括:内置 IP 字符串作为加密载体、内存混淆反检测、伪造 Referer 头伪装正常访问。
二、样本基本信息
| 属性 | 详情 |
|---|---|
| 压缩包名称 | GR_Specialist_Riyadh_Application.zip |
| 文件大小 | 14719923 字节(约 14MB) |
| 修改时间 | 2026-04-29 14:39:13 |
| MD5 | 9E0B9674F112BEB7CDC0AD5FECA7D5E7 |
| SHA1 | 689B4D9A5B7B0A71BD78B8C95B51EEFFDA561F19 |
| CRC32 | 64F7DD02 |
三、攻击流程与技术细节
(一)阶段1:压缩包隐藏文件规避
- 现象:压缩包大小 14MB,解压后仅 4MB,存在大量隐藏文件(通过复制粘贴生成)。
- 验证方法:开启系统“显示隐藏文件”功能,可看到大量冗余隐藏文件;关闭则仅显示少量可见文件。
(二)阶段2:快捷方式诱导执行
1. 关键文件:CV_Omar_AlFarsi_Government_Relations.pdf.lnk
| 属性 | 详情 |
|---|---|
| 文件大小 | 4012769 字节 |
| 修改时间 | 2025-11-24 18:00:08 |
| MD5 | A5B38D64AEDB3695EFE71917091DB403 |
| SHA1 | DD98C0708E792D7E452AAA1725CB68C39FA230AF |
| CRC32 | D3E85FE6 |
- 执行逻辑:快捷方式指向系统命令
C:\Windows\System32\rundll32.exe url.dll,FileProtocolHandler ".\__init\msedge.exe",诱导用户点击后加载__init目录下的msedge.exe。
(三)阶段3:白加黑 DLL 加载(核心规避手法)
1. 伪装正常的 msedge.exe
- 真实身份:
__init\msedge.exe实为 2.7.0.0 版本 openvpn.exe(带正常数字签名),用于绕过杀毒软件对“未知可执行文件”的检测。 - 文件信息:
- 大小:929352 字节
- 版本:2.7_git.0
- 修改时间:2024-06-15 07:23:14
- MD5:673ECDC537C00AF133BB9689F09FB412
2. 恶意 DLL:libcrypto-3-x64.dll
-
文件信息:
- 路径:
__init\libcrypto-3-x64.dll - 大小:1909320 字节
- 版本:2.7_git.0
- 修改时间:2026-04-16 20:31:28
- MD5:109887D26F3AEF625300E537D2F41237
- 路径:
-
恶意特征:
- 仅
CRYPTO_get_ex_new_index函数有实际代码,其余导出函数为空(规避 DLL 导出表检测); - 内置海量 IP 地址字符串(作为加密载荷载体);
- 通过
GetProcAddress动态获取 API 地址(规避静态导入表检测)。
- 仅
3. 正常 DLL(辅助文件)
libpkcs11-helper-1.dll(MD5:F10226993F09C1E8F78E1FBC8E674802)libssl-3-x64.dll(MD5:62E05538396D1403D1B3B02CD75767CC)- 作用:配合
msedge.exe(openvpn.exe)正常运行,降低用户怀疑。
(四)阶段4:解码与解密恶意载荷
1. IP 字符串转十六进制载荷
- 样本调用
RtlIpv4StringToAddressA函数,将内置 IP 地址字符串转换为十六进制载荷,转换后大小:0x12C04 * 4 = 0x4B010字节。
2. 异或解密 shellcode
- 对转换后的载荷执行异或算法解密,得到 Cobalt Strike Beacon shellcode。
(五)阶段5:内存混淆反检测
- 操作:
- 调用
VirtualAllocExNuma申请内存; - 调用
SystemFunction036(RtlRandomEx)填充随机数; - 将解密后的 shellcode 拷贝至随机内存,干扰内存特征检测。
- 调用
(六)阶段6:shellcode 执行与 C2 通信
1. 运行 shellcode
- 调用
VirtualProtect修改内存属性为可执行,再通过EnumCalendarInfoA触发 shellcode 执行。
2. Cobalt Strike Beacon 配置(核心 C2 信息)
通过 CobaltStrikeParser 工具提取配置,关键信息如下:
| 配置项 | 详情 |
|---|---|
| Beacon 类型 | HTTPS |
| C2 服务器 | 111.229.112.67:8443(中国-上海市,腾讯云厂商) |
| 伪装流量 | Referer 头:https://10086.cn/、https://shop.10086.cn/mall_100_100.html |
| 休眠时间 | 30000 ms(30 秒) |
| 抖动率 | 37% |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4044.62 Safari/537.36 |
| 水印(Watermark) | 666666666(Cobalt Strike 破解版常用标识) |
四、关键 IOC(入侵指标)
| 类型 | 值 |
|---|---|
| LNK 文件 MD5 | A5B38D64AEDB3695EFE71917091DB403(CV_Omar_AlFarsi_Government_Relations.pdf.lnk) |
| 恶意 DLL MD5 | 109887D26F3AEF625300E537D2F41237(libcrypto-3-x64.dll) |
| 正常 exe MD5 | 673ECDC537C00AF133BB9689F09FB412(msedge.exe/openvpn.exe) |
| C2 地址 | 111.229.112.67:8443 |
五、防御与检测建议
1. 静态检测
- 检查压缩包内是否存在大量隐藏文件(开启“显示隐藏文件”验证);
- 校验
msedge.exe的数字签名真实性(虽为 openvpn.exe 签名,但路径异常); - 扫描
libcrypto-3-x64.dll的导出表(仅CRYPTO_get_ex_new_index有代码)。
2. 动态检测
- 监控
rundll32.exe加载非系统目录的msedge.exe; - 检测
libcrypto-3-x64.dll的动态 API 调用(GetProcAddress批量获取函数); - 拦截 Referer 头包含
10086.cn的可疑 HTTPS 请求(结合 C2 地址 111.229.112.67:8443)。
3. 内存检测
- 排查
VirtualAllocExNuma申请的内存中是否存在随机数填充 + shellcode 特征; - 监控
EnumCalendarInfoA等非常规函数的回调执行(可能为 shellcode 入口)。
4. 网络防御
- 封禁 IOC 中的 C2 地址(111.229.112.67:8443);
- 对 Referer 头为
10086.cn的异常流量进行深度包检测(DPI)。
六、总结
该样本通过“隐藏文件→快捷方式诱导→白加黑 DLL→IP 字符串加密→内存混淆→伪装 10086 流量”的完整链条实现攻击,核心规避点在于利用合法程序(openvpn.exe)签名、DLL 导出表空函数、IP 字符串作为加密载体。防御需结合静态特征、动态行为、内存特征、网络流量多维度检测。
相似文章
相似文章