靶機詳情
靶機地址:10.10.11.106
kali地址:10.10.16.4
初始偵察與滲透
-
確認kali與靶機之間可以ping通
-
使用nmap進行偵查掃描
nmap -sT --min-rate 1000 -p- 10.10.11.106 #以TCP協議,基於當前網路情況,以最低1000的速率進行該IP的全部埠
nmap -sT -sC -sV -p 80,135,445,5985 10.10.11.106 #詳細資訊掃描:指定以TCP協議、以預設指令碼進行掃描、探測各服務的版本
nmap -sU --top-ports 20 10.10.11.106 #指定UDP協議掃描常用的20個UDP埠
nmap --script=vuln -p 80,135,445,5985 10.10.11.106 #漏洞指令碼掃描
-
先看一下80埠,在瀏覽器中進行訪問
存在登入框,根據之前在對埠進行掃描的時候,有一個提示
猜測此處登入的使用者名稱為admin,可以進行弱口令猜測,也可以直接進行簡單的爆破
nmap --script=http-brute -p 80 10.10.11.106
這裡存在弱口令admin/admin
在頁面的最下面看到了一個域名:driver.htb,先將這個域名新增到host檔案中,然後檢視該網站是否存在利用點
、
提示檔案共享以及檔案上傳,根據埠掃描結果,檢視以下135埠以及445埠的共享能不能訪問
使用nxc列出所有共享檔案,提示有互動,但是沒有許可權訪問,135埠也是沒有許可權,這裡也是有必要使用enum4linux-ng進行列舉
enum4linux-ng沒有列舉出任何有用的資訊,回到瀏覽器中檔案上傳的功能點
修改反彈shell中的IP地址為10.10.16.4
修改完成後進行上傳,然後抓取資料包將認證或者鑑權的內容複製下來,用於目錄爆破
Authorization: Basic YWRtaW46YWRtaW4=
使用feroxbuster進行目錄爆破,只爆破php目錄,目的為了找到剛剛上傳的shell檔案,並且要加上Head內容
feroxbuster -u http://driver.htb/ -x php -H "Authorization: Basic YWRtaW46YWRtaW4=" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
未發現有用的目錄,可以嘗試使用其他的字典進行爆破,這裡就不繼續了
攻擊面分析
內網認證機制(關注SMB):非域環境下,一般是NTLM加密,這套加密體系早期叫Lm Line Manager,安全性非常低,由於它使用簡單的雜湊,不包含鹽值,並將密碼分割成七個字元的塊,接著分別雜湊,這樣使得它非常容易被暴力破解。在之後是NTLM V1版本,它比LM有更好的安全性,但仍可被容易的破解,特別是當攻擊者能夠捕獲到網路中的認證流量時。當前廣泛使用的版本時V2版本,進一步增強安全性,引入客戶端和伺服器的挑戰響應,以及在雜湊過程中使用MD5,這使得它比前兩者更難破解,但在某些條件下,特別是使用弱密碼時,還是有可能破解。
內網協議:內網中可以用DNS解析主機域名到IP,但內網不一定一直有DNS,即使企業內網也一樣。一般內網中沒有DNS的時候,解析協議就會降級為netbios或者時LLMN2本地鏈路多播名稱協議,這兩種是廣播協議,SMB就是使用這種降級協議的。
SMB本身服務訊息塊:它是一種在網路上用於檔案共享、列印服務、還有其他網路通訊的應用層協議。SMB協議是計算機能夠在區域網內訪問檔案就是共享。
因為當前的機器探測到不是一個域環境,推測使用的是NTLM。
此時根據內網協議可以知道當內網中沒有DNS的時候協議會降級,會廣播,有廣播那麼就可以利用嗅探攻擊
工具:Responder
responder可以對接收到的NTLM認證嘗試進行中間人攻擊,透過像請求者傳送偽造的NTLM挑戰來獲得NTLM響應,這個響應就包含了加密後的使用者憑據的雜湊值,Responder不直接解密這些值,而是採集這些資料然後透過離線破解。
SMB共享scf檔案攻擊
當前需要產生NTLM的認證,並且要讓協議降級到Netbios或者本地鏈路多播名稱解析這種偏低階的協議。相對於DNS協議來說,它就是低階的協議,滿足產生認證同時協議降級。
基於當前靶機的web應用場景,上傳的檔案是儲存到檔案共享中的,並且445SMB是有服務的,只是沒有訪問許可權。利用scf構造一個可以上傳的payload,這個payload裡面觸發某種訪問,而這種訪問如果不存在,則協議降級,這裡就會有認證。如果這個認證能夠讓我們捕捉到NTLM的雜湊,那麼就可以進行破解
-
使用responder進行監聽
-
構造scf檔案,然後上傳
-
上傳之後會發現responder監聽有捕獲到認證雜湊,可以看到使用者名稱是tony,但是雜湊都是變化的,這是因為有隨機值,有響應,有時間戳這幾個變數存在,將所有捕獲到的內容儲存到digest檔案中,儲存之後進行提取
-
因為時間戳和隨機值的存在,所以這個雜湊不能用來進行雜湊傳遞,否則的話會有很多種雜湊對應一個密碼。使用nth進行識別一下
-
使用hashcat進行破解,獲得憑據liltony
系統立足點
已經知道了使用者名稱和密碼:tony/liltony,再次使用nxc進行嘗試
直接使用evil-winrm登入進去看
evil-winrm -i driver.htb -u tony -p liltony
Winpeas列舉
下載winpeas上傳到靶機中,在靶機本地執行
執行命令之後將結果輸出到log.txt檔案中,並將該檔案下載到本地進行檢視,主要關注標紅的地方
cat out.txt | less -R
經過winpeas列舉,以及前端頁面的提示,發現存在大量與印表機有關的內容,使用nxc模組檢視器看一下目標的spooler是否開啟
nxc smb driver.htb -u tony -p liltony -M spooler
服務是開啟的,經過查詢資料可以知道spooler有一個著名的漏洞:列印噩夢——PrintNightmare,nxc中也有用於檢查此漏洞的模組
漏洞存在,並提供了利用工具,使用此工具檢測
因為驅動是透過動態連結庫實現的利用,所以需要準備一下反彈shell的動態連結庫
將此檔案上傳到目標靶機中
然後回到利用檔案的位置,使用工具進行利用,並在攻擊機中進行監聽