自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

转载 【课程笔记】南大软件分析课程—16课时完整版

【课程笔记】南大软件分析课程南京大学李樾和谭添老师的软件分析视频课程。推送门:南大课件 南大视频课程 北大课件笔记列表更新中。。。【课程笔记】南大软件分析课程1——课程介绍【课程笔记】南大软件分析课程2——IR【课程笔记】南大软件分析课程3——数据流分析应用【课程笔记】南大软件分析课程4——数据流分析基础(课时5/6)【课程笔记】南大软件分析课程5——过程间分析(课时7)【课程笔记】南大软件分析课程6——指针分析介绍(课时8)【课程笔记】南大软件分析课程7——指针分析基础(课时9/1

2020-05-08 21:51:36 8178 5

原创 【bsauce读论文】2023-USENIX-AlphaEXP:识别Linux内核中的可利用对象

本文提出AlphaEXP(基于KINT [48], Syzkaller [19], Soufflé [28]实现),首先构造知识图谱来表示内核对象、内核功能和用户输入的关系,然后根据给定漏洞探索可能的攻击路径,标记可利用的对象,最后评估攻击路径的可行性,并对可利用的对象进行分类。

2024-05-22 16:30:06 805

原创 【bsauce读论文】2023-CCS-RetSpill:内核栈内存ROP布置与提权技术

防护机制:SMEP[47] / SMAP[12] / KPTI[64] / NX-physmap[31] / CR Pinning[63] / STATIC_USERMODE_HELPER[35] / RKP[56](不允许直接修改进程凭证)/ pt-rand[14](不允许直接修改内核页表来进行数据流攻击)/ RANDSTACK[53](随机化栈布局,防止利用未初始化使用漏洞) / STACK CANARY。漏洞利用。

2024-05-21 20:22:19 676

原创 【bsauce读论文】2024-NDSS-SyzBridge:Linux发行版内核漏洞可利用性评估

作者调研了43个Linux发行版和230个漏洞,在发行版内核上复现上游PoC,在root权限下成功复现19.1%,非root权限下只成功复现0.9%。

2024-05-20 11:18:00 296

原创 【bsauce读论文】2024-NDSS-K-LEAK:Linux内核infoleak利用自动生成

K-LEAK工具是一种基于图的数据流分析框架,针对Linux内核中的内存漏洞(UAF/OOB),辅助生成infoleak的利用,绕过内核KASLR防护。本文。

2024-05-18 08:49:05 756

原创 【kernel exploit】CVE-2024-1086 nftables UAF漏洞-Dirty Pagedirectory利用方法

本文的利用方法参考了,改进该方法后用于提权,并引入了一些实用的利用技巧(例如TLB flushing)。基于Dirty Pagedirectory技术(页表混淆),从用户层实施内核空间镜像攻击(KSMA脏页目录技术能够对物理内存进行无限制、稳定的读写。还能通过设置权限flag来绕过权限检查,这样就能写入只读页面,例如覆写。本节以 PUD+PMD方法来阐释原理,POC中采用的是PMD+PTE策略。总体思路:利用Double-Free等漏洞将PUD和PMD分配到同一地址。

2024-05-10 15:23:10 5484

翻译 Dirty Pagetable-脏页表:一种新的内核漏洞利用技术

介绍:位于ARM Mali GPU驱动中的 file UAF 漏洞,影响Android 12 和 Android 13。漏洞原因如下。...//<------ 创建 file 对象if (!...//<------ 获取未使用的 fdret = fd;//<------ 将 file 对象和 fd 关联起来...//<------ 进入本分支return 0;//<------ 释放 file 对象return ret;可见,调用将file对象与 fd 关联起来。通过。

2024-04-25 19:48:54 164

原创 【kernel exploit】CVE-2022-2602 UNIX_GC错误释放io_uring注册的file结构-UAF

io_uring组件中有个功能 `IORING_REGISTER_FILES`,可以将文件放入 io_uring 的 `sock->receive_queue` 队列中。而Linux的垃圾回收机制GC(只处理 io_uring 和 sock 文件的飞行计数)可能会将io_uring中注册的文件当做垃圾释放,io_uring 下次使用该文件时(利用writev写文件,对应`IORING_OP_WRITEV`功能)触发UAF。可通过userfaultfd触发该竞争漏洞。

2023-06-07 22:18:26 904

原创 【bsauce读论文】2023-S&P-内核Use-After-Cleanup漏洞挖掘与利用

UAC漏洞介绍:Use-After-Cleanup (UAC)漏洞类似UAF,本文主要检测Linux内核中UAC漏洞。UAC基本原理参见图Fig-1。首先,UAC漏洞和系统中特定的设备(device)的卸载(例如一个USB设备被用户拔出)相关,当一个特定的设备释放后,原来和这个设备相关的内存对象应该就不再有效了。

2023-05-23 16:23:45 1058 1

原创 【漏洞分析】CVE-2021-0920 Linux内核垃圾回收机制中的竞争UAF漏洞

CVE-2021-0920 是由于 `SCM_RIGHTS` 的垃圾回收系统(Garbage Collection)中的竞争条件而导致的UAF。

2023-05-10 22:19:21 758

原创 【bsauce读论文】PSPRAY-基于时序侧信道的Linux内核堆利用技术

通过时序侧信道来区分SLUB内部的分配路径,间接探知slab的分配状态(判断是否是从empty freelist分配到的内存),最后根据此信息来增大堆漏洞利用的稳定性(避免利用OOB时漏洞对象和目标对象分配不相邻,利用UAF时漏洞对象和目标对象分配不重叠)。

2023-04-16 21:20:40 460

原创 【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 881

原创 【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 1419 1

原创 【Exploit trick】利用poll_list对象构造kmalloc-32任意释放 (corCTF 2022-CoRJail)

CoRJail介绍:内核利用+docker逃逸,漏洞是 off-by-one,docker容器含有定制的seccomp过滤。本方法是利用poll_list对象来构造任意释放。环境限制:CoRJail 运行在 custom Debian Bullseye image (简称CoROS)上的 docker 容器中,作者修改了来阻止msgget()/msgsnd()/msgrcv()调用,但是允许调用add_key()/keyctl(),容器中可以访问,作者定制的 seccomp 文件位于here。需自行编译。

2022-11-11 13:53:33 1063

原创 【Exploit trick】针对 cred 结构的 cross cache 利用(corCTF 2022-cache-of-castaways)

特殊cache(漏洞对象大小为512字节)中的6字节堆溢出,可以分配 `50*8` 个漏洞对象。构造 `cross-cache` 溢出,利用漏洞对象篡改相邻的 `cred` 对象。

2022-11-07 16:00:26 1386

原创 【kernel exploit】CVE-2022-32250 nftables错误链表操作导致UAF写的漏洞利用

`nftables` 模块的 `net/netfilter/nf_tables_api.c` 采用 `NFT_MSG_NEWSET` 功能来添加 `nft_set` 时,处理 `lookup` 和 `dynset` expression 时,由于错误的 `NFT_EXPR_STATEFUL` 检查,`nft_expr` 对象释放后仍位于`nft_set->binding` 链表中,新加入 `nft_expr` 时导致**UAF写**(触发漏洞需要 `CAP_NET_ADMIN` 权限)。UAF写会往 `km

2022-11-03 21:44:15 1490

原创 【kernel exploit】CVE-2022-2588 Double-free 漏洞 DirtyCred 利用

由于将 `route4_filter` 对象从链表中删除和释放时的检查条件不一致,导致该对象被释放后仍存于链表中,后面可以触发 **Double-Free**。需要 `User Namespaces` 才能触发。采用 DirtCred 方法进行提权。

2022-10-21 16:33:39 1244

原创 【kernel exploit】CVE-2021-4154 错误释放任意file对象-DirtyCred利用

CVE-2021-4154 DirtyCred 利用方法

2022-10-17 12:14:56 862

原创 【bsauce读论文】2022-CCS-DirtyCred: Escalating Privilege in Linux Kernel

简介:本文灵感来自 CVE-2022-0847 DirtyPipe漏洞,不需要绕过现有的防护机制就能成功提权,但问题是只要该漏洞被修补后,就无法再利用,并不通用。所以本文提出了 DirtyCred,一种新的通用漏洞利用方法,不用依赖Linux的pipeline机制,只需利用堆内存破坏类型的漏洞,来交换非特权和特权内核凭证(cred/file对象),就能达到和DirtyPipe类似的利用效果。本方法不仅可以提权,还能进行容器逃逸。

2022-10-12 16:33:07 1672

原创 【kernel exploit】CVE-2022-34918 nftables 堆溢出漏洞利用(list_head任意写)

CVE-2022-34918 nftable堆溢出漏洞利用(list_head任意写)

2022-07-26 20:24:17 2037

原创 【kernel exploit】CVE-2022-1015 nftables 栈溢出漏洞分析与利用

CVE-2022-1015 内核nftables 栈溢出

2022-07-16 19:47:20 2673

原创 syzlang语法编写案例学习 —— Looking for Remote Code Execution bugs in the Linux kernel

syzlang 模板编写

2022-07-11 08:22:10 1394 2

原创 【kernel exploit】CVE-2021-41073 内核类型混淆漏洞利用分析

CVE-2021-41073

2022-07-10 09:19:33 1101

原创 syzkaller 源码阅读笔记1(syz-extract & syz-sysgen)

功能总结:编译系统调用模板的原理,可以理解成syzkaller实现了一种描述系统调用的小型的编程语言。syz-extract :根据 syzlang 文件从内核源文件中提取出使用的对应的宏、系统调用号等的值,生成 .const 文件(例如,xxx.txt.const)。syz-sysgen :通过 syzlang 文件与 .const 文件进行语法分析与语义分析,生成抽象语法树,最终生成供 syzkaller 使用的 golang 代码,分为如下四个步骤:assignSyscallNumbers:

2022-05-15 22:11:09 1559

原创 syzkaller 源码阅读笔记2(syz-manager)

1. 介绍syz-manager 功能:主要负责各种工作的启动(HTTP、RPC、dashboard等等)、调用fuzz以及repro的生成。fuzz命令:$ ./syz-manager -config=my.cfg示例qemu.cfg:syzkaller\pkg\mgrconfig\testdata 目录下{ "target": "linux/amd64", "http": "myhost.com:56741", // 显示正在运行的 syz-manager 进程信息的URL "

2022-05-15 20:48:08 1263

原创 syzkaller 源码阅读笔记3(syz-fuzzer)

syz-fuzzer 功能:进行 fuzzing 的主程序,根据文件系统/sys/kernel/debug/kcov获取内核代码覆盖率,并且生成新的变异数据,然后将输入传给 syz-executor。代码总结:见 main() 函数。1. main()位置:syz-fuzzer/fuzzer.go: main()说明:[1] —— RPC远程调用 -> syz-manager/rpc.go:Check() -> machineChecked() -> loadCorpus()

2022-05-15 20:47:30 1907 1

原创 【bsauce读论文】Vetting Imbalance Reference Counting in Linux kernel with Symbolic Execution

1.简介目标:挖掘错误使用引用计数(reference counter)的漏洞。挑战:可扩展性;独特的内核约定(不统一的引用计数管理,eg,external vs. internal reference counter)需要进行 path-sensitive analysis,检查可行的路径上,refcount递增递减是否匹配reference的增加与移除;Linux内核中使用refcount时有特殊的约定,有些是良性的,并不会违反refcount的一致性原则,可能会导致误报,例如 interna

2022-05-04 22:37:02 1307

原创 【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 1843

原创 CVE-2022-0185 价值$3w的 File System Context 内核整数溢出漏洞利用分析

本漏洞作者在kctf环境上成功完成了提权和逃逸,并获得了 google kCTF vulnerability reward program 项目奖励的 31,337 美金的奖励(该项目对能从有nsjail 沙箱的Linux内核提权,奖励31,337 到 91,337 美元,由于syzbot平台上有人比作者早6天先发现了这个漏洞,作者并非首次发现该漏洞,只是完成了kctf提权,便获得了最低奖金)。影响版本:Linux-v5.1~v5.16.2。5.1-rc1 引入漏洞,Linux-v5.16.2已修补 ,由

2022-04-11 21:45:26 1606 1

原创 slab-quarantine-针对内核UAF利用的堆隔离机制

介绍:该保护机制的全称是Linux Kernel Heap Quarantine——SLAB_QUARANTINE,主要针对内核UAF利用。UAF利用:利用堆喷来控制victim对象,原理是kmalloc()总能分配得到最近释放的堆块。SLAB_QUARANTINE原理:一是把将要释放的堆块暂时放入隔离队列,等待被真正释放,这样堆喷时就不能立刻获得该堆块了;二是采取quarantine randomization 隔离随机化机制,当隔离区增大后,随机选取batch(堆隔离采用batch来存储对象)随机释

2021-10-18 10:53:38 2016

原创 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 1772 1

原创 【Exploit trick】利用CVE-2021-26708 绕过LKRG缓解机制

LKRG source code绕过LKRG总结:构造ROP链给两个函数打patch,p_check_integrity()(负责检查内核完整性)和p_cmp_creds()(负责检查进程凭证)。补丁程序为0x48 0x31 0xc0 0xc3,也就是xor rax, rax ; ret或return 0,打完补丁后提权即可。打补丁函数采用void *text_poke(void *addr, const void *opcode, size_t len),kprobes中也用到了该函数。1. 回顾CV

2021-10-18 09:21:43 614

原创 【kernel exploit】CVE-2016-9793 错误处理负值导致访问用户空间

影响版本:Linux v4.8.14 以前。v4.8.14已修补,v4.8.13未修补。 7.8分。测试版本:Linux-4.8.13 exploit及测试环境下载地址—https://github.com/bsauce/kernel-exploit-factory编译选项: CONFIG_SLAB=yGeneral setup —> Choose SLAB allocator (SLUB (Unqueued Allocator)) —> SLAB在编译时将.config中的C

2021-09-07 18:12:03 707

原创 【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 1295

原创 【kernel exploit】CVE-2018-18955 用户命名空间逻辑错误

影响版本:Linux 4.15.x~4.19.2 4.19.2已修补,4.19.1未修补。 7.0分。测试版本:Linux-4.19.1 exploit及测试环境下载地址—https://github.com/bsauce/kernel-exploit-factory编译选项:CONFIG_USER_NS CONFIG_SLAB=yGeneral setup —> Choose SLAB allocator (SLUB (Unqueued Allocator)) —> SL

2021-07-09 13:19:44 952

原创 【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 1196 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 1255

原创 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 2759

原创 【kernel exploit】CVE-2017-1000112 UDP报文处理不一致导致堆溢出

影响版本:<=Linux 4.12.6 v4.12.7已修补。 7.0分。由syzkaller发现。测试版本:Linux-4.12.6 exploit及测试环境下载地址—https://github.com/bsauce/kernel-exploit-factory编译选项: CONFIG_SLAB=yGeneral setup —> Choose SLAB allocator (SLUB (Unqueued Allocator)) —> SLAB在编译时将.co

2021-06-18 17:22:34 770 1

原创 【kernel exploit】BPF漏洞挖掘与CVE-2020-27194 整数溢出漏洞

影响版本:5.8.x 内核分支,v5.8.15 以及更低的版本。该分支的发行版:Fedora 33 、Ubuntu 20.10。编译选项:CONFIG_BPF_SYSCALL。漏洞描述:eBPF验证程序中进行or操作时,scalar32_min_max_or()函数将64位的值赋值到32位的变量上,导致整数截断,进而错误计算了寄存器的范围,从而绕过bpf的检查,导致越界读写。补丁:patch scalar32_min_max_or()函数中对32位和64位的情况分开处理,防止整数截断。测试版本:Li

2021-06-11 12:33:59 693 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除