游客发表
一个没打补丁的Struts2站点,从发现到拿到服务器root权限,防渗可能只需要一杯咖啡的透测时间。去年某次内部攻防演练,试实我用OGNL表达式注入直接弹回一个shell——目标系统甚至没开WAF。全攻那感觉就像走进一间没锁门的防渗金库,而管理员还在隔壁刷短视频。透测渗透测试不是试实炫技,是全攻帮企业提前踩爆这些雷。
信息收集阶段最容易被新人忽略。防渗很多人上来就sqlmap扫,透测结果触发了IDS,试实IP被封。全攻我习惯先翻robots.txt和sitemap.xml,防渗再看HTTP响应头里的透测Server字段。有次发现Server: Apache/2.4.29 (Ubuntu),顺手搜了下这个版本的CVE,果然有个mod_ssl的DoS漏洞。虽然不能直接getshell,但配合目录爆破找到的phpMyAdmin,事情就变得有趣了。
漏洞利用环节,别迷信自动化工具。Burp Suite的Repeater才是主战场。测试SQL注入时,我常手动加单引号看报错——You have an error in your SQL syntax这种直白的反馈,比sqlmap跑十分钟更高效。有一回遇到WAF拦截union select,换成union/**/select就绕过了。规则是死的,人是活的。记住:渗透测试的本质是逻辑漏洞,不是工具漏洞。
order_id参数存在IDOR(不安全的直接对象引用)。我改成相邻数字,直接看到了别人的收货地址和手机号。没有SQL注入,没有XSS,纯粹是权限校验缺失。开发觉得“用户不会改参数”,可攻击者就爱干这个。 提权阶段,Linux下先看sudo -l。有次发现sudo可以无密码运行find,直接sudo find / -exec /bin/sh \;就拿到了root。Windows下则盯SeImpersonatePrivilege,用JuicyPotato或者PrintSpoofer。这些技巧网上都有,但关键是你得知道在什么场景下用。就像修车,工具摆在那,诊断才是本事。
后渗透阶段,别急着dump数据库。先whoami /priv看权限,再net user看用户,ipconfig看内网网段。有次我通过mimikatz抓到明文密码,发现管理员用同样的密码登录了域控。整个内网瞬间沦陷。这种连锁反应,比单个webshell有价值得多。但记住:授权范围内做事,别碰生产数据。
防御方视角同样重要。我见过太多企业只靠WAF续命,结果WAF规则一绕过就裸奔。RASP(运行时应用自我保护)这几年靠谱多了,能在SQL语句执行前拦截。但成本高,小公司玩不起。最实际的还是代码审计——PDO预处理、htmlspecialchars转义、CSRF token,这些基本功做到位,能挡掉八成脚本小子。
最后说个真实教训。某次渗透测试,我用了nmap的-sS扫描,结果触发了云厂商的DDoS防护,整个C段被拉黑。客户IT打电话问“你们是不是在攻击我们”。所以,--max-rate和-T2不是摆设。渗透测试是门手艺,快就是慢,慢就是快。工具再强,也强不过你对HTTP协议和Linux权限模型的理解。
别指望看完一篇文章就能挖到0day。去HackTheBox刷靶机,去GitHub读CVE的PoC,去SRC平台提交漏洞。被拒绝几次,你就知道WAF的脾气了。
友情链接