漏洞扫描用于发现攻击目标 凌晨三点,漏洞某家银行的扫描告警系统突然弹出消息——内网一台测试服务器被上传了Webshell。安全团队溯源时发现,用于攻击者根本没猜密码,发现也没爆破,攻击而是目标先扫了全网段,精准挑中这台半年没打补丁的漏洞旧机器。漏洞扫描,扫描在攻击者手里,用于就是发现一张寻宝地图。 大多数人对扫描的攻击理解停留在“扫开放端口”这个层面,太浅了。目标真正的漏洞漏洞扫描,是扫描攻击者用来画“目标画像”的。IP段、用于端口、服务版本、中间件类型、框架特征,每一条信息都像拼图碎片。比如Nmap扫出某台主机开着8080端口,返回头是Apache-Coyote,基本能断定是Tomcat;再带上“Manager”路径试试默认口令,行就行,不行就换下一台。这种动作,一天能扫几千个IP,成本几乎为零。 更狠的是利用扫描结果做“二次筛选”。攻击者手里通常握着几个通用漏洞的PoC(概念验证代码),比如Struts2的OGNL注入,或者Fastjson的反序列化。他们不会盲目打所有机器,而是先用扫描器把全网段跑一遍,把暴露了相关组件的IP单独拉出来,按版本号排序——老版本优先,因为老版本漏洞利用成功率更高。我见过一个真实案例,某企业把内部系统放在公网,攻击者用Shodan搜“Jenkins”关键字,直接锁定了几百台未设访问控制的Jenkins服务器,其中一半能直接执行命令。扫描不是碰运气,是筛沙子,筛到最后,剩下的全是目标。 有人觉得,内网总安全吧?错。横向移动的第一步,往往就是内网扫描。攻击者拿到一台跳板机后,先跑内网网段,扫445端口找MS17-010(永恒之蓝),或者扫22端口测弱口令。很多公司外网防护严密,内网却裸奔——防火墙策略宽松,交换机没做端口隔离,扫描器一放,所有主机像没穿衣服站在大街上。我参与过某次应急响应,攻击者在内网只用了一个轻量级扫描器,花了二十分钟,就把域控、备份服务器、财务系统的IP和开放端口摸清了,后续攻击路径直接照着扫描结果设计,快得吓人。 漏洞扫描之所以能成为“发现目标”的工具,核心在于它把“未知”变成“已知”。攻击者不需要知道你哪台机器有价值,扫描器会告诉他哪台机器有漏洞——有价值的目标往往和有漏洞的机器高度重合。比如,一台开了3389远程桌面的财务服务器,如果系统版本老,攻击者扫到后直接尝试爆破或者漏洞利用,比漫无目的地撞运气高效得多。换句话说,扫描器是攻击者的侦察兵,替他回答了“打哪里”这个最要命的问题。 但别误会,扫描本身不违法,问题在于动机。安全工程师也扫,扫完打补丁;攻击者也扫,扫完找突破口。同一个Nmap命令,有人用来加固,有人用来入侵。技术是中性的,但使用者的意图决定了结果。对企业来说,与其抱怨攻击者太狡猾,不如自己先扫一遍——你连自己的漏洞都不知道在哪儿,凭什么觉得攻击者也找不到? 最后说个细节。攻击者扫描时,通常不会用默认配置,他们会调整速率、随机化顺序、伪造源IP,甚至用云主机做跳板,就为了让扫描流量淹没在正常流量里。安全设备上那些“扫描行为告警”,大部分时候只看到冰山一角。所以,别指望防火墙能挡住所有扫描,关键是扫描之后你做了什么——补丁更新快不快,口令强不强,暴露面控制没控制住。漏洞扫描只是开始,真正决定胜负的,是后续那几步。 |