一、渗透测试概述
1. 定义
渗透测试是经过授权的模拟攻击,由安全专家使用与真实攻击者相同的工具、技术和流程,对目标系统进行非破坏性的安全评估,最终输出修复建议。
2. 与漏洞扫描的区别
| 维度 | 漏洞扫描 | 渗透测试 |
|---|---|---|
| 目的 | 快速发现已知漏洞 | 验证漏洞的可利用性与影响 |
| 深度 | 自动化,较浅 | 手动+自动化,深入利用 |
| 输出 | 漏洞列表+风险等级 | 漏洞利用过程+修复方案 |
| 误报率 | 较高 | 极低 |
| 成本 | 低 | 高 |
3. 核心价值
主动防御,先于攻击者修补弱点
满足合规要求(等保2.0、PCI-DSS、ISO 27001)
验证安全设备(WAF、IDS)的有效性
为红蓝对抗提供基础
二、渗透测试类型
1. 按知识掌握程度
| 类型 | 知识掌握 | 模拟对象 | 特点 |
|---|---|---|---|
| 黑盒 | 无或极少 | 外部黑客 | 最接近真实攻击 |
| 灰盒 | 部分信息(架构图、API文档) | 内部知情人员 | 效率与真实性平衡 |
| 白盒 | 完整源码+权限 | 内部开发/审计人员 | 深度最高,可发现逻辑漏洞 |
2. 按测试范围与知晓程度
外部测试:测试暴露在公网的Web、邮件、DNS等,模拟互联网攻击者。
内部测试:模拟已攻破内网的攻击者,测试内网隔离、域控安全。
盲测:测试者仅知公司名称,目标方安全团队不知情(管理层知晓),检验监控响应能力。
双盲测:测试者和安全团队均不知对方存在,完全模拟真实攻击。
三、安全漏洞生命周期
以CVE-2017-0144(永恒之蓝)为例:
发现→ 内部发现、研究人员、黑客组织(如NSA发现并保密)。
私有利用→ 发现者保密或出售(NSA开发利用工具)。
公开/泄露→ 影子经纪人泄露(2017年4月),微软已发布补丁MS17-010。
大规模利用→ WannaCry勒索软件(2017年5月)造成全球破坏。
补丁发布→ 厂商修复,打补丁的系统免疫。
消亡→ 绝大多数系统更新,但老旧系统仍有风险。
四、授权与法律边界
必须授权的场景
企业内网(生产、测试、办公网络)
云上资产(ECS、RDS等,需云服务商允许)
第三方系统(合作伙伴、供应商)
移动App后端API
物联网设备
教育/政府系统(需通过官方渠道)
无需授权的合法场景
自己拥有或合法控制的系统
公开漏洞演练平台(DVWA、Pikachu、HackTheBox等)
漏洞众测平台(补天、漏洞盒子、HackerOne)规则内测试
法律风险
中国《刑法》第285、286条对非法侵入计算机系统有明确处罚。未经授权的渗透测试可能构成违法。
五、漏洞库
| 漏洞库 | 全称/所属 | 特点 | 网址 |
|---|---|---|---|
| CNNVD | 中国国家信息安全漏洞库 | 国家权威,中文预警 | cnvd.org.cn |
| CNVD | 中国国家信息安全漏洞共享平台 | 收录国内漏洞 | nvd.org.cn |
| CVE | Common Vulnerabilities and Exposures | 全球唯一标识符 | cve.org |
| NVD | National Vulnerability Database | 美国NIST维护,含CVSS评分 | nvd.nist.gov |
| Exploit-DB | Exploit Database | 提供实际利用代码(EXP) | exploit-db.com |
| CWE | Common Weakness Enumeration | 漏洞类型分类(如CWE-89:SQL注入) | cwe.mitre.org |
六、渗透测试标准流程
0. 前期准备
签订《授权书》(测试时间、范围、IP白名单、是否允许DoS、紧急联系人)
准备记录工具(OneNote、Burp Suite项目文件)
1. 信息收集
被动:DNS查询、Google hacking、Shodan、GitHub敏感信息、证书透明度(crt.sh)
主动:主机发现(
nmap -sn)、端口扫描(nmap -sS -p-)、服务识别(nmap -sV)、目录爆破(gobuster、dirb)、指纹识别(whatweb)
2. 漏洞探测
自动化:AWVS、Nessus、Nikto、sqlmap、XSStrike
手动:登录绕过、越权(IDOR)、文件上传测试、JS接口提取
3. 漏洞利用
使用Metasploit框架、编写EXP、Burp Repeater手工测试
SQL注入获取数据、命令注入反弹Shell、LFI转RCE
4. 后渗透与提权
信息收集:
whoami、uname -a、netstat -an、ps aux提权:
Linux:内核漏洞、SUID、sudo配置错误、cron滥用
Windows:UAC绕过、服务权限、Unquoted Service Path、mimikatz
横向移动:Pass-the-Hash、PsExec、WMI、WinRM
5. 持久化与控制
Web层面:上传Webshell(冰蝎、蚁剑)
系统层面:计划任务、SSH公钥、隐藏用户
6. 清理痕迹
删除工具、清空历史命令、清除Web日志
7. 报告输出
结构:概述→执行摘要→技术细节(含截图、请求包)→风险评级(CVSS)→修复建议→附录
七、主流工具清单
信息收集
| 工具 | 用途 | 示例 |
|---|---|---|
| Nmap | 端口/服务/OS探测 | nmap -sV -O 192.168.1.1 |
| Masscan | 极速端口扫描 | masscan -p1-65535 --rate=10000 192.168.1.0/24 |
| Gobuster | 目录/子域名爆破 | gobuster dir -u http://example.com -w wordlist.txt |
| Shodan | 物联网设备搜索 | shodan search apache |
漏洞扫描
| 工具 | 类型 | 特点 |
|---|---|---|
| AWVS | Web扫描 | 商业,功能全面 |
| Nessus | 系统扫描 | 商业,免费版限16IP |
| OpenVAS | 系统扫描 | 开源,Kali内置 |
| Nikto | Web扫描 | 轻量,误报较多 |
漏洞利用
| 工具 | 用途 | 关键功能 |
|---|---|---|
| Metasploit | 渗透框架 | msfconsole,大量EXP |
| Burp Suite | Web代理测试 | Proxy, Repeater, Intruder |
| SQLmap | SQL注入自动化 | --os-shell获取系统shell |
| Hydra | 密码爆破 | hydra -l admin -P pass.txt ssh://ip |
后渗透与提权
| 工具 | 用途 |
|---|---|
| Mimikatz | Windows密码提取 |
| LinPEAS/WinPEAS | 提权信息收集 |
| PowerSploit | PowerShell攻击框架 |
| Cobalt Strike | 商业C2,团队协作 |
流量分析
| 工具 | 用途 |
|---|---|
| Wireshark | 图形化抓包分析 |
| tcpdump | 命令行抓包 |
| BetterCAP | 中间人攻击 |
八、专业术语表
一、基础术语
术语 解释 漏洞 系统中可被利用的弱点,如配置错误、代码缺陷、逻辑问题。 POC (Proof of Concept) 用于证明漏洞存在的概念性代码或步骤,通常不造成实际破坏。 EXP (Exploit) 完整的漏洞利用代码,可获取权限、数据或执行任意命令。 Payload 漏洞触发后执行的核心代码,如反弹Shell、添加用户、下载木马。 Shellcode 机器码形式的Payload,通常直接注入内存执行。 Webshell 以网页脚本(ASP/PHP/JSP)形式存在的后门,可远程执行命令。 后门 绕过正常认证的隐蔽入口,用于持久化访问。 0-day 厂商未发布补丁且公开未知的漏洞。 N-day 已公开但仍有系统未修复的漏洞。 二、攻击手法与技术
术语 解释 SQL注入 在SQL语句中插入恶意代码,导致数据库执行非预期命令。 XSS (跨站脚本) 注入恶意脚本,在受害者浏览器中执行窃取Cookie、钓鱼等操作。 CSRF (跨站请求伪造) 诱导已登录用户发送非预期请求,实现密码修改、转账等。 SSRF (服务端请求伪造) 利用服务端发起请求的能力,探测内网、读取文件、攻击内部系统。 XXE (XML外部实体注入) 注入恶意XML实体,可读取本地文件、内网探测、甚至RCE。 文件包含 (LFI/RFI) 动态包含文件时未过滤,LFI读本地文件,RFI包含远程恶意脚本。 命令注入 在系统命令拼接处注入额外命令,执行任意操作系统指令。 越权 (IDOR) 通过修改参数访问未授权的资源,如查看他人订单、修改其他用户数据。 提权 从低权限用户提升到管理员或SYSTEM权限。 横向移动 在内网中从一台主机跳板到另一台,扩大控制范围。 中间人攻击 (MITM) 攻击者拦截并可能篡改双方通信内容。 ARP欺骗 伪造ARP响应,劫持局域网内流量。 DNS劫持 篡改DNS解析结果,将域名指向恶意IP。 反序列化漏洞 不安全地反序列化数据,可导致RCE或权限提升。 竞争条件 利用多线程/进程访问共享资源的时间差,绕过检查或破坏数据。 三、后渗透与权限维持
术语 解释 C2 (命令与控制) 攻击者与已控主机之间的通信通道,用于下发指令、回传数据。 信标 (Beacon) 受控主机定期向C2服务器发送的请求,表明存活并等待任务。 Stager 小型Payload,用于下载完整攻击载荷,避免一次性传输大体积代码。 Meterpreter Metasploit中的高级Payload,提供文件管理、进程迁移、键盘记录等功能。 Bind Shell 目标机监听端口,攻击者主动连接。 Reverse Shell 目标机主动回连攻击者,常用于绕过NAT/防火墙。 令牌窃取 窃取Windows用户令牌,无需密码即可模拟其权限。 哈希传递 (Pass-the-Hash) 直接使用NTLM哈希进行认证,不需破解明文密码。 票据传递 (Pass-the-Ticket) 窃取Kerberos票据实现横向移动。 黄金票据 伪造Kerberos TGT票据,获得域管理员权限。 白银票据 伪造特定服务的Kerberos票据,限制访问但更难检测。 进程注入 将恶意代码注入合法进程,逃避检测。 计划任务 创建定时任务实现持久化或反弹Shell。 SSH公钥后门 在目标机写入攻击者公钥,长期免密登录。 四、渗透测试类型与阶段
术语 解释 黑盒测试 测试者无内部信息,模拟外部攻击者。 白盒测试 测试者拥有源码、文档、权限,深度审计。 灰盒测试 测试者掌握部分信息(如架构图),平衡效率与真实性。 外部测试 测试公网暴露的资产,如Web、VPN、邮件。 内部测试 模拟内网已失陷或内部人员,测试内网隔离、域控安全。 盲测 目标方安全团队不知情,管理层知晓,检验监控响应。 双盲测 测试者和安全团队均不知对方存在,完全真实。 红队 模拟攻击者的团队,进行高级对抗。 蓝队 防御方,负责监测、响应、溯源。 紫队 红蓝协作,优化检测与响应能力。 信息收集 渗透测试第一阶段,收集目标域名、IP、端口、服务、人员等信息。 漏洞探测 通过扫描或手动测试,发现系统弱点。 漏洞利用 实际触发漏洞,获取权限或数据。 后渗透 获得初始权限后的操作,包括提权、横向、持久化、清理痕迹。 报告输出 整理测试过程、漏洞详情、修复建议,提交给客户。 五、工具与操作术语
术语 解释 抓包 捕获网络流量进行分析,工具如Wireshark、tcpdump。 重放 重复发送已捕获的数据包,用于测试篡改、越权、重放攻击。 爆破 尝试大量口令或参数组合,工具如Hydra、Burp Intruder。 模糊测试 向程序输入随机/半随机数据,观察异常或崩溃以发现漏洞。 代理 介于客户端与服务端之间的中间件,可拦截修改流量(如Burp Proxy)。 爬虫 自动遍历网站链接,构建站点地图,用于信息收集。 扫描器 自动检测漏洞的工具,如Nessus、AWVS、OpenVAS。 Exploit框架 集成漏洞利用模块的平台,如Metasploit、Canvas。 隧道 将数据封装到其他协议中传输,绕过网络限制,如SSH隧道、DNS隧道。 端口复用 同一端口传输多种服务数据,用于隐蔽通道。 六、防御对抗与逃避
术语 解释 WAF绕过 使用编码、分块传输、参数污染、大小写混淆等方法绕过Web应用防火墙。 免杀 修改恶意软件特征码、行为,使其不被杀毒软件检测。 混淆 使代码难以理解但仍能执行(如变量重命名、加密),用于绕过静态检测。 加壳 对可执行文件进行压缩或加密,运行时解压,隐藏真实代码。 沙箱检测 恶意软件检测是否在虚拟化或沙箱环境中运行,若是则隐藏恶意行为。 诱饵文件 部署于系统中的假文件/凭证,用于检测入侵或溯源攻击者。 日志清理 删除或篡改系统、Web、应用日志,隐藏入侵痕迹。 七、标准与框架术语
术语 解释 CVSS 通用漏洞评分系统,0-10分量化漏洞严重程度。 CWE 通用弱点枚举,对漏洞类型分类,如CWE-89为SQL注入。 CVE 通用漏洞披露,每个漏洞有唯一编号,如CVE-2021-44228。 ATT&CK MITRE的知识库,描述攻击者战术、技术、步骤(TTP)。 PTES 渗透测试执行标准,定义测试各阶段规范。 OSSTMM 开源安全测试方法手册,侧重安全度量与合规。 OWASP Top 10 Web应用十大安全风险排行,测试重要参考。 八、其他常用术语
术语 解释 靶机 用于练习渗透测试的目标系统,如Metasploitable、DVWA。 蜜罐 诱捕攻击者的虚假系统,用于收集攻击手法。 沙箱 隔离的分析环境,用于安全执行可疑文件。 CVE编号 漏洞的唯一标识符。 PoC 见基础术语。 0day 见基础术语。 Webshell 见基础术语。 Shell 命令行交互环境,如反弹Shell、Webshell。 GetShell 成功获取目标系统的命令行控制权。
九、漏洞挖掘平台推荐
HackerOne (国际):全球最大的漏洞赏金平台之一,客户包括Google、Microsoft等巨头。平台项目多、赏金高,且公开的报告是绝佳的学习资料。
Bugcrowd (国际):另一家国际主流平台,以项目管理规范著称,测试规则清晰,适合希望接触企业级实战流程的研究员。
补天平台 (Butian):国内极受欢迎的漏洞响应平台,由奇安信集团推出,已通过工信部备案。平台汇聚了大量白帽,适合初学者和资深玩家。
漏洞盒子 (VulBox):国内知名的漏洞众测和安全服务平台,也通过了工信部备案,提供众测、SRC托管等多种服务。
火线安全平台 (Huoxian):国内活跃的安全众测社区,同样在工信部备案名单中,对白帽的互动和支持度较高。
阿里ASRC:阿里巴巴集团的安全应急响应中心,测试其名下丰富的生态业务。
腾讯TSRC:腾讯官方的安全漏洞接收平台,以高额奖励和良好口碑著称。
华为赏金计划 (Huawei Bug Bounty):华为产品的高阶漏洞奖励计划,专注于挖掘0day漏洞。
360 BugCloud:360集团的顶级漏洞奖励计划,针对高威胁漏洞提供高额奖金。
十、渗透测试相关法律要点
一、核心法律条款
1. 《刑法》第285条 —— 非法侵入计算机信息系统罪
第1款:侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统 → 处三年以下有期徒刑或拘役(行为犯,无需造成后果)
第2款:侵入其他系统,获取数据或实施控制 →情节严重(如获取身份认证信息10组以上、控制20台以上、违法所得5000元以上)→ 三年以下;情节特别严重(5倍标准)→ 三至七年
第3款:提供专门用于侵入/控制的程序、工具,或明知而为 → 同前款处罚
2. 《刑法》第286条 —— 破坏计算机信息系统罪
对系统功能进行删除、修改、增加、干扰,造成系统不能正常运行→ 后果严重(如经济损失、中断服务)→ 五年以下;特别严重 → 五年以上
3. 《网络安全法》(2026年1月1日施行)
第26条:开展安全检测、风险评估等活动需遵守国家规定(暗含资质要求)
第27条:任何个人和组织不得从事未经授权的扫描、探测、渗透测试等可能影响网络安全的活动
4. 《数据安全法》《个人信息保护法》
渗透测试中获取的业务数据、个人信息 → 不得留存、复制、泄露,测试结束后应销毁
二、合法与违法的分界线 —— 授权
| 对比项 | 合法渗透测试 | 违法入侵 |
|---|---|---|
| 授权 | 书面授权书,明确范围、时间、规则 | 无授权或超出授权范围 |
| 目的 | 安全评估、修复漏洞 | 窃取数据、破坏系统、牟利 |
| 行为边界 | 按授权书操作,不触碰敏感数据 | 任意获取数据、篡改、留后门 |
| 资质 | 具备相关资质(如CISP-PTE) | 无 |
授权书必备要素:
明确的测试目标(IP段、域名、系统)
测试时间窗口(起止时间)
允许的渗透手段(是否允许SQL注入、文件上传、DoS等)
禁止操作(如禁止修改数据、禁止下载数据库)
双方签字盖章
三、合规实践三阶段
| 阶段 | 关键动作 | 常见违规风险 |
|---|---|---|
| 测试前 | 签授权书+保密协议;确认人员持证;确定紧急联系人 | 口头授权(无法律效力);未约定边界 |
| 测试中 | 记录每一步操作;敏感数据脱敏;不超范围 | 扫描了未授权子域名;获取真实用户数据 |
| 测试后 | 报告脱敏后提交;删除本地测试数据;提供复测 | 留存数据;泄露漏洞细节给第三方 |