一種檢測哈希傳遞攻擊的可靠方法
哈希傳遞對于大多數(shù)企業(yè)或組織來說仍然是一個(gè)非常棘手的問題,這種攻擊手法經(jīng)常被滲透測試人員和攻擊者們使用。當(dāng)談及檢測哈希傳遞攻擊時(shí),我首先開始研究的是先看看是否已經(jīng)有其他人公布了一些通過網(wǎng)絡(luò)來進(jìn)行檢測的可靠方法。我拜讀了一些優(yōu)秀的文章,但我沒有發(fā)現(xiàn)可靠的方法,或者是這些方法產(chǎn)生了大量的誤報(bào)。
我不會(huì)在本文深入剖析哈希傳遞的歷史和工作原理,但如果你有興趣,你可以閱讀SANS發(fā)布的這篇優(yōu)秀的文章——哈希攻擊緩解措施。
總之,攻擊者需要從系統(tǒng)中抓取哈希值,通常是通過有針對性的攻擊(如魚叉式釣魚或通過其他方法直接入侵主機(jī))來完成的(例如:TrustedSec 發(fā)布的 Responder 工具)。一旦獲得了對遠(yuǎn)程系統(tǒng)的訪問,攻擊者將升級到系統(tǒng)級權(quán)限,并從那里嘗試通過多種方法(注冊表,進(jìn)程注入,磁盤卷影復(fù)制等)提取哈希。對于哈希傳遞,攻擊者通常是針對系統(tǒng)上的LM/NTLM哈希(更常見的是NTLM)來操作的。我們不能使用類似NetNTLMv2(通過響應(yīng)者或其他方法)或緩存的證書來傳遞哈希。我們需要純粹的和未經(jīng)過濾的NTLM哈希。基本上只有兩個(gè)地方才可以獲得這些憑據(jù);第一個(gè)是通過本地帳戶(例如管理員RID 500帳戶或其他本地帳戶),第二個(gè)是域控制器。
哈希傳遞的主要成因是由于大多數(shù)企業(yè)或組織在一個(gè)系統(tǒng)上擁有共享本地帳戶,因此我們可以從該系統(tǒng)中提取哈希并移動(dòng)到網(wǎng)絡(luò)上的其他系統(tǒng)。當(dāng)然,現(xiàn)在已經(jīng)有了針對這種攻擊方式的緩解措施,但他們不是100%的可靠。例如,微軟修補(bǔ)程序和較新版本的Windows(8.1和更高版本)“修復(fù)”了哈希傳遞,但這僅適用于“其他”帳戶,而不適用于RID為 500(管理員)的帳戶。
你可以禁止通過GPO傳遞哈希:
“拒絕從網(wǎng)絡(luò)訪問此計(jì)算機(jī)”
設(shè)置路徑位于:
- Computer ConfigurationWindowsSettingsSecurity SettingsLocal PoliciesUser Rights Assignment
大多數(shù)企業(yè)或組織都沒有能力實(shí)施GPO策略,而傳遞哈希可被利用的可能性卻非常大。
接下來的問題是,你怎么檢測哈希傳遞攻擊?
檢測哈希傳遞攻擊是比較有挑戰(zhàn)性的事情,因?yàn)樗诰W(wǎng)絡(luò)中表現(xiàn)出的行為是正常。比如:當(dāng)你關(guān)閉了RDP會(huì)話并且會(huì)話還沒有關(guān)閉時(shí)會(huì)發(fā)生什么?當(dāng)你去重新認(rèn)證時(shí),你之前的機(jī)器記錄仍然還在。這種行為表現(xiàn)出了與在網(wǎng)絡(luò)中傳遞哈希非常類似的行為。
通過對成千上萬個(gè)系統(tǒng)上的日志進(jìn)行廣泛的測試和分析,我們已經(jīng)能夠識別出在大多數(shù)企業(yè)或組織中的非常具體的攻擊行為并且具有非常低的誤報(bào)率。有許多規(guī)則可以添加到以下檢測功能中,例如,在整個(gè)網(wǎng)絡(luò)中查看一些成功的結(jié)果會(huì)顯示“哈希傳遞”,或者在多次失敗的嘗試后將顯示憑證失敗。
下面我們要查看所有登錄類型是3(網(wǎng)絡(luò)登錄)和ID為4624的事件日志。我們正在尋找密鑰長度設(shè)置為0的NtLmSsP帳戶(這可以由多個(gè)事件觸發(fā))。這些是哈希傳遞(WMI,SMB等)通常會(huì)使用到的較低級別的協(xié)議。另外,由于抓取到哈希的兩個(gè)唯一的位置我們都能夠訪問到(通過本地哈希或通過域控制器),所以我們可以只對本地帳戶進(jìn)行過濾,來檢測網(wǎng)絡(luò)中通過本地帳戶發(fā)起的傳遞哈希攻擊行為。這意味著如果你的域名是GOAT,你可以用GOAT來過濾任何東西,然后提醒相應(yīng)的人員。不過,篩選的結(jié)果應(yīng)該去掉一些類似安全掃描器,管理員使用的PSEXEC等的記錄。
請注意,你可以(也可能應(yīng)該)將域的日志也進(jìn)行分析,但你很可能需要根據(jù)你的實(shí)際情況調(diào)整到符合基礎(chǔ)結(jié)構(gòu)的正常行為。比如,OWA的密鑰長度為0,并且具有與基于其代理驗(yàn)證的哈希傳遞完全相同的特征。這是OWA的正常行為,顯然不是哈希傳遞攻擊行為。如果你只是在本地帳戶進(jìn)行過濾,那么這類記錄不會(huì)被標(biāo)記。
事件ID:4624
登錄類型:3
登錄過程:NtLmSsP
安全I(xiàn)D:空SID – 可選但不是必需的,目前還沒有看到為Null的 SID未在哈希傳遞中使用。
主機(jī)名 :(注意,這不是100%有效;例如,Metasploit和其他類似的工具將隨機(jī)生成主機(jī)名)。你可以導(dǎo)入所有的計(jì)算機(jī)列表,如果沒有標(biāo)記的計(jì)算機(jī),那么這有助于減少誤報(bào)。但請注意,這不是減少誤報(bào)的可靠方法。并不是所有的工具都會(huì)這樣做,并且使用主機(jī)名進(jìn)行檢測的能力是有限的。
帳戶名稱和域名:僅警告只有本地帳戶(即不包括域用戶名的賬戶)的帳戶名稱。這樣可以減少網(wǎng)絡(luò)中的誤報(bào),但是如果對所有這些賬戶進(jìn)行警告,那么將檢測例如:掃描儀,psexec等等這類東西,但是需要時(shí)間來調(diào)整這些東西。在所有帳戶上標(biāo)記并不一定是件壞事(跳過“COMPUTER$”帳戶),調(diào)整已知模式的環(huán)境并調(diào)查未知的模式。
密鑰長度:0 – 這是會(huì)話密鑰長度。這是事件日志中最重要的檢測特征之一。像RDP這樣的東西,密鑰長度的值是 128位。任何較低級別的會(huì)話都將是0,這是較低級別協(xié)議在沒有會(huì)話密鑰時(shí)的一個(gè)明顯的特征,所在此特征可以在網(wǎng)絡(luò)中更好的發(fā)現(xiàn)哈希傳遞攻擊。
另外一個(gè)好處是這個(gè)事件日志包含了認(rèn)證的源IP地址,所以你可以快速的識別網(wǎng)絡(luò)中哈希傳遞的攻擊來源。
為了檢測到這一點(diǎn),我們首先需要確保我們有適當(dāng)?shù)慕M策略設(shè)置。我們需要將帳戶登錄設(shè)置為“成功”,因?yàn)槲覀冃枰檬录罩?624作為檢測的方法。
讓我們分解日志并且模擬哈希傳遞攻擊過程。在這種情況下,我們首先想象一下,攻擊者通過網(wǎng)絡(luò)釣魚獲取了受害者電腦的憑據(jù),并將其提升為管理級別的權(quán)限。從系統(tǒng)中獲取哈希值是非常簡單的事情。假設(shè)內(nèi)置的管理員帳戶是在多個(gè)系統(tǒng)間共享的,攻擊者希望通過哈希傳遞,從SystemA(已經(jīng)被入侵)移動(dòng)到SystemB(還沒有被入侵但具有共享的管理員帳戶)。
在這個(gè)例子中,我們將使用Metasploit psexec,盡管還有很多其他的方法和工具可以實(shí)現(xiàn)這個(gè)目標(biāo):
在這個(gè)例子中,攻擊者通過傳遞哈希建立了到第二個(gè)系統(tǒng)的連接。接下來,讓我們看看事件日志4624,包含了什么內(nèi)容:
安全I(xiàn)D:NULL SID可以作為一個(gè)特征,但不要依賴于此,因?yàn)椴⒎撬械墓ぞ叨紩?huì)用到SID。雖然我還沒有親眼見過哈希傳遞不會(huì)用到NULL SID,但這也是有可能的。
接下來,工作站名稱肯定看起來很可疑; 但這并不是一個(gè)好的檢測特征,因?yàn)椴⒉皇撬械墓ぞ叨紩?huì)將機(jī)器名隨機(jī)化。你可以將此用作分析哈希傳遞攻擊的額外指標(biāo),但我們不建議使用工作站名稱作為檢測指標(biāo)。源網(wǎng)絡(luò)IP地址可以用來跟蹤是哪個(gè)IP執(zhí)行了哈希傳遞攻擊,可以用于進(jìn)一步的攻擊溯源調(diào)查。
接下來,我們看到登錄過程是NtLmSsp,密鑰長度為0.這些對于檢測哈希傳遞非常的重要。
接下來我們看到登錄類型是3(通過網(wǎng)絡(luò)遠(yuǎn)程登錄)。
最后,我們看到這是一個(gè)基于帳戶域和名稱的本地帳戶。
總而言之,有許多方法可以檢測環(huán)境中的哈希傳遞攻擊行為。這個(gè)在小型和大型網(wǎng)絡(luò)中都是有效的,并且基于不同的哈希傳遞的攻擊方式都是非常可靠的。它可能需要根據(jù)你的網(wǎng)絡(luò)環(huán)境進(jìn)行調(diào)整,但在減少誤報(bào)和攻擊過程中溯源卻是非常簡單的。
哈希傳遞仍然廣泛的用于網(wǎng)絡(luò)攻擊并且是大多數(shù)企業(yè)和組織的一個(gè)共同的安全問題。有許多方法可以禁止和降低哈希傳遞的危害,但是并不是所有的企業(yè)和組織都可以有效地實(shí)現(xiàn)這一點(diǎn)。所以,最好的選擇就是如何去檢測這種攻擊行為。






























