渗透测试流程详解
经常有安全从业者询问,为什么自己总是挖不到漏洞?渗透测试到底是什么样的流程?为了帮助大家系统性地理解网络安全评估,本文将全网最详细的渗透测试流程进行梳理。全篇文章内容较长,请耐心阅读。
渗透测试概述
渗透测试(Penetration Testing)其实就是通过一些手段来找到网站、APP、网络服务、软件、服务器等网络设备和应用的漏洞,告诉管理员有哪些漏洞,怎么填补,从而防止黑客的入侵。渗透测试是网络安全防御体系中至关重要的一环,旨在模拟真实攻击者的行为,发现并修复安全隐患。
渗透测试主要分为 白盒测试 和 黑盒测试:
- 白盒测试:在知道目标网站源码和其他一些信息的情况下对其进行渗透,有点类似于代码审计或静态分析。
- 黑盒测试:只告诉我们这个网站的 URL,其他什么都不告诉,然后让你去渗透,模拟黑客对网站的渗透,这是最常见的形式。
我们现在就模拟黑客对一个网站进行渗透测试,这属于黑盒测试,我们只知道该网站的 URL,其他什么的信息都不知道。接下来,我将详细分享黑盒渗透测试的流程和思路!
一般来说,渗透测试的基本流程如下:
- 确定目标
- 信息收集
- 漏洞探测
- 漏洞利用与权限获取
- 内网转发
- 内网横向渗透
- 痕迹清除
- 撰写渗透测试报告
重要提示:所有渗透测试操作必须在获得明确书面授权的前提下进行。未经授权对系统进行扫描、攻击或数据窃取均属于违法行为。
一、确定目标
这个步骤看似简单,但至关重要。就是确定你的渗透目标是什么。明确目标范围(Scope),包括哪些 IP、域名、子域名或特定应用接口。避免超出授权范围进行测试,以免触犯法律红线。
二、信息收集
信息收集是整个渗透测试中最重要的一步。你要把你要攻击的目标全部探测清楚,才能更好的攻击。信息收集的越丰富,内容或情报收集的越多,攻击的成功率就越高。 同时,这也是防御者加固系统的关键参考。
而信息收集到底要收集哪些信息呢?接下来,我给大家整理了一下,渗透测试中常见的一些需要收集的信息。
1. 主机扫描 (Nessus)
对目标主机进行扫描,而不仅仅是对网站进行扫描。扫描目标主机开放了哪些端口,扫描端口运行的服务,目标主机上有哪些已知漏洞。
主机扫描的工具也有很多,比如 Nessus、OpenVAS 等。这些工具可以自动化检测常见的 CVE 漏洞和配置错误。
2. 端口扫描 (Nmap)
需要知道目标服务器开放了哪些端口,常见的如 135、137、138、139、445,这几个端口经常爆发漏洞。以下是一些服务端口的常见风险:
- 22 —— SSH 弱口令
- 873 —— rsync 未授权访问漏洞
- 3306 —— MySQL 弱口令
- 6379 —— Redis 未授权访问漏洞
端口扫描工具有 Nmap 和 Masscan。Nmap 扫描的准确性较高,但是扫描的比较慢;Masscan 扫描的比较快,但是准确性较低。在实际操作中,通常结合使用以平衡速度与精度。
3. 网站敏感目录和文件
扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏。
- 后台目录:可能存在弱口令、万能密码、爆破入口。
- 安装包:可能包含数据库信息,甚至是网站源码。
- 上传目录:存在截断、上传图片马等风险。
- MySQL 管理接口:弱口令、爆破,万能密码,可能导致数据泄露甚至拿到 Shell。
- 安装页面:可以二次安装进而绕过原有安全机制。
- phpinfo:会把你配置的各种信息暴露出来,如路径、环境变量等。
- 编辑器:FCK、KE 等旧版编辑器可能存在远程代码执行漏洞。


