当前位置:首页 > 焦点

渗透测试的基本流程是什么

凌晨两点,渗透甲方打来电话说官网被挂了黑页。测试程我打开浏览器,本流看到那个穿着花裤衩的渗透像素小人正在屏幕上跳舞,旁边滚动着“你们的测试程安全措施就像我的裤衩一样透风”。这不是本流我第一次接手这种烂摊子,但每次都能让我重新思考渗透测试的渗透意义——它本该在黑客动手之前就发现这些漏洞。

渗透测试的测试程起点从来不是工具,而是本流情报。你连目标用的渗透是什么CMS都不知道,盲扫只会浪费整晚时间。测试程我习惯先从DNS记录、本流证书透明日志、渗透甚至GitHub泄露的测试程代码片段入手。有个客户曾把数据库密码直接提交到公开仓库,本流这种信息花十分钟就能挖到。收集到的域名、子域名、IP段、邮箱格式,全部整理成表格,后续每一步都建立在这些数据之上。

接下来是扫描与枚举。Nmap扫端口只是开胃菜,真正费神的是识别服务版本和潜在漏洞。比如看见Apache 2.4.49,脑子里就该弹出CVE-2021-41773的路径穿越。这个阶段我常用两个工具并行——Masscan做全端口快速探测,Nmap对开放端口做深度指纹识别。别忘了检查robots.txt、备份文件、目录列表这些低级但致命的暴露。去年测试某政务系统时,直接在备份目录里找到了带明文密码的配置文件,连漏洞利用都省了。

漏洞验证环节最考验耐心。你扫出来一百个“高危”,但真正能利用的可能只有两三个。SQL注入要手工确认是否真的能带出数据,而不是只看sqlmap的报错提示。XSS得验证能否绕过CSP策略,在Chrome和Firefox里分别测试。这个阶段我习惯准备两份清单——一份是确认可利用的漏洞,另一份是存疑待验证的项。后者往往会在第二天清晨突然想通某个绕过思路。

拿到权限只是中场休息。内网横向移动才是真正区分脚本小子和渗透测试员的分水岭。你通过Webshell拿下一台应用服务器,但这通常只是域内一台普通机器。用Mimikatz抓取密码哈希,用BloodHound分析域信任关系,寻找可以提权到域管的路径。有个案例里,我从一个上传点打进内网,最后通过Exchange服务器的PrivExchange漏洞拿到了域管权限,整个过程持续了三天两夜。

报告环节最枯燥,但也最见功力。别把报告写成漏洞列表加CVSS分数,那叫扫描结果,不叫渗透测试报告。我会按业务影响排序,把“能修改任意用户密码”放在“存在反射型XSS”前面。每个漏洞附上复现步骤、截图、修复建议,同时标注“如果不修复可能造成的具体损失”。客户不是安全专家,你得用他们听得懂的语言讲清楚风险。

最后一步是复测。修复完的漏洞必须重新验证,确认补丁真的生效了。有些客户会敷衍了事,把参数过滤加在JavaScript里,这种绕过前端校验的拙劣修复一眼就能识破。复测通过后,把测试过程中使用的工具、账号、后门全部清理干净,这是职业操守的底线。

渗透测试不是炫技,是戴着镣铐跳舞。每一条规则都在约束你,但真正的功力恰恰体现在规则边缘的试探。那些凌晨的意外收获,往往来自对某个细节的偏执追问——为什么这个接口返回了多余字段?为什么这个Cookie没有设置HttpOnly?答案就藏在细节里。

分享到: