在Linux系统中,权限提升(Privilege Escalation)是指通过利用系统的错误配置、漏洞或弱点,从低权限用户提升到更高权限(通常是root)。主要的方法包括SUID提权SUDO提权

SUID提权

SUID(Set User ID)是Linux文件权限的一部分,允许普通用户以文件所有者的身份运行该程序。如果SUID位设置在root拥有的二进制文件上,则普通用户可以以root权限执行该程序。

1. 原理

  • SUID(Set User ID):当可执行文件设置SUID位时,用户执行该文件会以文件所有者的身份运行(如root)。
  • 漏洞触发:若SUID文件存在漏洞或被滥用(如允许执行任意命令),攻击者可借此获取高权限。

2. 利用步骤

枚举SUID文件

find / -perm -4000 -type f 2>/dev/null
# 或更严格匹配(仅root且SUID):
find / -user root -perm -4000 -exec ls -ldb {} \; 2>/dev/null

识别高风险二进制

  • 参考GTFOBins查找已知可提权的SUID程序。
  • 常见高危程序:nmap(旧版)、findvimbashcpmore/less等。

利用示例

  • findfind / -exec "/bin/sh" \;
  • bashbash -p # 若bash有SUID且版本较低
  • nmap交互模式(旧版):
nmap --interactive
!sh
  • cp覆盖敏感文件: 若允许覆盖/etc/passwd/etc/shadow,可添加特权用户。

3. 防御措施

  • 移除不必要的SUID权限:chmod u-s <file>
  • 定期审计系统文件权限。

SUDO提权

SUDO(SuperUser Do)允许普通用户以root权限执行某些命令。攻击者若能执行一些关键命令,可能可以提权。

1. 原理

  • SUDO:允许用户以其他用户(如root)身份执行命令。
  • 漏洞触发:若用户被允许通过sudo执行某些危险命令且无需密码,可能被滥用。

2. 利用步骤

查看Sudo权限

sudo -l # 检查当前用户可执行的命令

/etc/sudoers文件是sudo权限的配置文件,其中储存了一些用户或组可以以root权限使用的命令。

如下图

使用sudo visudo进行编辑

给用户赋予全部root权限

找到root权限root ALL=(ALL:ALL) ALL,在下一行输入” test ALL(ALL:ALL) ALL “,保存后退出,这样即表示用户test可以使用sudo调用root权限执行命令。即此时test用户相当于root

给予用户部分权限

hacker用户就能使用awk命令

利用高风险命令

  • 直接提权
    • sudo susudo -i(若有权限)。
  • awk提权:
    • sudo awk 'BEGIN{system("/bin/bash")}'




3. 防御措施

  • 遵循最小权限原则,仅授予必要命令。
  • 定期审查/etc/sudoers文件。

总结

  • SUID提权:关注文件权限,利用不当的SUID设置。
  • SUDO提权:聚焦用户权限配置,滥用被允许的命令。
  • 防御核心:最小权限原则 + 定期审计。

参考链接https://www.cnblogs.com/gsh23/p/18109524

发表回复

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