内核
文章平均质量分 94
bsauce
github:https://github.com/bsauce
展开
-
【kernel exploit】CVE-2022-25636 nftables OOB 写堆指针漏洞利用
`nf_table` 模块的 `net/netfilter/nf_dup_netdev.c`中的 [nft_fwd_dup_netdev_offload()](https://elixir.bootlin.com/linux/v5.16.11/source/net/netfilter/nf_dup_netdev.c#L67) 函数由于计算分配空间与实际初始化时判断条件不一致,存在**OOB write**(系统必须支持包处理卸载-Network Interface Cards (NICs),但是现实中很少见原创 2022-12-13 21:53:07 · 951 阅读 · 0 评论 -
【kernel exploit】CVE-2022-2639 openvswitch模块kmalloc-0x10000堆溢出利用(pipe_buffer任意文件写技术)
`openvswitch` 内核模块中,reserve_sfa_size() 函数存在整数溢出导致 **kmalloc-0x10000 堆溢出写**,需要利用页喷射构造 cross-cache 溢出。本文基于 `pipe-primitive` 来篡改任意文件,所以不需要绕过 KASLR/SMEP/SMAP/KPTI 保护机制,跨版本不需要适配就能完成利用。**先创建pipe并splice到只读文件`/usr/bin/mount`,堆喷伪造 `pipe_buffer->flags = PIPE_BUF_FLA原创 2022-11-24 11:57:04 · 1510 阅读 · 1 评论 -
【kernel exploit】CVE-2021-4154 错误释放任意file对象-DirtyCred利用
CVE-2021-4154 DirtyCred 利用方法原创 2022-10-17 12:14:56 · 900 阅读 · 0 评论 -
【kernel exploit】CVE-2021-41073 内核类型混淆漏洞利用分析
CVE-2021-41073原创 2022-07-10 09:19:33 · 1175 阅读 · 0 评论 -
【bsauce读论文】 Playing for K(H)eaps: Understanding and Improving Linux Kernel Exploit Reliability
1. 简介主要内容:分析现有的 exploitation stabilization 技术,回答以下问题:(1)野外最常用的利用稳定技术是什么?(2)漏洞专家对这些技术的观点是什么,是否正确?(3)利用稳定技术有效或无效的原因是什么?(4)如何提升内核利用的可靠性? 作者最后提出了名为 Context Conservation 的新技术,来提升UAF/DF 漏洞利用的稳定性,实验结果表明,稳定性平均提升了14.87%;如果和现有的利用稳定技术相结合,稳定性平均提升 125.53%。实验过程:采访了11原创 2022-05-03 12:51:11 · 1856 阅读 · 0 评论 -
Linux内核中利用msg_msg结构实现任意地址读写
文章首发于安全客:Linux内核中利用msg_msg结构实现任意地址读写题目及exp下载 —— https://github.com/bsauce/CTF/tree/master/corCTF 2021介绍:本文示例是来自corCTF 2021中 的两个内核题,由 BitsByWill 和 D3v17 所出。针对UAF漏洞,漏洞对象从kmalloc-64到kmalloc-4096,都能利用 msg_msg 结构实现任意写。本驱动是基于NetFilter所写,有两个模式,简单模式(对应题目Fire_of_原创 2021-10-18 09:50:54 · 1800 阅读 · 1 评论 -
【kernel exploit】CVE-2018-5333 空指针引用漏洞
影响版本:Linux 4.14.14以前。 5.5分。4.14.13未修补,4.14.14已修补。测试版本:Linux-4.14.13 exploit及测试环境下载地址—https://github.com/bsauce/kernel-exploit-factory编译选项:CONFIG_RDS=y CONFIG_DEBUG_INFO=y CONFIG_SLAB=yGeneral setup —> Choose SLAB allocator (SLUB (Unqueued Allo原创 2021-07-27 20:48:36 · 1340 阅读 · 0 评论 -
【kernel exploit】CVE-2019-8956 sctp_sendmsg()空指针引用漏洞
【kernel exploit】CVE-2019-8956 sctp_sendmsg()空指针引用漏洞影响版本:Linux-4.20.8以前(v4.20.8已修补) 4.19.21以前 7.8分。测试版本:Linux-4.20.7 exploit及测试环境下载地址—https://github.com/bsauce/kernel-exploit-factory编译选项: CONFIG_IP_SCTP=y CONFIG_SLAB=yGeneral setup —> Choose SLA原创 2021-07-07 21:28:50 · 1247 阅读 · 1 评论 -
【kernel exploit】CVE-2019-9213 逻辑漏洞绕过 mmap_min_addr 限制
影响版本:Linux-4.20.14以前(v4.20.14已修补) 5.5分。测试版本:Linux-4.20.7 exploit及测试环境下载地址—https://github.com/bsauce/kernel-exploit-factory编译选项: CONFIG_SLAB=yGeneral setup —> Choose SLAB allocator (SLUB (Unqueued Allocator)) —> SLAB在编译时将.config中的CONFIG_E1000和原创 2021-07-07 21:26:45 · 1302 阅读 · 0 评论 -
kernel exploit 有用的结构体
一、可用于 Leak/AAR/AAW/RIP劫持的结构体说明目前缺少kmalloc-8、kmalloc-16、kmalloc-64、kmalloc-512结构体。1. shm_file_datasize: 0x20 kmalloc-32内核基址:可泄露。其ns、vm_ops指针可以泄露heap:可泄露。file指向堆区域stack:不能泄露劫持RIP:不能产生:调用shmat()映射共享内存释放:shmctl() ??备注:尝试过重写vm_ops,但是没发现调用fake_vtable函.原创 2021-06-22 18:17:42 · 2783 阅读 · 0 评论 -
【kernel exploit】CVE-2020-8835:eBPF verifier 整数截断导致越界读写
影响版本:v5.4.7 - v5.5.0 以及更新的版本,如5.6。编译选项:CONFIG_BPF_SYSCALL,config所有带BPF字样的。漏洞描述:在Linux Kernel commit(581738a681b6)中引入,验证BPF_JMP32指令时,kernel/bpf/verifier.c 没有正确将64位值转换为32位(直接取低32位),错误计算了bpf_reg_state寄存器状态中的寄存器值范围,使得BPF代码验证阶段和实际执行阶段不一致,导致越界读写。补丁:patch 去掉 _原创 2021-06-09 11:37:59 · 1744 阅读 · 3 评论 -
RCU机制学习
参考:RCU机制API调用:static inline void rcu_read_lock(void) //读者进入临界区 rcu_dereference(p) //读者用于获取共享资源的内存区指针 static inline void rcu_read_unlock(void) //读者退出临界区 rcu_assign_pointer(p, v) //用新指针更新老指针 void synchronize_rcu(void) //等待之前的读者完成读操作一、RCU简介简转载 2021-03-15 11:33:52 · 2823 阅读 · 0 评论 -
Linux的file、socket、任务调度函数介绍
说明:调试 CVE-2017-11176 之前需要先学习本文,以对Linux相关知识有个了解。调试分析可参读【kernel exploit】CVE-2017-11176 竞态Double-Free漏洞调试一、文件file与socket介绍1. 文件描述符-fd、文件对象-struct file、文件描述表-fdtable(映射fd和file结构体) 及其关系在Linux中,“一切都是文件”,有七种文件:常规、目录、链接、字设备、块设备、fifo和socket,它们都用文件描述符来表示。三者的关系是,原创 2021-02-21 16:54:59 · 1009 阅读 · 0 评论 -
【linux内核调试】内核调试方法对比
一、调试简介本文主要实践一下linux内核调试方式,并进行比较。内核调试方式在这篇blog中讲解的非常详细,本文只介绍几种动态的调试方法。1.ftraceLinux当前版本中, 功能最强大的调试、跟踪手段。其最基本的功能是提供了动态和静态探测点,用于探测内核中指定位置上的相关信息。静态探测点:是在内核代码中调用 ftrace 提供的相应接口实现,称之为静态是因为,是在内核代码中写死的,静态...原创 2019-11-17 22:01:17 · 3941 阅读 · 0 评论 -
【linux内核调试】SystemTap使用技巧
SystemTap配置、内核调试方法对比请参考【linux内核调试】内核调试方法对比1.SystemTap使用技巧(1)定位函数位置——-l定位内核系统调用函数在哪个文件上,以往是用source insight或者grep找:$ grep -nr 'SYSCALL_DEFINE3(open' ./ ./fs/compat.c:1075:COMPAT_SYSCALL_DEFINE3(ope...原创 2019-11-17 21:24:02 · 1763 阅读 · 0 评论 -
【Linux内核调试】使用Ftrace来Hook linux内核函数
目标:hook几个Linux内核函数调用,如打开文件和启动进程,并利用它来启用系统活动监控并抢先阻止可疑进程。一、方案比较1. 使用Linux安全API方法:内核代码的关键点包含安全函数调用,这些调用可能触发安全模块安装的回调,该模块可以分析特定操作的上下文,并决定是允许还是禁止它。限制:安全模块无法动态加载,所以需要重新编译内核。2. 修改系统调用表方法:所有Linux系统调用处理程...原创 2019-11-14 18:50:33 · 1527 阅读 · 0 评论 -
linux双机调试环境配置
查看内核版本: $ uname -sr一、选择调试的linux kernel版本注意:选择kernel版本时,既要能下载到image和header二进制文件,也要下载符号文件vmlinux和source code。搜索命令:搜索linux内核版本 apt-cache search linux-image | grep linux-image-4.10.0 |grep generic搜索...原创 2019-10-08 11:10:41 · 959 阅读 · 0 评论 -
linux内核漏洞利用初探(2):demo-null_dereference
1. NULL Dereference(1)介绍古老的Linux NULL pointer dereference exploit,映射0地址分配shellcode运行(2)漏洞代码#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include &l...原创 2019-09-05 11:13:22 · 1327 阅读 · 0 评论