投稿文章:利用suid进行提权

2019-04-22 15:16:59 2 6148
首先创建一个普通用户test,是一个普通用户的权限(即最低权限的用户),并利用su切换进test用户,利用id可以查看权限:



利用suid进行提权的话,需要先找到设置了suid的可执行文件,find /usr/bin –perm –u=s
这样通过find命令,搜索/usr/bin目录下,通过参数perm –us=s就可以搜索到/usr/bin目录下所有的设置了suid的文件。如下图,我们发现vim.basic是设置了suid的可执行文件,vim是linux下的编辑器,如果用vim编辑一些文件的话,就可以编辑一些只有root权限才可以编辑的文件,那么我们就可以编辑/etc/paswd,来增加一个我们自己的root权限的账号密码,




/etc/passwd的文件格式为:  用户名:密码:uid:gid:注释:home目录:用户的shell(具体的参考另一个文件)
那么如何生成一个密码呢?用openssl passwd -1 –salt asd 123
-1(是数字,不是L),-salt 来设置盐,盐设置为asd 密码为123,如下图:



这样我们就生成了一个密码为123,盐为asd的密码
接下来,我们编辑/etc/passwd文件,添加一个用户:
Toor用户,密码为刚才生成的盐为asd,密码为123的密码,权限为0(即root权限),注释为test,home目录就写成根目录,shell为/bin/sh,然后我们esc :wq 保存退出,发现没权限,但我们打开文件方式为:vim.basic /etc/passwd,是具有suid权限的,那我们该如何保存退出呢?答案是用强制,即下面的:wq!
如果是普通用户,用vim /etc/passwd来打开文件,用:wq!是无法保存退出的,必须用vim.basic ,这个是绝对有suid权限的(通过find命令证明过。)
如下图,我们用的是普通用户登录(test用户),id后发现是普通用户,然后我们通过python 中的pty进入交互式,然后用su切换用户,切换为我们添加的自己的root权限的用户(toor)
输入密码123,发现正常登录了,再通过id发现是root权限的用户了,实验成功。



这个实验环境即需要用find /usr/bin –perm –u=s 查看vim.basic具有suid权限,如果vim没有suid权限,则这个实验不成功,所以搭建这个实验的环境的时候,首先需要将vim设置为suid权限。即需要执行chmod u+s /usr/bin/vim.basic

关于作者

ZQRichard2篇文章4篇回复

评论2次

要评论?请先  登录  或  注册