Open bsauce opened 1 year ago
师傅好,
关于你的CVE-2022-2602的研究,我在本地用你的kernel-exploit-factory项目中的代码和程序,进行测试,测试发现你提供的exploit二进制程序能够复现成功(虽然不稳定,但是确实较大概率成功),但是如果是用你的exploit.c在我的本地环境ubuntu20.04中编译出exploit,则一直无法复现成功,最后正常退出,/etc/passwd也没有变化。
我逆向对比了你的exploit和我编译出的exploit,逻辑上应该是完全一致的,除了你的exploit显示是gcc 9.3.0编译的,我的是9.4.0,但个人感觉应该不是这个问题。
另外,在你提供的内核环境下,这个漏洞exploit最初的两个作者在GitHub上公开的exploit代码经我编译后也无法复现成功。
因此,我想请教一下,你有遇到过这样的问题吗?或者你的exploit和GitHub上的exploit.c有什么差异、在编译时有什么特别的操作?能否给我一些指导和建议呢?
打扰了,谢谢!
不同的编译选项也可能影响最后的成功率,exp可能要修改。
不同的编译选项也可能影响最后的成功率,exp可能要修改。
我一般会根据自己编译的内核环境进行调试,可能会修正结构偏移或者修改堆喷策略。
收到,谢谢啦,我再调试一下。
请问为什么我无法 ssh 链接 qemu 虚拟机呢?使用你的环境是 ok 的,是需要什么特殊的内核编译选项吗?我按照你的提示都进行了修改
好像是虚拟机网卡启动不了......哭了
这里的文件系统是根据内核定制的吗??为啥虚拟机里面启动不了网卡呢
@brant-ruan 师傅好,
关于你的CVE-2022-2602的研究,我在本地用你的kernel-exploit-factory项目中的代码和程序,进行测试,测试发现你提供的exploit二进制程序能够复现成功(虽然不稳定,但是确实较大概率成功),但是如果是用你的exploit.c在我的本地环境ubuntu20.04中编译出exploit,则一直无法复现成功,最后正常退出,/etc/passwd也没有变化。
我逆向对比了你的exploit和我编译出的exploit,逻辑上应该是完全一致的,除了你的exploit显示是gcc 9.3.0编译的,我的是9.4.0,但个人感觉应该不是这个问题。
另外,在你提供的内核环境下,这个漏洞exploit最初的两个作者在GitHub上公开的exploit代码经我编译后也无法复现成功。
因此,我想请教一下,你有遇到过这样的问题吗?或者你的exploit和GitHub上的exploit.c有什么差异、在编译时有什么特别的操作?能否给我一些指导和建议呢?
打扰了,谢谢!
请问你最后有解决吗? 我发现似乎是代码的问题,io_uring 的 writev 没有正常进行写入(:动态链接测试直接 crash 掉了,因为 sqe 最后为 null
@brant-ruan 师傅好, 关于你的CVE-2022-2602的研究,我在本地用你的kernel-exploit-factory项目中的代码和程序,进行测试,测试发现你提供的exploit二进制程序能够复现成功(虽然不稳定,但是确实较大概率成功),但是如果是用你的exploit.c在我的本地环境ubuntu20.04中编译出exploit,则一直无法复现成功,最后正常退出,/etc/passwd也没有变化。 我逆向对比了你的exploit和我编译出的exploit,逻辑上应该是完全一致的,除了你的exploit显示是gcc 9.3.0编译的,我的是9.4.0,但个人感觉应该不是这个问题。 另外,在你提供的内核环境下,这个漏洞exploit最初的两个作者在GitHub上公开的exploit代码经我编译后也无法复现成功。 因此,我想请教一下,你有遇到过这样的问题吗?或者你的exploit和GitHub上的exploit.c有什么差异、在编译时有什么特别的操作?能否给我一些指导和建议呢? 打扰了,谢谢!
请问你最后有解决吗? 我发现似乎是代码的问题,io_uring 的 writev 没有正常进行写入(:动态链接测试直接 crash 掉了,因为 sqe 最后为 null
不好意思,我不太记得了...
@brant-ruan
@brant-ruan 师傅好, 关于你的CVE-2022-2602的研究,我在本地用你的kernel-exploit-factory项目中的代码和程序,进行测试,测试发现你提供的exploit二进制程序能够复现成功(虽然不稳定,但是确实较大概率成功),但是如果是用你的exploit.c在我的本地环境ubuntu20.04中编译出exploit,则一直无法复现成功,最后正常退出,/etc/passwd也没有变化。 我逆向对比了你的exploit和我编译出的exploit,逻辑上应该是完全一致的,除了你的exploit显示是gcc 9.3.0编译的,我的是9.4.0,但个人感觉应该不是这个问题。 另外,在你提供的内核环境下,这个漏洞exploit最初的两个作者在GitHub上公开的exploit代码经我编译后也无法复现成功。 因此,我想请教一下,你有遇到过这样的问题吗?或者你的exploit和GitHub上的exploit.c有什么差异、在编译时有什么特别的操作?能否给我一些指导和建议呢? 打扰了,谢谢!
请问你最后有解决吗? 我发现似乎是代码的问题,io_uring 的 writev 没有正常进行写入(:动态链接测试直接 crash 掉了,因为 sqe 最后为 null
不好意思,我不太记得了...
好的,我已经解决了,似乎是 exp 存在问题(:可能是时间原因,目前 exp 中关于 io_uring 部分的代码存在问题。谢谢你的回复
https://bsauce.github.io/2023/06/08/CVE-2022-2602/
【kernel exploit】CVE-2022-2602 UNIX_GC错误释放io_uring注册的file结构-UAF本文主要参考 [漏洞分析] CVE-2022-2602 io_uring UAF内核提权详细解析 并做一些补充。影响版本:Linux Kernel < v6.0.3。v6.0.3已修复。测试版本:Linux-v6.0.2 (v6.0.2 测试失败,v5.18.19测试成功) exploit及测试环境下载地址—https://github.com/bsauce/kernel-exploit-factory编译选项:CONFIG_BINFMT_MISC=y (否则启动VM时报错)在编译时将.config中的CONFIG_E1000和CONFIG_E1000E,变更为=y。参考$ wget https://mirrors.tuna.tsinghua.edu.cn/kernel/v6.x/linux-6.0.2.tar.xz$ tar -xvf linux-6.0.2.tar.xz# KASAN: 设置 make menuconfig 设置