哈希傳遞(Pass-the-hash)是一種非常古老的技術,最初由 Paul Ashton 在1997年發布的。盡管如此,“哈希傳遞”的存在已經超過了10年。 它在大多數勒索軟件攻擊中被大量使用,比如在馬斯特里赫特大學(University of Maastricht)。但為什么這仍然是個問題呢?
首先,讓我們對這種攻擊有一個高層次的概述。 Pass-the-hash 是一種技術,攻擊者在獲得本地管理員權限之后,通過這種技術從被入侵的工作站或服務器上的內存中捕獲 NT (LM) 哈希。 使用這些被盜用的憑據,他們可以代表受到威脅的用戶打開一個新的身份驗證會話,以后還可以這樣做。 使用 PsExec、 WinRM、 RDP 等按照該用戶的側向移動。
對于 Pass-the-Hash 攻擊并沒有真正的修復,因為它利用了 SSO (Single-Sign On)協議。 任何使用 SSO 的系統都容易受到類似的攻擊,比如 PtH。 因為大多數組織都使用活動目錄作為其身份服務,而 AD 將 SSO 作為其主要特性。這意味著許多組織必須處理這個問題,否則,它們就不能很好地抵御“傳遞哈希”攻擊。
SSO 是一個身份驗證過程,允許用戶使用一組憑據登錄,以訪問網絡上的資源,而無需再次輸入密碼。
假設你以用戶 Bob (DBA)的身份登錄,并希望訪問 SQL 服務器上的 SQL 數據庫。 而不是再次輸入你的密碼。 你只需要點擊“連接”。
按下連接按鈕后。 你已經進入并且可以訪問所有被監聽的 SQL 數據庫。
你不必再次鍵入密碼的原因是,因為 Windows 將你的憑據緩存在內存中,以提供 SSO 體驗。
這也是為什么你不能完全防止哈希傳遞攻擊,因為這意味著你必須干掉單點登錄。 然而,因為很難防止這種攻擊,這并不意味著你對此無能為力。 事實上,微軟已經在這方面提供了很多指導,可以減輕這種攻擊。
憑證存取 -T1003
在攻擊者可以執行傳遞哈希攻擊之前。首先需要獲得憑證,并且所有憑據都存儲在 LSASS 進程內存中,因此每次用戶登錄時,他或她的憑證被緩存在內存中,以提供我們前面討論過的 SSO 體驗。 當用戶登錄到一臺機器時,無論是通過 RDP 本地登錄,還是通過 Runas 在另一個帳戶下執行操作,憑證都會被緩存。
下面是一個示例,其中我們從 WINDOWS2012 機器上的內存中提取憑據。
現在讓我們假設我們已經設法欺騙 Alice 登錄到我們已經入侵的機器上,那么會發生什么呢?
因為Alice已經登錄了我們的跳板機器。 她的憑據已經丟失,這意味著我們現在可以從內存中提取憑據并開始模擬 Alice 以代表她訪問資源。
哈希傳遞 – T1705
我們現在已經從 Alice 那里獲得了憑據,因此我們現在可以開始執行 哈希傳遞攻擊以模擬她并代表她訪問所有資源。
現在,由于 Alice 可以訪問 FILESERVER,我們可以作為用戶 Alice 橫向移動到這個服務器。
由于我們對 FILESERVER 擁有完全的管理特權,現在我們也可以將憑據轉儲到這臺服務器上。
現在我們已經設法從 Bob 那里獲得了憑據,因為他最近登錄了這個服務器。 Bob 是域管理員,所以如果我們模仿Bob。 我們可以接觸到任何東西。
與前面一樣,我們現在要執行哈希傳遞攻擊來模擬 Bob 并代表他訪問資源。
數據外泄
例如,我們現在可以橫向移動到域控制器服務器,它也被稱為最關鍵的服務器,因為它擁有每個用戶和計算機的所有憑證。
訪問域控制器是一回事,但是攻擊者的最終目標是泄露數據。攻擊者并不關心他們是否成為DA或訪問DC。當數據泄露時,它會影響你的生意。
這是一個例子,我們可以訪問 SQL 服務器,因為我們已經是 Domain Admin(域管理員),但是正如前面所說的。 DA 無關緊要,重要的是數據。 下面是存儲在硬盤驅動器上的所有 SQL 數據庫的示例。 也許這些數據對我們有很大的價值,如果這些數據泄露出去,可能會對我們的業務造成影響。
檢測憑證訪問和哈希傳遞技術一直是相當困難的。 如果真像我們想的那么簡單。 那么大多數組織就已經有了適當的檢測規則。
一個偉大的事情是,微軟發布了 Defender ATP,這是一個 EDR 解決方案,利用了云的力量。 如果你必須選擇一個 EDR 解決方案。 我建議選擇Defender ATP。 這是一個很好的解決方案,可以提高所有端點的可見性,并且使你的生活更加容易,因為你可以通過門戶獲得無時間的警報。
下面是我們從 LSASS 進程內存中提取憑據之后收到的一個示例。
上面的警報與另一個事件有關,即哈希傳遞。
建議
第一件事是確保你做了基本的工作,也就是確保所有的 IT 管理員對他們的管理任務有一個單獨的帳戶,并且如果你想要完美地完成這些任務的話。 甚至建議使用單獨的加固工作站來執行所有管理任務。
緩解哈希傳遞攻擊的最佳方法是查看微軟管理層模型——這是一種安全模型,通過確保較高層不能登錄較低層來減輕憑證盜竊,反之亦然。
第0層=可以訪問網絡上所有關鍵服務器的域管理員或同等級別的管理員
第1層=服務器管理員/系統管理員,他們可以訪問重要的服務器,但不是“關鍵”的
第2層=工作站管理員/幫助臺,可以訪問客戶的工作站,但不能訪問第1層和第0層管理員的獨立的加固工作站
現在你可能想知道,當你實現這個層模型時,它看起來是什么樣的。 也許你還想知道你的組織是否有安全措施來減輕哈希傳遞。
部署管理層模型可能需要一段時間,但這是值得的。 這是一個關于在 AD 中如何設計一個層模型的例子。
我們創建了一些OU,在這些OU中。它包含不同的對象。作為一個例子。在第0層OU,我們有不同的子OU。你可以看到設備和第0層服務器。在設備OU中,它包含你的域管理員或同等人員的獨立加固工作站。在第0層服務器中,它包含最關鍵的服務器對象,比如域控制器、Azure AD Connect、ADFS、PKI、SCCM等等。
現在有另一個 OU 叫做 Tier 1,它包含了不同的子 OU,以及設備和 Tier 1 服務器。 在設備 OU 中,它包含服務器管理員的獨立硬化工作站和第一層服務器 OU。 它包含所有重要的服務器,但不是關鍵的。
在你指定之后。 一個 GPO 需要被創建和鏈接到設備 & 第1層(Tier 1)服務器 OU,這個 GPO 拒絕域管理員和等價物的登錄權(第0層管理員)。
在這里你可以看到,我已經創建了一個 GPO 與拒絕登錄權限的設備和第一層服務器。 所有0級管理員不能登錄到第1層管理員設備或第1層服務器。
拒絕從網絡訪問此計算機
拒絕作為批處理作業登錄
拒絕作為服務登錄
拒絕本地登錄
拒絕通過遠程桌面服務登錄
讓我們驗證我們不能登錄到第1層資產。 例如,我們正在嘗試登錄第1層中的 FILESERVER。 訪問被拒絕,因為我們的 GPO 拒絕了登錄訪問。
現在,當我們試圖使用 PsExec 登錄到文件服務器時,我們也會被拒絕。
最后,但并非最不重要。 還有第二層,它包含了客戶端的所有工作站。 此層由幫助臺/工作站管理員管理。
現在創建另一個 GPO ,但這一次這個 GPO 需要拒絕登錄權限。 我們必須指定,第0層和第1層管理員都不允許登錄客戶的工作站和第2層管理員的單獨工作站。
拒絕從網絡訪問此計算機
拒絕作為批處理作業登錄
拒絕作為服務登錄
拒絕本地登錄
拒絕通過遠程桌面服務登錄
現在,當我們試圖將RDP作為第0/1層管理員發送到客戶機的工作站時,我們的訪問將被拒絕,因為客戶的工作站位于第2層區域。
我經??吹降膸讉€例子,可能會導致層模型繞過,是鏈接到0層資產的GPO,來自第1層的用戶可以修改它的設置。 確保所有鏈接到域對象的 GPO 和所有0級資產都由0級管理員管理。
另外,如果你在域管理員中有服務帳戶,并且這些服務帳戶作為具有 DA 特權的服務器上的服務運行,那么最好知道這一點。 這意味著你需要將該服務器視為一個第0層資產。
總結
管理層模型(Administrative Tier Model)是一個很好的安全架構,可以防止憑證被盜用,因為較高的層不能登錄較低的層,反之亦然,這意味著例如域管理員的憑證永遠不能在打印服務器或客戶機的工作站上公開。 沒有什么是完美的,但部署層模型和在所有工作站和服務器上安裝 Defender ATP 將使攻擊者更加困難。
如果你沒有任何類似的安全措施,如上所示。 我們可能得出結論,你根本沒有實現哈希傳遞攻擊的緩解措施,這沒有關系,但是現在是時候實現它了。
-
微軟
+關注
關注
4文章
6591瀏覽量
104044 -
DDoS攻擊
+關注
關注
2文章
73瀏覽量
5783 -
哈希算法
+關注
關注
1文章
56瀏覽量
10745
發布評論請先 登錄
相關推薦
評論