那台联想ThinkPad的渗透硬盘里,有个叫“工具箱”的工具文件夹,创建时间是渗透2017年3月。里面装着二十几个exe和bat文件,工具名字都很直白:端口扫描、渗透密码抓取、工具日志清理、渗透远程连接。工具这不是渗透什么黑客电影里的场景,就是工具一个普通IT运维的日常。
渗透测试这行,渗透外人看着神秘,工具内里其实是渗透极其枯燥的重复劳动。你拿到一个目标,工具先信息收集,渗透再找入口,然后提权、横向移动、留后门。每一步都有现成的工具,区别只在于你会不会用、用得巧不巧。工具箱的意义不在于工具本身多厉害,而在于你知道什么时候该拿哪一把。
我见过太多新手,上来就开扫描器全端口扫,结果触发WAF封了IP,后面什么都干不了。真正的老手会先手动翻一遍目标网站的robots.txt、sitemap.xml,看看有没有泄露的路径。有时候一个配置不当的Git仓库比什么漏洞扫描都管用。去年有个案例,某企业的运维把.git目录留在了生产环境,直接下载下来,数据库密码就在config文件里躺着。整个过程没用任何自动化工具,就一个浏览器加wget。
工具箱里最常用的反而不是那些带界面的神器。一个nc,一个curl,一个python脚本,能解决八成问题。有次在内网做横向,目标机器只开了445端口,smbclient连上去发现是空会话,直接枚举用户列表。拿到用户名之后用hydra跑弱密码,十分钟就进去了。工具越简单,越不容易留下痕迹。
但工具终究是死的。同一款SQL注入工具,有人能拿shell,有人只能跑出个数据库版本。差别在哪?在对你目标的理解。你得知道这个网站用什么框架、数据库什么版本、有没有CDN、WAF是什么牌子。这些信息决定了你选哪个payload、用什么编码、走HTTP还是HTTPS。
我自己的工具箱里有个txt文件,记录着各种默认口令。从路由器的admin/admin到Weblogic的weblogic/weblogic,密密麻麻两百多条。别小看这个,去年攻防演练,某单位的内网OA系统,管理员密码就是admin123。进去之后发现他们所有服务器密码都一样,一台沦陷等于全部沦陷。
渗透测试的尽头不是技术,是人性。你扫半天漏洞,不如给前台打个电话说“我是XX公司的IT支持,需要远程协助一下”。社会工程学才是真正的降维打击。当然这话有点绝对,技术底子还是得有,不然给你密码你也找不到入口。
工具箱会越来越厚,但核心逻辑不会变:信息收集决定攻击面,攻击面决定突破口,突破口决定你能不能拿到权限。工具只是加速这个过程,替代不了思考。我见过用Burp Suite手动抓包抓了一整天拿下目标的人,也见过开着AWVS扫了一周什么都没扫出来的人。区别不在工具,在脑子。
那个2017年的文件夹现在还在,只是里面多了些新东西。有些老工具已经跑不起来了,Python2的脚本得改成3,某些exe被杀了毒。但每次打开它,还是能想起第一次拿到shell时的感觉。屏幕上一行whoami,回显nt authority\system。那一刻你觉得整个世界都是你的。