渗透测试完整实战指南:从信息收集到内网穿透,手把手走完攻击全链
导语
很多网安新人练了半年靶场、刷了无数CTF题,但一遇到真实渗透项目就懵了——不知道从哪下手、不知道下一步该干什么、不知道什么叫“完整的攻击链”。
这就是典型的缺乏流程感。
渗透测试不是乱扫一气、碰运气撞漏洞。它是一套有章法、可复现、分阶段的系统工程。你按照标准流程走,每一步都有明确的目标和产出物,绝对不会迷茫。
这篇文章,我带你从头到尾走一遍渗透测试的完整实战流程——从拿到授权到输出报告,每个阶段干什么、用什么工具、注意什么坑,全部给你讲透。
干干货,没废话。建议收藏,实战前翻一遍。
一、渗透测试的本质与核心原则
渗透测试(Penetration Testing),说白了就是在获得授权的前提下,模拟真实黑客的思维路径和技术手段,对目标系统进行全方位的安全评估。
它和自动化扫描器的区别在于:扫描器找的是“已知漏洞”,渗透测试找的是“一切可能被利用的弱点” ——包括逻辑缺陷、业务流程漏洞、配置失误,甚至人的疏忽。
做渗透测试,四条红线必须刻在脑子里:
-
授权合法:没有书面授权,就是在犯罪。拿到授权书再动手,这是铁律。
-
最小破坏:不动生产数据、不搞DDoS、不删库跑路。
-
全面覆盖:Web、API、移动端、基础设施、云环境,一个都不能少。
-
结果导向:不光要找出漏洞,更要给出可落地的修复方案。
二、PTES七阶段标准流程(行业通行框架)
行业内最通用的渗透测试标准是 PTES(Penetration Testing Execution Standard) ,它将整个渗透测试划分为七个阶段:
前期交互 → 情报收集 → 威胁建模 → 漏洞分析 → 漏洞利用 → 后渗透攻击 → 报告编写
下面一个一个拆解。
三、阶段一:前期交互(Pre-engagement Interactions)
目标:把“怎么测、测什么、测到哪”全部白纸黑字定下来。
这一步是最容易翻车的环节。很多新手一上来就急着动手,结果测到一半客户说“这个系统不在范围内”,或者不小心把生产数据搞崩了——轻则赔钱,重则吃官司。
必须确认的内容:
| 确认事项 | 具体内容 |
|---|---|
| 测试范围 | 哪些域名、哪些IP段、哪些应用、哪些API |
| 测试时间 | 什么时间段可以测、什么时候必须停 |
| 测试账号 | 是否提供测试账号(灰盒/白盒)还是完全黑盒 |
| 禁止操作 | 不能删数据、不能DDoS、不能暴力破解生产账号 |
| 紧急联系人 | 出问题了找谁、怎么联系 |
核心产出物:《渗透测试授权书》+《测试范围说明书》。
⚠️ 血泪教训:曾经有人没确认范围,扫了客户合作伙伴的IP段,被对方法务找上门——授权书上没写那个IP,就是非法入侵。
四、阶段二:情报收集(Intelligence Gathering)
目标:把目标的所有公开信息挖干净,画出“攻击面地图”。
渗透测试界有句老话:“渗透测试的本质就是信息收集” 。你掌握的信息越多,攻击路径就越多。这个阶段拼的是耐心和细致。
4.1 域名与子域名收集
子域名往往是突破口——很多企业主站防护严密,但测试环境、老系统、内部工具的子域名可能防护薄弱。
工具:
-
主动爆破:
OneForAll、dnsenum、Sublist3r、Gobuster(DNS模式) -
被动收集:
VirusTotal、Crt.sh(证书透明度)、SecurityTrails -
搜索引擎:
site:example.com在Google/Bing中搜子域名
检查DNS域传送漏洞(AXFR) :
bash
# 检测是否存在域传送漏洞 dig @<dns_server> axfr <domain_name>[reference:22] nmap --script dns-zone-transfer -p 53 <dns_server>[reference:23]
如果成功,你就拿到了整个域的所有DNS记录——相当于目标把家底全亮给你了。
4.2 IP地址与CDN绕过
判断是否存在CDN:用ping或17CE、ipip.net从多地ping目标域名。如果全国各地返回的IP不一样——有CDN,真实IP被藏起来了。
绕过CDN找真实IP的方法:
-
查历史DNS解析记录(
ViewDNS.info、SecurityTrails) -
查子域名的解析IP(子域名可能没走CDN)
-
查邮件服务器的MX记录指向的IP
WHOIS查询:获取域名注册人、注册商、联系邮箱、DNS服务器。这些信息可用于后续的社会工程学或密码爆破(用注册人姓名构造字典)。
备案号查询:通过ICP备案查网站所属主体。知道是哪个公司,就能进一步查该公司的其他资产。
4.3 端口与服务扫描
用Nmap扫目标IP的开放端口和运行服务:
bash
# SYN半开扫描(隐蔽、速度快) nmap -sS -p- -T4 <target_ip>[reference:32] # 全端口+服务版本识别 nmap -sV -sC -O -p- <target_ip>
重点关注端口:22(SSH)、80/443(Web)、445(SMB)、3306(MySQL)、3389(RDP)、8080(代理/Web)、27017(MongoDB)。
4.4 指纹识别与源码泄露
指纹识别:用Wappalyzer浏览器插件或WhatWeb命令行工具,识别目标使用的CMS、框架、中间件版本。知道版本号就能针对性找漏洞。
源码/敏感信息泄露:
-
GitHub搜关键词:site:github.com target.com password、target.com API_KEY -
JSFinder从JavaScript文件中提取接口路径和子域名 -
目录扫描重点:
/admin/、/backup/、/config/、/.git/、/.env/、/swagger-ui/
实战案例:某红队在目标登录页按F12,在Webpack打包的前端代码注释中发现了一段硬编码的账号密码——一个被99%的安全审计忽略的前端硬编码漏洞,最终导致了核心业务系统的全面沦陷。
4.5 情报收集阶段产出物
-
目标的所有存活子域名列表
-
开放端口与服务清单(含版本号)
-
技术栈信息(CMS/框架/中间件版本)
-
敏感路径与泄露的源码/配置文件
-
员工邮箱格式、社交账号信息
五、阶段三:威胁建模(Threat Modeling)
目标:基于收集到的信息,识别高价值的攻击面,规划攻击路径。
不是所有漏洞都值得花时间去打。你要判断:哪个入口最容易突破?突破后能拿到什么?
用STRIDE模型做威胁分析:
| 威胁类型 | 说明 | 测试重点 |
|---|---|---|
| Spoofing(伪装) | 冒充用户/系统 | 身份认证绕过、JWT篡改 |
| Tampering(篡改) | 修改数据 | 参数污染、水平越权 |
| Repudiation(抵赖) | 否认操作 | 日志审计缺失 |
| Information Disclosure(信息泄露) | 敏感数据暴露 | 调试信息、备份文件 |
| DoS(拒绝服务) | 使服务不可用 | 慢速攻击、资源耗尽 |
| Elevation of Privilege(权限提升) | 获得更高权限 | 垂直越权、提权漏洞 |
输出:《攻击面地图》——标注高风险模块,比如支付系统、管理后台、文件上传点、API接口。
六、阶段四:漏洞分析(Vulnerability Analysis)
目标:用工具+手工结合的方式,系统化地验证每一个潜在漏洞。
6.1 自动化扫描(辅助,不能全信)
| 工具 | 用途 | 注意 |
|---|---|---|
| AWVS | Web漏洞全面扫描 | 误报率高,需手工验证 |
| Nessus | 系统漏洞扫描 | 扫生产环境要格外小心 |
| Burp Suite Scanner | Web漏洞扫描 | 配合Burp手工测试使用 |
⚠️ 别当“扫描器战士” 。自动扫描只是辅助,真正有价值的漏洞——业务逻辑漏洞、越权漏洞、复杂组合漏洞——扫描器一个都扫不出来。必须手工测。
6.2 常见Web漏洞检测
| 漏洞类型 | 检测工具/方法 | 验证要点 |
|---|---|---|
| SQL注入 | SQLMap自动检测 + 手工构造Payload(' OR 1=1 --) | 页面是否返回数据库报错或异常数据 |
| XSS | 手工注入<script>alert(1)</script> | 弹窗是否出现 |
| 文件上传 | 尝试上传php/jsp/asp木马 | 是否可访问、是否可执行 |
| 越权 | 修改URL中的ID参数 | 能否访问其他用户的数据 |
| 敏感信息泄露 | 检查响应头、错误页面、源码注释 | 是否暴露版本号、路径、密钥 |
七、阶段五:漏洞利用(Exploitation)
目标:将验证过的漏洞转化为实际的系统权限。
7.1 获取初始访问权限
Web层面:
-
SQL注入 → 获取数据库数据,可能拿到管理员密码哈希
-
文件上传 → 上传Webshell(如
一句话木马),获得服务器权限 -
反序列化漏洞 → 直接执行系统命令
-
未授权访问 → 直接进入管理后台
工具:
-
Metasploit:漏洞利用框架,内置2000+攻击模块
-
Cobalt Strike:红队神器,内网渗透和后渗透利器
实战技巧:拿到Webshell后,先执行whoami看当前是什么权限。如果是www-data或IIS_USRS——低权限用户,下一步就是提权。
7.2 权限提升(Privilege Escalation)
| 环境 | 常见提权方式 |
|---|---|
| Linux | 内核漏洞(如Dirty Cow)、SUID提权、sudo配置错误、Cron任务劫持 |
| Windows | 内核漏洞(如永恒之蓝)、服务权限配置错误、UAC绕过、令牌窃取 |
工具:
-
Linux:
LinEnum、linux-exploit-suggester -
Windows:
WinPEAS、PowerUp、Mimikatz(抓密码哈希)
八、阶段六:后渗透与横向移动(Post-Exploitation & Lateral Movement)
目标:维持访问权限,并在内网中横向扩展,拿下更多关键系统。
这一步是渗透测试含金量最高的部分,也是区分“脚本小子”和“真渗透工程师”的分水岭。
8.1 权限维持(Persistence)
拿到权限后不能只靠一个Shell——万一被管理员发现踢掉了,你就全白干了。
常用手段:
-
创建隐藏账户(Windows:
net user hacker$ P@ssw0rd /add) -
安装计划任务/定时任务(Cron)定期回连
-
写入启动项(Windows注册表
Run键) -
SSH公钥写入
~/.ssh/authorized_keys
8.2 横向移动(Lateral Movement)
以当前主机为跳板,探测内网、攻击其他主机。
信息收集:
-
用
fscan扫描内网存活主机和开放端口 -
用
nmap扫内网C段 -
查看当前主机的网络连接(
netstat -an)、ARP表、DNS缓存
横向手法:
-
哈希传递(Pass the Hash) :用抓到的NTLM哈希直接认证其他Windows主机
-
SMB Relay:劫持SMB认证流量,中继到其他机器
-
密码爆破:用抓到的密码字典爆破内网其他主机的445端口(SMB)
-
黄金票据/白银票据:拿下域控后伪造Kerberos票据
-
NTLM中继攻击:截获并转发NTLM认证
实战案例:某勒索组织通过一处用友NC资产入侵后,利用国产工具在内网横向移动数小时,最终控制了超融合平台(vCenter)作为跳板,实施了勒索。
8.3 后渗透阶段产出物
-
当前主机的系统信息、用户列表、网络拓扑
-
抓取到的密码哈希、明文凭证
-
内网资产清单(存活主机、开放服务)
-
可达的域控、数据库、核心业务系统
九、阶段七:报告编写(Reporting)
目标:把整个测试过程、发现的漏洞、修复建议,用客户能看懂的方式写出来。
这是最容易被忽视但最重要的环节。漏洞挖得再好,报告写不清楚,客户看不懂、修不了,你的工作就等于白干。
一份专业渗透测试报告的五大核心模块
1. 执行摘要(给老板看的,不用技术术语)
-
测试目标、时间范围、测试团队
-
总体安全态势评估(几句话概括)
-
高危漏洞数量、最严重的风险是什么
2. 测试范围与方法论
-
测试了哪些域名/IP/应用
-
采用了什么标准(PTES/OWASP等)
-
测试起止时间
3. 漏洞详情(给技术人员看的)
每个漏洞必须包含:
-
漏洞名称与类型(如:SQL注入、越权访问)
-
风险等级(高危/中危/低危,用CVSS评分)
-
漏洞位置(具体的URL、参数、接口)
-
复现步骤(一步步怎么操作,附截图/Payload)
-
潜在影响(数据泄露?系统沦陷?业务中断?)
4. 修复建议
-
针对每个漏洞给出具体、可操作的修复方案
-
按优先级排序(先修高危,再修中低危)
5. 总结与附录
-
整体安全建议(如:加强员工安全意识培训、定期进行渗透测试)
-
测试过程中使用的工具清单
十、渗透测试常用工具速查表
| 阶段 | 工具 | 用途 |
|---|---|---|
| 信息收集 | Nmap、Masscan | 端口扫描、主机发现 |
| 信息收集 | OneForAll、Sublist3r | 子域名枚举 |
| 信息收集 | Shodan、FOFA、Censys | 互联网资产搜索 |
| 信息收集 | Wappalyzer、WhatWeb | 指纹识别 |
| 漏洞分析 | AWVS、Nessus、Burp Scanner | 自动化漏洞扫描 |
| 漏洞分析 | Burp Suite | Web渗透手工测试(抓包改包) |
| 漏洞利用 | Metasploit | 漏洞利用框架 |
| 漏洞利用 | SQLMap | SQL注入自动化利用 |
| 后渗透 | Cobalt Strike | 内网渗透、权限维持 |
| 后渗透 | Mimikatz | Windows密码哈希提取 |
| 后渗透 | fscan | 内网资产扫描 |
| 后渗透 | frp、ngrok | 内网穿透 |
十一、核心逻辑一句话总结
-
前期交互:定范围、拿授权,别踩法律红线
-
情报收集:信息越多,攻击路径越多——这是最花时间的阶段,也是最值得花时间的阶段
-
威胁建模:判断哪个入口最值得打
-
漏洞分析:工具扫一遍 + 手工测一遍,别信扫描器
-
漏洞利用:从漏洞到权限,从Webshell到系统Shell
-
后渗透:维持权限 + 横向移动,从一台机器到整个内网
-
报告编写:写清楚、写明白,让客户看得懂、修得了
渗透测试不是碰运气,是走流程。流程走对了,每一次都有收获。
💬 互动话题
你做过最顺利/最坎坷的一次渗透测试是什么样的?
是信息收集阶段挖到了一个意外惊喜的子域名?还是在提权环节卡了三天最终靠一个冷门漏洞突破?又或者是写报告时发现漏洞复现步骤写不清楚被客户打回来重写?
欢迎在评论区分享你的渗透测试实战经历——翻车经验也好、高光时刻也罢,都是同行最宝贵的教材。每一条我都会亲自回复,硬核交流。
🎁 渗透测试实战全套资料包
我从多年实战和教学中整理了一套渗透测试从入门到精通的完整资料,适合收藏反复啃:
① PTES渗透测试执行标准完整文档(中文版) ——行业流程圣经
② 渗透测试各阶段工具速查表(PDF打印版) ——实战时放桌边随时翻
③ 信息收集自动化脚本合集(子域名、端口、路径、指纹一键扫描)
④ Nmap全参数详解与扫描策略最佳实践
⑤ Burp Suite从入门到精通实战教程(含插件推荐)
⑥ Metasploit漏洞利用模块编写指南
⑦ 内网渗透横向移动实战案例集(含域渗透、哈希传递、票据攻击)
⑧ 渗透测试报告模板(含漏洞详情+复现步骤+修复建议范例)
⑨ 护网/面试渗透测试高频考题100问(含标准答案)
👇 领取方式
评论区回复 “渗透实战” ,我会私信发你全套资料链接。

流程走对了,每一次测试都有收获。流程走错了,挖到洞也是碰运气。
更多推荐

所有评论(0)