何为suid

QQ截图20210217145316

可见在权限位置有一个s权限。那么这个s的作用是什么呢?
答案是当其他用户执行该文件时,该文件会以root的身份执行。
这里就涉及到了Effective UID和Real UID以及Saved UID
Effective UID: 程序实际操作时生效的UID
Real UID: 执行该程序的用户的实际UID
Saved UID: 在高权限用户降权后,保留的其原本UID (不展开说)

所以增加了一个s权限,该程序在实际运行时Effective UID就会变为0,即root的UID

sudo

就是能把一个命令视作root来执行,用sudo-l查看可以被sudo的命令

SUID与sudo提权

遍历目录中的suid文件

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

执行该命令,会得到所有suid文件

QQ截图20210217145327

用sudo -l 查看哪些命令能被sudo

可利用于提权的命令

1.nmap
nmap --interactive

使用nmap的udp或tcp syn扫描时,需要用到root权限,所以有些管理员图方便会直接给namp上s权限,而nmap 5.20(使用nmap -v查看nmap版本)之前有一个interactive交互模式(nmap –interactive),在nmap effective uid为0时,可以通过这个模式获得root权限交互式命令行,成功提权

echo "os.execute('/bin/bash')" > ./shell
nmap --script=shell

全版本通杀提权,利用nmap可以执行指定文件的特点提权

2.find
find / -exec command

find命令自带-exec参数,可以执行命令,若find有suid权限,那么使用exec相当于直接提权到root.

读文件 find /path -exec {} \;
3.vim

vim有了suid就可以任意文件读取了

同时也可以输入

img

来获取root shell

4.bash
bash -p  开启一个新shell,suid的话自然是开启root shell
5.less,more

和vim差不多,任意文件读取,同时也可以输入 !command 进行提权到root

6.exim

exim在特定版本下会有suid提权

QQ截图20210217145341

下载exp打就完事了