利用SUID二进制文件进行提权

admin 2023年12月5日01:14:06评论16 views字数 1513阅读5分2秒阅读模式

利用SUID二进制文件进行提权

SUID权限

SUID(Set UID)权限只允许设置二进制可执行文件。可以让调用者以文件拥有者身份运行该文件,且该权限只在进程运行过程中有效。

假设有一个可执行文件ls,属主为root,并且设置了SUID权限,普通用户执行ls的过程中,就是root权限。

cd

这里以cd为例,给cd赋予SUID权限,cd原先权限为rwx读写执行,赋予SUID权限后为rws,s就是SUID权限。

利用SUID二进制文件进行提权

可以通过以下命令来查找拥有SUID权限的程序。

find / -perm -u=s -type f 2>/dev/null

perm指定权限,-u=s代表SUID权限,type指定文件类型,f表示常规文件。

利用SUID二进制文件进行提权

普通用户在执行cp命令时,cp命令的权限就是root,可以复制/etc/passwd到桌面进行修改,添加root权限账户。

利用SUID二进制文件进行提权

vim修改passwd,因为是添加root权限账户,所以需要先复制root账户到最后一行,在root账户基础上进行修改。第一项为用户名,第二项为密码,每一项之间用“ : ”隔开。详细请参考/etc/passwd文件格式说明。

利用SUID二进制文件进行提权

这里把用户名root改为aaa。密码则用openssl生成。passwd参数代表生成一个密码,-1为md5,-salt指定盐(随意指定),最后跟要加密的值,也就是密码123。

openssl passwd -1 -salt 1×2×3 123

利用SUID二进制文件进行提权

修改成功后,需要把桌面的passwd文件复制回去,替换掉/etc/passwd。

利用SUID二进制文件进行提权

tail查看/etc/passwd,这时就添加了一个aaa用户,权限为root。

利用SUID二进制文件进行提权

切换到aaa用户。

利用SUID二进制文件进行提权

成功!

find

find命令在拥有SUID权限的情况下,也可以用来进行提权。

利用SUID二进制文件进行提权

只需要使用exec参数即可。

利用SUID二进制文件进行提权

find的exec参数用来指定其它命令,便于处理搜到的结果。结果的输出,需要以分号来结束,在bash环境中分号代表代码块结束,有特殊意义,所以这里需要进行转义。

vim

vim在拥有SUID权限的情况下,也可用来进行提权操作。

利用SUID二进制文件进行提权

当vim拥有SUID权限后,意味着任何用户都可以通过vim来编辑只有root才能编辑的文件,例如编辑/etc/sudoers文件(普通用户会被直接拒绝访问),通过修改/etc/sudoers文件可以让别的用户也能执行sudo命令。在sudoers文件中配置普通用户的权限,与root一样,以test为例,添加内容如下:

test    ALL=(ALL)    ALL

利用SUID二进制文件进行提权

vim编辑后保存时用wq!强制保存,vim运行时虽然是root权限,但wq依然会提示只读。

随后sudo bash就会获取一个root的shell。

利用SUID二进制文件进行提权

脚本

除了系统的一些可执行命令,自己写的可执行文件也可添加SUID权限。不论c或者go或者其他语言都可以,这里以c为例。

示例代码如下:

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{
setuid(geteuid());
system("/bin/bash");
return 0;
}

使用gcc进行编译。

先vim编辑shell.c文件,写入代码。

利用SUID二进制文件进行提权

gcc编译shell.c文件输出为shell。

利用SUID二进制文件进行提权

编译后传入目标机,这里放到/bin/aaa目录下,然后添加SUID权限测试。

利用SUID二进制文件进行提权

普通用户执行该文件后,会返回一个root权限的shell。

有很多命令在被添加SUID权限的情况下,都可用来进行提权。

更多相关命令和用法可以参考:https://gtfobins.github.io/

总结

愿大家健康开心。


原文始发于微信公众号(AlertSec):利用SUID二进制文件进行提权

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月5日01:14:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用SUID二进制文件进行提权https://cn-sec.com/archives/2268589.html

发表评论

匿名网友 填写信息