当前位置:首页 > 百科

扫描器渗透

扫描器不是扫描万能的,但离开扫描器,器渗渗透测试基本是扫描盲人摸象。我见过太多新手把扫描器当神灯,器渗搓三下就指望它吐出root权限——那玩意儿只会给你一堆报警日志和半死不活的扫描漏洞列表。

拿Nessus说吧,器渗它扫出个"SSL证书过期",扫描你兴冲冲提交报告,器渗甲方运维翻白眼:"这算漏洞?扫描我下个月就续费。"真正要命的器渗,是扫描它扫出"Apache Struts2远程代码执行",但你要是器渗不手动验证,根本不知道目标服务器装了WAF,扫描payload发过去全被拦了。器渗扫描器给你的扫描是线索,不是结论。

我习惯把扫描流程拆成三刀。第一刀用主动扫描器快速摸清资产面——开放端口、服务版本、HTTP响应头。这一刀要快,像侦察兵骑摩托绕城一圈,记下哪里有哨塔,哪里有矮墙。第二刀换被动指纹识别,用Burp的被动扫描挂着代理,让爬虫慢慢舔页面,专挑那些登录后的功能点下手。很多扫描器默认不爬带token的页面,你得手动登录,把会话喂给它。第三刀最脏,直接掏POC脚本往疑似漏洞上怼,比如Log4j的JNDI注入,用dnslog看回显,三秒钟见分晓。

有回我拿AWVS扫一个政府网站,扫出个SQL注入,等级标"高"。我按着它的payload手动试,结果发现参数被过滤了,单引号转义成双引号。AWVS的检测是基于语义分析的,它觉得能闭合语句,但实际后端用了预编译。这种误报率在老旧系统上能到四成。你要是信了扫描器的鬼话直接交差,第二天甲方拿着截图来找你算账——"你说能拖库,我库呢?"

反过来,扫描器漏报更坑。某次内网渗透,我用Xray扫了个遍,干干净净。后来手工翻了翻JS文件,发现有个接口直接返回用户手机号,没鉴权。扫描器为什么不报?因为它的字典里没有这个路径,爬虫没爬到,自然测不到。从那以后我学乖了,扫描器扫完,一定得自己拿浏览器的开发者工具翻网络请求,把那些动态加载的接口全揪出来。

工具是死的,人是活的。你让Nmap扫一万遍,也扫不出业务逻辑漏洞——比如订单金额改成负数,积分兑换倒买倒卖。扫描器擅长的是已知漏洞的模式匹配,而真正的漏洞往往藏在业务规则和代码逻辑的夹缝里。我见过最漂亮的渗透,是拿扫描器当跳板,扫出个Spring Boot Actuator未授权,然后顺着/env接口翻到数据库密码,再连上去把用户表拖了。每一步都是扫描器给的线索,但每一步都得人脑判断下一步往哪走。

所以别纠结哪款扫描器最强。Nessus适合合规检查,AWVS对Web应用友好,Xray在代理模式下能挖出不少惊喜,但真正决定渗透成败的,是你拿到扫描报告后,敢不敢质疑它,愿不愿意补上它没看见的角落。扫描器是探照灯,照得到的地方是已知风险,照不到的地方才是猎场。

分享到: