国护红队新活?伪装成微信的CS 图像隐写术loader分析
C#可执行文件,用微信loga伪装一下:
MainAPP方法里面隐藏了一个B64编码的PS1脚本:
1 |
|
解码之后脚本:
1 |
|
从 http://121[.]37[.]221[.]98:11111/121.png
下载图片。使用像素隐写术提取隐藏数据,每像素存储半个字节,通过 B
和 G
通道的低4位组合)。
- 分辨率:1920×2 像素(仅读取前两行)
- 总像素:3840 像素
- 每个像素提取 1 字节 → 共 3840 字节有效载荷
然后反射调用System.Management.Automation.AmsiUtils
绕过AMSI保护。最后再执行(PowerShell.AddScript
)提取的shellcode。
在绕过AMSI的过程中,还用了强制amsiContext
和amsiSession
为NULL的方法。
下面是去混淆之后的完整脚本:
1 |
|
下载图像之后,二阶段shellcode脚本特征,下载beacon,Base64 编码 → XOR 解密 → 再次 Base64 解码。
提取的CS配置文件:
字段 | 值 | 说明 |
---|---|---|
Version | 4.6 |
Cobalt Strike 版本号 |
Socket Port | 11443 |
C2 通信端口(HTTPS) |
Interval | 60 秒 |
心跳间隔,每 60 秒回连一次 |
URL | https://121.37.221.98/load |
C2 服务器主地址 |
User-Agent | Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MDDRJS) |
伪装成旧版 IE 浏览器 |
Beacon Type | HTTPS |
使用加密 HTTPS 通道 |
MaxGetSize | 1048576 |
最大 GET 请求大小(1MB) |
字段 | 值 | 说明 |
---|---|---|
Encryption Key | MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDf+Q1bBhu6OnW+G1vfTY1dZ+gn5s27t0zMyJ2Xg0LO2FGXL1ghBbss97vsHYKdIV+O+OHcZCfQ8znW4GFGiYmcggQSnli2qaCD5pghicSg7SHfYSZc7PD8qBUwL0SSwAEJCgUDwvAg+uY+6FWcCatimdxG9XymEuaF7lG7Um+bjwIDAQAB |
RSA 公钥,用于加密通信 |
Watermark | 987654321 |
Cobalt Strike 授权水印,可识别团队服务器 |
字段 | 值 | 说明 |
---|---|---|
HttpPostUri | /submit.php |
数据回传路径(POST 请求) |
HTTPGetClient | base64 |
GET 请求参数使用 base64 编码 |
HTTPPostClient | print, parameter "id", header Content-Type: application/octet-stream |
POST 数据通过 id 参数发送,伪装成二进制流 |
HTTPGet_Verb | GET |
任务获取方式 |
HTTPPost_Verb | POST |
数据回传方式 |
Proxy_Behavior | Use IE settings |
使用系统 IE 代理设置 |
字段 | 值 | 说明 |
---|---|---|
spawnto_x64 | %windir%\\sysnative\\rundll32.exe |
64 位注入目标进程 |
spawnto_x86 | %windir%\\syswow64\\rundll32.exe |
32 位注入目标进程 |
ProcInject_Execute | CreateThread, SetThreadContext, CreateRemoteThread, RtlCreateUserThread |
支持的注入技术 |
ProcInject_AllocationMethod | VirtualAllocEx |
内存分配方式 |
国护红队新活?伪装成微信的CS 图像隐写术loader分析
http://example.com/2025/07/24/国护红队新活?伪装成微信的CS-图像隐写术loader分析/