Linux sudo与suid提权
何为suid
可见在权限位置有一个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文件
用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可以执行指定文件的特点提权
2.find
find / -exec command |
find命令自带-exec参数,可以执行命令,若find有suid权限,那么使用exec相当于直接提权到root.
读文件 find /path -exec {} \; |
3.vim
vim有了suid就可以任意文件读取了
同时也可以输入
来获取root shell
4.bash
bash -p 开启一个新shell,suid的话自然是开启root shell |
5.less,more
和vim差不多,任意文件读取,同时也可以输入 !command 进行提权到root
6.exim
exim在特定版本下会有suid提权
下载exp打就完事了
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.