渗透测试是通过模拟攻击手段,发现网络、系统或应用中存在的安全漏洞,并向管理员提供修复建议的过程。其核心目的是在恶意黑客利用漏洞之前,主动识别并修补风险。
一、渗透测试类型
渗透测试主要分为两种模式:
- 白盒测试:测试人员拥有目标系统的完整信息,包括源代码、架构文档、账号权限等。这种方式类似于代码审计,能深入分析逻辑漏洞。
- 黑盒测试:测试人员仅知道目标 URL 或 IP,其他信息均未知。这模拟了真实黑客的攻击视角,更贴近实际威胁场景。
本文将基于黑盒测试视角,详细解析标准的渗透测试流程。
二、标准渗透测试流程
1. 确定目标
明确测试范围是首要任务。需确认目标域名、IP 段、应用系统边界,并获得书面授权。未经授权对任何系统进行扫描或攻击均属违法行为。
2. 信息收集
信息收集是渗透测试中最关键的环节,情报的丰富程度直接决定后续攻击的成功率。
- 主机扫描:使用工具如 Nessus 对目标主机进行深度扫描,检测开放端口、运行服务及已知漏洞。
- 端口扫描:使用 Nmap 或 Masscan 探测服务器开放端口。常见高危端口包括:
- 22 (SSH):弱口令风险
- 80/443 (HTTP/HTTPS):Web 服务入口
- 3306 (MySQL)、6379 (Redis):数据库未授权访问风险
- 445 (SMB):Windows 共享及永恒之蓝漏洞风险
- 目录与文件探测:扫描网站敏感目录,如后台管理页、备份文件、配置文件等。常用工具包括 DirBuster、Gobuster 等。
- 指纹识别:识别 Web 容器(Nginx/Apache)、CMS 系统(WordPress/DedeCMS)及框架版本,以便查找对应漏洞。
- 子域名枚举:收集主域名的所有子域名,扩大攻击面。
- 公开信息搜集:通过搜索引擎、Github、社交媒体等渠道搜集公司邮箱、员工姓名、泄露代码等敏感信息。
3. 漏洞探测
基于收集的信息,对目标进行漏洞验证。常见 Web 漏洞包括:
- SQL 注入:通过构造特殊输入绕过身份验证或获取数据库数据。
- XSS 跨站脚本:在页面中注入恶意脚本,窃取用户 Cookie 或会话。
- CSRF 跨站请求伪造:诱导用户执行非预期的操作。
- 文件上传漏洞:上传可执行脚本以获取服务器控制权。
- 远程代码执行 (RCE):直接控制服务器执行任意命令。
- 越权访问:水平或垂直越权访问他人数据。
常用自动化工具包括 AWVS、AppScan、OWASP-ZAP 等,但需注意控制扫描频率,避免造成服务拒绝。
4. 漏洞利用
在确认漏洞存在后,需谨慎利用以获取权限。此阶段通常涉及:
- Webshell 获取:通过上传木马或利用 RCE 漏洞获取服务器 shell。
- 提权:初始权限通常较低,需通过内核漏洞、配置错误等方式提升为 root 或 administrator 权限。
- 内网转发:利用已控主机作为跳板,建立隧道连接内网其他机器。
5. 内网渗透
进入内网后,重点在于横向移动与信息收集。
- 资产发现:扫描内网存活主机,识别关键服务器。
- 凭证获取:搜索本地配置文件、浏览器保存密码、内存转储等获取账号密码。
- 横向移动:利用获取的凭证登录内网其他机器,扩大控制范围。
- :为防止被清除,可能创建隐藏账户、计划任务或后门程序(仅限授权测试环境)。


