【权限提升】Linux Kernel ebpf 提权漏洞(CVE-2022-23222)
前言
CVE-2022-23222 Linux Kernel ebpf权限提升漏洞
一、漏洞描述
eBPF(extended Berkeley Packet Filter)是一种可以在 Linux 内核中运行用户编写的程序,而不需要修改内核代码或加载内核模块的技术。简单来说eBPF 让 Linux 内核变得可编程化了。由于内核在执行用户提供的 eBPF 程序前缺乏适当的验证,攻击者可以利用这个漏洞获取 root 权限。该漏洞是由于 Linux 内核的 BPF 验证器存在一个空指针漏洞,没有对*_OR_NULL 指针类型进行限制,允许这些类型进行指针运算。攻击者可
利用该漏洞在获得低权限的情况下,构造恶意数据执行空指针引用攻击,最终获取服务器 root 权限。
二、漏洞影响版本
5.8 ≤ Linux Kernel ≤ 5.16(Linux Kernel 5.10.92,5.15.15,5.16.1 不受影
响)
三、漏洞复现
使用本地Kali进行测试
先检测目标系统是否存在漏洞
–查看系统内核版本–
uname -a
确认在漏洞影响范围内
–查看是否允许低权限用户调用bpf–
cat /proc/sys/kernel/unprivileged_bpf_disabled
值为"0" 表示允许非特权用户调用 bpf ,则可以利用
值为"1" 表示禁止非特权用户调用 bpf 且该值不可再修改,只能重启后修改
值为"2" 表示禁止非特权用户调用 bpf 可以再次修改为 0 或 1
通过如上验证得知存在该漏洞,那就可以直接提权了!!!
下载利用脚本:https://github.com/tr3ee/CVE-2022-23222
直接编译 make 然后运行 ./exploit
如果运行中出现如上所示报错,直接去修改exploit.c文件,将此段代码注释
保存->退出! 重新编译
再次利用,发现提权成功!
四、漏洞修复
升级Linux 内核至最新版
也可通过执行如下命令禁止非 root 用户使用 ebpf 的方式进行临时缓解
sudo sysctl kernel.unprivileged_bpf_disabled=2
参考链接:https://mp.weixin.qq.com/s/QJz9so27ao4rmT1Sbp74KA
相关文章
- [linux]Linux下的log
- 简单实例讲解linux的module模块编译步骤
- Linux查看端口占用
- SUSE linux ,liveUSB制作方法
- linux shell “(())” 双括号运算符使用
- linux 内核的优化
- ubuntu21.04(linux):安装webstorm2021.1
- 举例说,Linux核心名单(两)
- L64.linux命令每日一练 -- 第十章 Linux网络管理命令 -- ifconfig和ifup
- L55.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- mkswap和swapon
- L47.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- users和whoami
- L42.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- groupdel和passwd
- 嵌入式Linux开发,Qt开发界面中,不能满屏显示,四周无法使用,不能从屏有右上角(0,0坐标)开始显示
- 嵌入式Linux开发,Ubuntu下交叉编译内核报错:error while loading shared libraries: /lib/x86_64-linux-gnu/libc++.so:
- 查看linux系统配置 查询Linux配置
- Linux sudo权限绕过漏洞详解
- 74:应急响应-win&linux分析后门&勒索病毒&攻击 ==》暴力破解攻击成功的在4624的eventID里!PChunter可查看非系统的可疑启动项/服务/定时任务,还是很直观的!Linux下gscan也不错,EDR可参考。
- 使用wget批量下载geo数据集的全部文件 linux下载geo数据 geo处理的数据不是下载原始数据 Linux如何下载ftp文件 geo ftp geo ftp下载 geo下载