游客发表
去年有个朋友找我,网络说他们公司花了两万块请人做渗透测试,安全报告交上来四十多页,渗透全是测试漏洞列表和风险等级,开发看完就扔一边了。培训我问他,网络测试人员有没有给你们演示怎么一步步从外网打进来、安全拿到域控的渗透?他愣了下说没有。这就是测试典型的渗透测试培训缺失——只给结果,不给过程,培训开发根本不知道怎么修,网络运维也不知道怎么防。安全
渗透测试这事儿,渗透门槛比很多人想象的测试低。一个刚入行的培训安全工程师,学会用Nmap扫端口、Burp Suite抓包改包、SQLMap跑注入,就能在不少系统里找到东西。但真正拉开差距的,是能不能把零散的技术点串成一条完整的攻击链。我见过太多人拿着工具一顿操作,扫出一堆中危漏洞,然后呢?不知道怎么组合利用,不知道怎么从Web入口跳到内网,更不知道怎么在域环境里做横向移动。培训要解决的就是这个问题——把点连成线。
课程设计上,我倾向于把整个流程拆成四个阶段。信息收集阶段,重点不是教工具怎么用,而是教怎么思考。拿到一个目标域名,先查whois、子域名、C段,再看GitHub有没有泄露的凭证、员工邮箱有没有在钓鱼库里出现过。这些动作看起来琐碎,但决定了后面攻击面的大小。有次我给一个客户做测试,就是从他们官网招聘页面里发现了一个测试环境的IP,那个环境没有任何防护,直接拿到了数据库权限。
漏洞利用阶段,工具只是辅助。关键是理解漏洞原理。比如SQL注入,很多人只会用sqlmap跑,但问到为什么这个参数存在注入、数据库是什么类型、怎么绕过WAF,就答不上来了。培训里我会让学员手动构造payload,从报错注入到盲注,一步步来。慢是慢了点,但遇到sqlmap跑不出来的场景,手动能救命。
后渗透阶段是最容易被忽略的。拿到一个webshell只是开始,怎么提权、怎么留后门、怎么清理日志、怎么搭建隧道进内网,这些才是实战中花时间最多的地方。我印象很深的一次,目标系统是Windows Server 2008,用MS17-010打进去之后,发现内网有三百多台机器,域控就在里面。从一台边缘Web服务器到域控,花了整整两天时间做信息收集和横向移动。这个过程里用到的技术,没有一项是课堂上能讲完的,全靠平时积累和临场判断。
报告撰写也是培训的一部分。很多技术人员不擅长写报告,漏洞描述写得像天书,修复建议就是“升级到最新版本”。好的报告应该让开发一眼看懂问题在哪、怎么复现、怎么修。我通常要求学员在报告里附上完整的请求响应包、截图和修复后的验证步骤。客户花钱买的是解决方案,不是漏洞清单。
培训结束的时候,我会给学员一个模拟环境,从外网到内网完整打一遍。有人卡在信息收集,有人卡在提权,有人进了内网找不到域控。这些卡点才是真正学到东西的地方。渗透测试没有标准答案,每个环境都不一样,能依靠的只有自己的经验和思路。
友情链接