CVE-2023-32233NetFilter权限提升复现
- 漏洞描述
- 环境搭建及复现
- 修复方法
漏洞描述
由研究人员 Patryk Sondej (波兰)和 Piotr Krysiuk(爱尔兰)发现,Linux 内核的 Netfilter 子系统在处理批量请求更新nf_tables 配置信息时,由于处理匿名集的逻辑存在缺陷,存在释放重利用(UAF)漏洞。
-
漏洞原理简述
在 Linux 内核的 nf_tables 子系统中,处理批处理请求时,匿名集(anonymous set)的处理逻辑存在缺陷。具体来说,nft_verdict_init() 函数允许正值作为 hook 判决中的丢弃错误(NF_DROP),导致在 nf_hook_slow() 函数中可能触发双重释放漏洞。 -
利用方式
攻击者可以通过发送特制的批处理请求,破坏 nf_tables 的内部状态,利用释放后使用的漏洞对内核内存进行任意读写操作,从而提升权限。 -
影响范围
受影响版本:Linux 内核版本从 v5.1-rc1 到 v6.3.1 均受此漏洞影响。
不受影响版本:Linux 内核版本低于 v5.1-rc1 或高于 v6.3.1 的系统不受此漏洞影响。
环境搭建及复现
去某大佬分享的地址下载虚拟机
https://pan.baidu.com/s/1yQUrToQTiaDXcsHYVeKeSQ?pwd=8888
首先开启虚拟机,查看内核信息(6.2.0-20),确认存在漏洞
exp地址
下载exp到靶机后进入超级用户模式执行sudo apt install gcc libmnl-dev libnftnl-dev
来安装编译环境
我这里已经安装好了
编译文件成可执行文件exploit
gcc -Wall -o exploit exploit.c -lmnl -lnftnl
普通用户执行./exploit即可提升为root权限
修复方法
除了操作系统方面的防御,还要防止攻击者拿到普通用户的shell。
1、更新操作系统(内核)
2、配置防火墙策略,防止暴露危险服务
3、使用企业版安全产品
4、加强用户和权限管理,最小权限原则
5、用强口令