當前位置:
首頁 > 最新 > 一次詳細的Kerberoast攻擊演示

一次詳細的Kerberoast攻擊演示

簡單直白的說Kerberoast攻擊,就是攻擊者為了獲取目標服務的訪問許可權,而設法破解Kerberos服務票據並重寫它們的過程。這是紅隊當中非常常見的一種攻擊手法,因為它不需要與服務目標服務進行任何交互,並且可以使用合法的活動目錄訪問來請求和導出可以離線破解的服務票據,以獲取到最終的明文密碼。之所以出現這種情況,是因為服務票據使用服務帳戶的散列(NTLM)進行加密,所以任何域用戶都可以從服務轉儲散列,而無需將shell引入運行該服務的系統中。

攻擊者通常會選擇那些可能設置了弱密,碼破解成功率較高的票據來嘗試破解。一旦攻擊者成功破解出了票據,他們有時不僅僅獲取的只是服務訪問許可權,如果服務被配置為在高許可權下運行,那麼整個域都將可能被攻擊者拿下。這些票據可以通過考慮多種因素來識別,例如:

SPNs綁定到域用戶賬戶

最後一次密碼設置(Password last set)

密碼過期時間

最後一次登錄(Last logon)

具體來說,Kerberoast攻擊涉及以下五個步驟:

服務主體名稱(SPN)發現

請求服務票據

導出服務票據

破解服務票據

重寫服務票據&RAM注入

在服務主體名稱(SPN)發現這篇文章中,已經為大家介紹了如何通過查詢Active Directory的服務主體名稱,來發現網路中服務的方法。


為特定SPN請求服務票據的最簡單方法是通過PowerShell,這個方法是Tim Medin在DerbyCon 4.0演講中介紹的。

執行klist命令將列出所有可用的緩存票據。

請求服務票據的另一種解決方案是通過Mimikatz指定服務主體名稱作為目標。

與klist類似,內存中存在的Kerberos票據列表可以通過Mimikatz來檢索。從現有的PowerShell會話中,Invoke-Mimikatz腳本將輸出所有票據。

或者,載入Kiwi模塊添加一些額外的Mimikatz命令,它們也可以執行相同的任務。

還或者可以通過執行一個自定義的Kiwi命令:

Impacket中有一個python模塊,它可以請求僅屬於域用戶的Kerberos服務票據,與計算機帳戶服務票據相比應該更易於破解。但是,想要與Active Directory進行交互,需要有效的域憑據,因為它將從不屬於域的系統執行。

服務帳戶哈希也將以John the Ripper格式檢索。

使用Matan Hart開發的PowerShell模塊可以幫助我們自動識別弱服務票據,該模塊是RiskySPN中的一部分。主要作用是對屬於用戶的可用服務票據執行審計,並根據用戶帳戶和密碼過期時限來查找最容易包含弱密碼的票據。

該腳本將提供比klist和Mimikatz更詳細的輸出,包括組信息,密碼有效期和破解窗口。

使用domain參數執行同一模塊,將返回所有具有關聯服務主體名稱的用戶帳戶。

服務票據信息也可以以CSV格式導出,以便離線查看。

所有出現在控制台中的票據信息都將被寫入文件中。

這裡還有一個腳本(相同存儲庫的一部分),可以通過其SPN為服務實例獲取服務票據。

Tim Medin的Kerberoast工具包已實現流程的自動化。Auto-Kerberoast中包含了Tim的原始腳本,其中包含兩個可執行各種功能的PowerShell腳本,例如以Base64, John和Hashcat格式列出和導出服務票據等。

還有一個domain參數可以只列出特定域的SPN。


Mimikatz是可以導出Kerberos服務票據的標準工具。從PowerShell會話中,以下命令將列出內存中的所有可用票據,並將其保存在遠程主機中。

同樣,PowerShell Empire有一個模塊可以自動完成Kerberos服務票據提取任務。

該模塊將使用Invoke-Mimikatz函數自動執行以下命令。

支持Kerberos身份驗證的服務票據哈希可以直接使用PowerShell Empire模塊提取。哈希的格式可以提取為John或Hashcat。

該模塊將檢索所有服務帳戶的密碼哈希值。

AutoKerberoast PowerShell腳本將請求並提取base64格式的所有服務票據。

AutoKerberoast存儲庫中還有一個腳本,它將以hashcat兼容格式顯示提取的票據。

屬於特定域的提升組的票據也可以提取用於更具針對性的Kerberoasting。

Matan Hart開發的Get-TGSCipher PowerShell模塊,可以以三種不同的格式提取服務票據的密碼哈希值:John,Hashcat和Kerberoast。可以在SPN發現過程中檢索腳本所需的關聯服務的服務主體名稱。

使用Get-TGSCipher函數的好處是,無需使用Mimikatz導出票據,這可以大大降低警報的觸發,以及省去將票據轉換為john格式的步驟。


python腳本tgsrepcrack是Tim Medin Kerberoast工具包的一部分,可以通過提供的密碼列表來破解Kerberos票據。

Lee Christensen開發了一個名為extractServiceTicketParts的python腳本,它可以為我們提取服務票據的哈希值,以及一款Go語言編寫的哈希破解器tgscrack ,兩者可以配合使用。

tgscrack需要我們為其指定哈希文件以及字典文件的本地存放路徑。

密碼將以明文顯示。

如果PowerShell remoting已啟用,則可以使用從服務票據中檢索的密碼執行遠程命令等操作。

正在運行的進程列表將被檢索


Kerberos票據使用密碼的NTLM哈希簽名。如果票據散列已被破解,那麼可以使用Kerberoast python腳本重寫票據。這將允許在服務將被訪問時模擬任何域用戶或偽造賬戶。此外,提權也是可能的,因為用戶可以被添加到諸如域管理員的高許可權組中。

使用以下Mimikatz命令將新票據重新注入內存,以便通過Kerberos協議對目標服務執行身份驗證。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 瘋貓網路 的精彩文章:

使用帶外數據從電子表格獲取數據
護衛神主機大師提權漏洞利用分析

TAG:瘋貓網路 |