这个靶机在2020年在网上出现并有了教程,我拿来练练,发现这个靶机设计的挺有意思的,从这里可以学习到“.git泄露的利用(git log/git clone/git checkout/git diff等)、sqlmap注入、反弹webshell、端口转发”等。
漏洞介绍
Git是一个开源的分布式版本控制系统,在执行git init初始化目录的时候会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等,发布代码的时候如果没有把.git这个目录删除直接发布到服务器上攻击者就可以通过它来恢复源代码。
一、靶机下载地址:
https://www.vulnhub.com/entry/darkhole-2,740/
二、过程
1、扫描
发现靶机的IP:192.168.137.131。
扫描nmap -sC -sV -p- 192.168.137.131
发现了.git、22端口的ssh和80端口的web。
扫描下目录,dirsearch -u http://192.168.137.131
也是提示有.git;
2、.git下载工具
1)使用githack工具,
https://github.com/lijiejie/GitHack
git clone https://github.com/lijiejie/GitHack.git下载下来
按上面的提示,解析.git,将敏感内容下载到本地
python GitHack.py http://192.168.137.131/.git
列下载后的目录,tree 192.168.137.131
查看提交日志,git log
没有发现有修改login.php的提交者,看来GitHack有遗露,
2)换个wget工具,
wget -r http://192.168.137.131/.git后,再 git log
3)或者使用git-dumper工具,先安装:python -m pip install git-dumper,
再下载 git-dump http://192.168.137.131/.git output
发现也是同上git log也是可以发现login.php修改提交的。
来看下login.php的内容,
我们再来看下修改提交前的login.php有什么改动,
3、查看复原前的文件
git checkout a4d9(a4d9为上面图中commit时前4位)
再cat login.php,
复原文件login.php中出现了帐号和密码;文件中还有config/config.php,打开看下,如下,是mysql的数据库名,帐号和密码;
4、登录
打开网页,是个登录页面,用户名是email,看来是上面复原login.php中的帐号[email protected]和密码321;登录下,
5、sqlmap注入
看url,像是可以注入的点,试下,将id=1换成id=NULL,果然页面发生了变化,确认是有注入点存在。
看有前文说这里要cookie的注入,所以先来取cookie,这里用TangGo的Cookie Editor,
获取数据库darkhole_2的表名,如下
获取敏感信息,如下,
6、ssh登录
既然拿到登录用户的账号密码,那可以使用ssh进行登录 ssh [email protected],
登录成功。
发现有3个用户;
查看crontab内容,
发现losy用户cd /opt/web后,已用php启动了web服务localhost:9999。
ps aux查看进程,
那就进入losy目录看下,发现user.txt,里面是flag,
7、webshell
我们再来看下/opt/web的内容,发现只一个index.php文件,打开后发现是一个webshell,
8、端口转发
查看含义,
既然开始转发,尝试下,
9、反弹shell
这个wehshell木马可以工作,我们来反弹shell,并编码下,
先设置好反弹端口4444,nc -lnp 4444 监听,
127.0.0.1:9999/?cmd=后面输入反弹语句,如下,
反弹成功,进入到losy用户下;
查看history,发现密码为gang,
GPT下含义,
利用mysql来执行bash;
用ssh来登录下,ssh [email protected],如下,
输入密码gang登录进来,查下权限,发现有python3,
获取root权限,如下,
发现如下文件,
到这里,就结束了。通过这个学习笔记,搞明白了一点.git泄露的原因以及利用过程,补上这一课。
附上发现的一个超详细的教程,可以看看:《VulnHub-DarkHole_2靶机实战(超详细保姆级教程)-CSDN博客》。
原文始发于微信公众号(MicroPest):.git泄露:darkhole2靶机
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论