漏洞利用
漏洞利用 是什么?
漏洞利用利用某个漏洞、引发代码执行、权限提升或信息泄露等非预期行为的代码、数据或技术。
漏洞利用是漏洞的实际实现——将一个理论性缺陷转化为可工作攻击的具体方法。它可以是简短脚本、恶意文档、精心构造的网络包,或者多阶段复合利用链。
结构与分类
漏洞利用按目的可分为远程代码执行、本地权限提升、拒绝服务、信息泄露;按目标可分为内核、浏览器、IoT 固件、Web 应用;按成熟度可分为概念验证(PoC)、可用版、武器化、实际利用。内存破坏型利用通常将一个劫持控制流的原语与一段载荷相结合——载荷往往是 shellcode,或由现有代码拼接而成的 ROP(返回导向编程)链。由于在加固目标上仅靠单个漏洞实现可靠利用如今已十分罕见,攻击者会构建利用链:例如先用浏览器渲染器漏洞泄露内存以击败 ASLR,再进行沙箱逃逸,最后完成内核权限提升。
真实案例
EternalBlue(CVE-2017-0144)利用了 SMBv1 缺陷,推动了 2017 年的 WannaCry 和 NotPetya 大规模爆发。Log4Shell(CVE-2021-44228,CVSS 10.0)于 2021 年 12 月披露,只要让存在漏洞的 Log4j 实例记录一段攻击者控制的 ${jndi:...} 字符串,未认证的攻击者即可触发远程代码执行,是史上被利用最广的漏洞之一。
缓解与防御用途
缓解机制——DEP/NX、ASLR、栈金丝雀(canary)、CFG/CET 以及指针认证——会提高将漏洞转化为代码执行的成本。防御者研究公开利用以及 Exploit-DB、Metasploit 等资源,用于验证补丁、在渗透测试中模拟攻击、编写检测签名并对修复排序(CISA 的已知被利用漏洞 KEV 目录标注了正在被实际利用的漏洞)。
flowchart LR A[漏洞<br/>如缓冲区溢出] --> B[触发<br/>构造输入] B --> C[控制原语<br/>覆写返回地址/指针] C --> D[击败缓解措施<br/>信息泄露绕过 ASLR] D --> E[执行载荷<br/>shellcode / ROP 链] E --> F[目标<br/>RCE·提权·窃取数据] D -.->|下一阶段| G[沙箱逃逸/<br/>内核利用] G --> F
● 示例
- 01
利用 EternalBlue(CVE-2017-0144)的 Metasploit 模块。
- 02
利用 JavaScript 引擎漏洞执行 shellcode 的恶意 PDF。
● 常见问题
漏洞利用 是什么?
利用某个漏洞、引发代码执行、权限提升或信息泄露等非预期行为的代码、数据或技术。 它属于网络安全的 漏洞 分类。
漏洞利用 是什么意思?
利用某个漏洞、引发代码执行、权限提升或信息泄露等非预期行为的代码、数据或技术。
如何防御 漏洞利用?
针对 漏洞利用 的防御通常结合技术控制与运营实践,详见上方完整定义。
漏洞利用 还有哪些其他名称?
常见的别称包括: 利用代码。