Ubuntu系统漏洞利用概述
Ubuntu作为主流Linux发行版,其漏洞利用通常围绕内核漏洞(如Dirty Pipe、CVE-2025-32463)、权限绕过机制(如用户命名空间绕过)或配置缺陷展开。攻击者通过本地或远程方式,利用这些漏洞突破系统权限限制,获取root权限或控制系统。以下是具体漏洞的利用方式及原理:
Dirty Pipe漏洞源于Linux内核管道(pipe)处理逻辑的缺陷,允许普通用户覆盖只读文件的缓存页,进而修改系统关键文件(如/etc/passwd
)。
利用步骤:
CVE-2022-0847-DirtyPipe-Exploit
项目,编译生成可执行文件。/etc/passwd
,生成恶意用户条目(如hacker::0:0::/root:/bin/bash
),使用PoC覆盖/etc/passwd
。su hacker
(无需密码),通过id
命令确认UID=0(root权限)。/bin/bash
),编译反弹Shell程序并覆盖,通过chmod +s
设置SUID位后触发,获取远程Shell。该漏洞源于sudo的-R
(–chroot)选项未验证目录合法性,结合glibc NSS(Name Service Switch)机制缺陷,允许攻击者通过恶意构造的chroot环境加载伪造动态库,以root权限执行代码。
利用步骤:
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。-R
选项)。Ubuntu通过AppArmor限制非特权用户的命名空间创建,但存在三个关键绕过方式:
aa-exec
允许切换到宽松AppArmor配置文件(如trinity
、chrome
),攻击者可执行unshare
命令创建无限制命名空间,突破防护。对于Ubuntu系统,内核漏洞的利用通常遵循以下步骤:
uname -a
获取内核版本,确定是否存在已知漏洞(如通过Exploit-DB、SecurityFocus查询)。searchsploit
工具(Kali Linux预装)检索对应内核版本的漏洞利用代码,例如searchsploit linux kernel 4.15
可找到适用于4.10-5.1.17版本的漏洞利用。gcc
编译(如gcc -o exploit 45297.c
),执行编译后的文件实现提权。sudo apt update && sudo apt upgrade
修复已知漏洞,尤其是内核和sudo等关键组件。/etc/passwd
、/bin/bash
)的写权限,使用chmod
调整权限(如chmod 0444 /etc/passwd
)。auditd
监控敏感文件访问,部署IDS/IPS检测异常行为。