| name | pentest-workflow |
| description | 为单目标或少量目标的深入渗透测试提供场景化方法论和判断线索。适合用户提供域名、URL、IP、CIDR、靶机地址、系统入口或已有扫描结果,并要求“测一下”“深入测试”“做黑盒测试”“开始渗透测试”“继续往下验证”等场景。帮助理解当前证据、选择高价值测试方向、串联专项技能、识别误区并判断何时从广度发现转向深入验证。 |
单目标深入渗透测试方法
这份技能提供渗透测试领域知识,不规定固定执行顺序、任务工具或答复形式。结合当前目标、已有证据、授权边界和可用工具,选择最有价值的部分使用。
核心思路
深入测试不是依次运行一组扫描器,而是在以下两种活动之间反复切换:
- 扩大攻击面:寻找尚未覆盖的主机、端口、协议、虚拟主机、路径、接口、参数、身份和信任关系。
- 验证高价值假设:判断一个线索是否真实、是否可达、需要哪些前置条件、能够产生什么安全影响。
每轮测试都应让认知发生变化:发现新入口、排除错误假设、提高或降低某条线索的可信度,或者确认当前路径受什么条件阻塞。工具无输出、模板命中和发现一个版本号本身都不是终点。
从不同入口开始思考
| 当前输入 | 优先建立的认知 |
|---|
| 根域名 | 子域、解析关系、可达服务、第三方边界、不同 Web 应用 |
| 单个 URL | 同主机其他入口、前端路由、接口、参数、认证边界、底层服务 |
| 单个 IP | 开放服务、协议、版本可信度、虚拟主机、非 Web 攻击面 |
| CIDR | 活跃主机、服务聚类、高价值节点、扫描范围和速率 |
| Web 登录入口 | 未认证面、认证流程、角色差异、会话边界、找回密码和接口 |
| 已知版本或 CVE | 产品识别是否可靠、版本是否精确、漏洞前置条件是否满足 |
| 源码或仓库 | 外部入口、信任边界、危险数据流、依赖和部署配置 |
| Windows 或 AD 线索 | 身份、主机、共享、目录服务、证书服务和信任关系 |
| 已有扫描结果 | 结果是否仍有效、哪些是线索、哪些已经复核、覆盖缺口在哪里 |
入口只是起点。单个 URL 也可能需要回到主机和端口发现;单个 IP 上的 HTTP 服务也可能需要虚拟主机和域名信息才能看到真实应用。
管理任务与证据
渗透测试容易在大量线索中失去方向。可以同时维护三类认知:
- 覆盖面:已经看过和还未看过的资产、服务、入口和身份边界。
- 测试假设:当前怀疑什么、依据是什么、下一步怎样用最小成本证实或排除。
- 发现状态:哪些只是线索,哪些已复核,哪些受条件阻塞。
适合按“发现 → 分流 → 验证 → 关联 → 回看覆盖缺口”的节奏推进。阶段任务或清单的价值在于避免遗漏和重复,不在于强迫测试严格串行。
推荐的发现状态
以下状态有助于避免把扫描线索误写成漏洞:
confirmed:已经用可复现、影响受控的方法证明安全影响。
likely:证据较强,但因授权、凭据或环境限制没有完成影响验证。
unconfirmed:只有模板命中、版本匹配、路径发现或其他弱信号。
false-positive:复核后确认不成立。
blocked:因网络、认证、范围、权限或工具问题无法判断。
状态不是固定格式;关键是始终区分“观察到了什么”和“由此证明了什么”。
组织工作区与产物
保留原始结果、清洗后的输入和最终证据,可以减少重复扫描,并让不同专项技能复用彼此成果。当前专项技能使用以下顶层目录:
mkdir -p recon web nuclei sqli exploit code-scan tls ad notes final
常见组织思路:
raw 保留工具原始输出,便于追溯和重新解析。
clean 保存去重、规范化后可交给其他工具的输入。
final 保存已经整理、适合复核或复用的结果。
notes 保存范围、假设、阻塞条件和人工判断。
这是一种便于协作的目录约定,不是所有任务都必须创建的固定结构。小任务可以更简洁,已有项目结构也应优先沿用。
按证据选择专项知识
专项技能提供具体工具和场景细节,需要时按当前证据加载:
| 当前需要解决的问题 | 相关专项技能 |
|---|
| 从域名、IP、CIDR 建立可达资产和服务视图 | asset-discovery |
| 梳理 Web 页面、路径、接口、表单和参数 | web-surface-mapping |
| 使用模板快速寻找值得复核的已知问题 | nuclei-scan |
| 复核参数或请求中的 SQL 注入线索 | sqlmap-validation |
| 判断版本、CVE、公开 PoC 或模块是否真正适配 | exploit-research |
| 从源码、依赖和配置寻找可达安全问题 | code-security-scan |
| 判断证书、协议、套件和 TLS 信任问题 | tls-audit |
| 分析 Windows、SMB、LDAP、Kerberos、WinRM 和 AD | windows-ad-enumeration |
多个方向互相独立时可以并行;当某条线索会显著改变后续方向时,优先验证它再继续扩大扫描。
何时从广度转向深度
出现以下线索时,通常值得暂停泛化扫描并深入:
- 暴露了管理端、调试端、备份文件、对象存储或内部接口。
- 发现带参数的关键业务请求、文件处理入口或身份相关接口。
- 出现稳定的技术栈、精确版本、CVE 或配置特征。
- 发现不同角色、租户、用户对象或权限边界。
- 泄露内部主机名、用户名、路径、密钥标识、源码片段或部署信息。
- Windows 环境出现域、域控、AD CS、共享、LDAP 或 WinRM 线索。
- 不同工具和不同入口给出了相互印证的结果。
深入验证时,先寻找证明假设所需的最小证据。不要因为工具支持更激进选项,就默认扩大影响。
何时回到广度
以下情况说明当前路径可能已接近饱和,适合回看覆盖缺口:
- 线索依赖无法获得的凭据、网络位置或明确未授权动作。
- 版本或模板线索经复核不成立。
- 同一路径多次使用不同方法仍只得到弱信号。
- 当前发现需要另一个主机、身份、接口或服务才能形成完整路径。
- 只围绕最初入口测试,尚未确认同主机其他服务、虚拟主机或子域。
“深入”不等于持续攻击同一个点;有时最有价值的下一步是寻找缺失的前置条件。
常见场景中的高价值判断
Web 场景
- 区分页面路由、后端接口和静态资源;前端可见不代表后端可调用,前端不可见也不代表接口不存在。
- 将参数与业务动作联系起来,优先理解对象标识、角色、租户、文件、跳转、模板和查询条件。
- 登录成功只证明身份有效;权限问题需要比较不同身份或对象边界。
401、403 和后台路径是认证边界线索,不直接构成漏洞。
- JavaScript、错误响应和接口文档常会暴露比目录扫描更有价值的入口。
服务和版本场景
- Banner、Nmap 识别和页面指纹都可能不准确;高价值版本结论应尽量由多个证据印证。
- 公开 PoC 或 Metasploit 模块存在,只说明可能有研究路径,不说明目标满足漏洞条件。
- 判断漏洞适配性时关注产品版本、操作系统、架构、配置、认证要求、网络可达性和缓解措施。
- 非 Web 服务经常需要协议级交互,而不是继续套用 HTTP 工具。
Windows 和 AD 场景
- 先理解身份、主机、域、共享和信任关系,再判断某项权限能否形成攻击路径。
- “可登录”“可读共享”“可查询 LDAP”和“可远程执行”代表完全不同的权限级别。
- AD CS、委派、服务账号和会话信息的价值取决于它们是否能连接到更高权限身份。
- 认证枚举可能触发锁定或审计,应结合授权和账号策略控制强度。
源码和配置场景
- 静态扫描命中需要结合入口可达性、数据流和部署配置判断。
- 密钥样式字符串可能是测试数据;真实密钥也可能因权限、环境或轮换已经失效。
- 依赖 CVE 需要确认实际版本、调用路径和缓解配置。
- 源码发现可以反向指导黑盒验证,黑盒响应也可以帮助判断源码路径是否可达。
TLS 场景
- 分开判断证书身份、证书链、协议版本和密码套件问题。
- TLS 问题通常需要结合实际信任边界判断影响;内部服务、客户端认证和暴露公网的服务风险不同。
- 使用 IP 连接 HTTPS 时注意 SNI 和主机名验证,否则容易得到错误结论。
关联攻击路径
高价值结果往往来自多个普通线索的组合。关联时可以追问:
- 信息泄露是否揭示新的主机、接口、身份或软件版本?
- 一个低权限身份能否访问其他对象、租户、共享或管理接口?
- 暴露服务和精确版本是否满足某个漏洞的真实前置条件?
- 源码、运行时响应和扫描结果是否互相印证?
- 当前发现是完整影响,还是只提供了攻击路径中的一个前置条件?
只把有证据支持的连接视为攻击路径。缺少关键环节时,把它作为待验证假设。
理解失败和无结果
不同的“没有结果”含义不同:
| 现象 | 可能含义 |
|---|
| 命令失败或超时 | 参数、权限、网络、依赖或目标响应存在问题 |
| 目标不可达 | 当前网络位置无法访问,不代表目标不存在或没有漏洞 |
| 扫描成功但无发现 | 输入可能不合适,也可能确实没有对应问题 |
| 被 WAF、速率限制或登录阻断 | 当前观察受到防护或认证边界影响 |
| 上游产物为空 | 可能是上游无发现,也可能是格式或交接问题 |
补测应回答一个明确问题,例如“目标是否可达”“版本是否可信”“参数是否进入后端”,而不是无依据地重复同一命令或盲目提高强度。
覆盖检查
当准备认为当前测试已经足够深入时,可以回看:
- 已确认的可达服务是否都经过合理分流?
- 重要 Web 入口、接口、参数和认证边界是否有明显空白?
- 中高价值线索是否经过复核,或已经明确记录阻塞条件?
- 是否把模板命中、版本匹配、路径发现或登录成功误当成最终结论?
- 是否存在只差一个身份、主机、协议或网络位置的潜在路径?
- 是否因工具失败、权限不足或输入格式问题形成了假阴性?
- 新发现是否提示应回到早期阶段补充攻击面?
这是一组帮助发现盲区的检查问题,不是限制智能体结束任务的硬性门槛。
授权与影响控制
渗透测试中的“能做”与“适合现在做”不同。破坏性操作、持久化、远程命令执行、凭据喷洒、文件上传、创建或删除对象、触发业务动作等验证,需要结合明确授权、影响范围和替代证明方法判断。
优先选择能够证明问题、同时把目标影响降到最低的验证方式。