BPF

JIT喷射通过JIT来绕过ASLR(地址随机化)和DEP(数据不可执行)。
至此我们大概明白了JIT的工作原理. 我们注意到JIT会根据我们的输入的eBPF程序在内核中开辟可执行内存并写入翻译后的指令, 那么有没有可能通过特殊的eBPF指令, 向内核注入我们所需的任意指令, 绕过eBPF翻译的限制呢?
至此我们已经自底向上的了解了BPF如何使用, 利用的第一步是熟悉, 接下来会进一步探究BPF虚拟机实现的原理, 为后续利用进行铺垫。
Linux内核为了执行效率,损失了很多安全性。但是在用户空间很难触发内核代码,所以给内核漏洞利用造成了很大的困难。但是BPF使得用户空间拥有了与内核通信和数据共享的能力,所以成为了内核漏洞的高发区。本文以CVE-2017-16995漏洞初步学习了BPF漏洞的利用技巧。若有错误,敬请各位师傅斧正。
bpf系统调用执行一系列与extended Berkeley Packet Filters相关的操作,eBPF与传统的BPF相似,作用为过滤网络包。
近日,360-CERT监测到编号为CVE-2017-16995的Linux内核漏洞攻击代码被发布,及时发布了预警通告并继续跟进。该漏洞最早由Google project zero披露,并公开了相关poc。