游客发表
2017年,漏洞利用Shadow Brokers放出了“永恒之蓝”。漏洞利用一个叫EternalBlue的漏洞利用SMB漏洞利用工具,后来被改写成WannaCry,漏洞利用横扫150个国家,漏洞利用几十万台机器。漏洞利用很多人以为漏洞利用是漏洞利用天才黑客灵光一闪的产物。不是漏洞利用。它更像一条流水线,漏洞利用有固定工序,漏洞利用只不过每道工序的漏洞利用难度差距极大。
第一步永远是漏洞利用找入口。攻击者拿到一个目标,漏洞利用先看它暴露了什么。漏洞利用开放端口、漏洞利用Web应用、邮件网关、VPN,甚至一个员工在GitHub上泄露的API key。这一步没什么浪漫色彩,就是扫。Nmap扫端口,Shodan搜指纹,Burp Suite爬接口。2019年Capital One那件事,起因就是一个配置错误的WAF,攻击者顺着SSRF拿到了云环境的元数据接口。入口不需要多高级,只需要存在。
找到入口之后,要判断这里有没有已知漏洞。这步叫漏洞识别。攻击者会把目标的服务版本号、组件信息拿去跟CVE库比对。一个跑了Apache Struts 2.3.15的服务器,跟CVE-2017-5638一对照,基本就宣判了。Equifax泄露1.47亿条记录,就是因为这个漏洞没打补丁。说实话,很多入侵根本用不上0day,Nday就够了。企业打补丁的速度,永远赶不上漏洞公开的速度。
识别出漏洞,接下来才是真正的技术活——构造利用载荷。这一步决定你能不能把“存在漏洞”变成“拿到权限”。缓冲区溢出要精确计算偏移量,绕过ASLR要找到信息泄露点,堆漏洞要布局内存。写一个稳定的exploit,可能需要几天甚至几周。Pwn2Own比赛上,一个Chrome沙箱逃逸的利用链,背后是几个月的逆向工程。而且环境一变,载荷可能就废了。远程和本地不一样,开了DEP和没开DEP不一样。没有“万能利用”这回事。
载荷送出去之后,通常会先拿一个低权限shell。这不算完。攻击者要做提权。Windows上可能是找未引用的服务路径、令牌窃取,Linux上可能是SUID文件配置错误、内核漏洞。提权之后是横向移动。拿域控、找共享、抓凭证。Mimikatz一跑,明文密码和NTLM哈希全出来了。很多内网渗透的转折点就在这里。一个弱密码,一套复用凭证,整张网就塌了。
横向移动到一定程度,攻击者会建立持久化。注册表Run键、计划任务、Web shell、SSH公钥,方法多得很。APT组织尤其擅长这个。他们不急着走,而是长期潜伏,慢慢收集情报。SolarWinds供应链攻击就是典型,攻击者在Orion平台的更新包里植入后门,安静地待了几个月才被发现。
最后一步是清理痕迹和维持访问。删日志、关审计、用合法工具做C2通道。Cobalt Strike的beacon可以走HTTPS、走DNS、走SMB,流量看起来跟正常业务没区别。防守方要在海量日志里找到这点异常,难度不亚于大海捞针。
整条链条上,最脆弱的环节从来不是技术。是人的操作习惯,是没及时打的补丁,是图省事复用的密码。漏洞利用的步骤可以写得很清楚,但真实攻击里,每一步都充满变数。你以为锁好了门,窗户可能早就开了。
友情链接