1. Dirty Pipe漏洞(CVE-2022-0847):本地权限提升
Dirty Pipe漏洞本质上源于Linux内核在处理管道(pipe)时存在的一个逻辑缺陷。该漏洞允许普通用户覆盖只读文件的缓存页,从而修改系统关键文件,例如/etc/passwd。
具体的利用步骤如下:首先,准备一个受影响的内核版本,比如Ubuntu 21.10搭载的5.13.0-30-generic。接着,从GitHub上获取PoC项目CVE-2022-0847-DirtyPipe-Exploit,编译生成可执行文件。然后,备份/etc/passwd,生成一个恶意用户条目,如hacker::0:0::/root:/bin/bash,并使用PoC覆盖该文件。最后,执行su hacker,无需密码,通过id命令确认UID=0,本地权限提升成功。
更进阶的玩法是覆盖SUID程序,比如/bin/bash,然后编译一个反弹Shell程序,覆盖后通过chmod +s设置SUID位,触发执行后即可获取远程Shell。这个思路在多种Ubuntu漏洞利用场景中都非常有效。
2. CVE-2025-32463(sudo权限提升):通过恶意chroot环境加载伪造库
这个漏洞利用的关键在于攻击者需要创建一个恶意的chroot环境。具体操作是:建立woot目录,配置nsswitch.conf(设置passwd: woot1337),复制/etc/group,然后编译一个恶意库libnss_woot1337.so.2,其中包含一个__attribute__((constructor))构造函数,用于启动root shell。
当执行sudo -R woot woot时,sudo会进入woot目录,尝试执行不存在的命令woot。此时glibc会加载恶意库,构造函数以root权限启动shell。需要特别注意的是,攻击者必须拥有本地普通用户权限,且sudo版本在1.9.14至1.9.17之间,默认启用-R选项。
3. Ubuntu用户命名空间绕过:突破AppArmor限制
Ubuntu使用AppArmor限制非特权用户的命名空间创建,但存在几种值得关注的绕过方式。例如,系统默认安装的aa-exec工具允许切换到宽松的AppArmor配置文件(如trinity、chrome),然后执行unshare命令创建无限制命名空间,从而突破防护。另一种方法是利用Busybox shell的AppArmor配置漏洞,启动Busybox shell后执行特定命令,在服务器和桌面版Ubuntu上都能实现权限提升。此外,通过LD_PRELOAD向Nautilus(GNOME文件管理器)等可信进程注入恶意共享库,利用宽松配置生成特权命名空间shell。
这些绕过方式本身并不直接获取root权限,但它们能大幅降低内核漏洞(如内存损坏、竞态条件)的利用门槛。换句话说,它们为后续的深度攻击铺平了道路。
4. 内核漏洞通用查找与利用流程
对于Ubuntu系统,查找和利用内核漏洞通常遵循一个标准流程。首先,使用uname -a获取内核版本,确定是否存在已知漏洞,例如通过Exploit-DB或SecurityFocus进行查询。然后,借助searchsploit工具(Kali Linux预装)检索对应内核版本的漏洞利用代码,例如searchsploit linux kernel 4.15可找到适用于4.10-5.1.17版本的漏洞利用。最后,将Exploit代码复制到目标系统,用gcc编译(如gcc -o exploit 45297.c),执行编译后的文件即可实现权限提升。
防范建议
针对上述漏洞,采取有效的防范措施至关重要。及时更新系统是基础,通过sudo apt update && sudo apt upgrade修复已知漏洞,尤其是内核和sudo等关键组件。同时,要强化权限管理,限制非特权用户对敏感文件(如/etc/passwd、/bin/bash)的写权限,使用chmod调整权限(例如chmod 0444 /etc/passwd)。另外,配置安全工具如AppArmor、SELinux,并用auditd监控敏感文件访问,部署IDS/IPS检测异常行为。最后,坚持最小化软件安装原则,仅安装必要软件包并定期清理,从而有效减少攻击面。
