這篇文章將為大家詳細(xì)講解有關(guān)如何檢測(cè)Pass-the-Hash攻擊,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)建站長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為壽陽企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站制作,壽陽網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
橫向滲透技術(shù)是攻擊者用來滲透目標(biāo)網(wǎng)絡(luò),獲取憑據(jù)和數(shù)據(jù)特權(quán)訪問的最常見方法之一。在最近發(fā)現(xiàn)的勒索軟件(如Samsam和Ryuk)中,就說明了這一點(diǎn)。
最近我們研究了如何通過蜜罐檢測(cè)pass-the-hash攻擊,在研究檢測(cè)此類攻擊的最有效方法時(shí),我發(fā)現(xiàn)了其它幾種有趣的方法。我認(rèn)為非常有必要對(duì)它們進(jìn)行測(cè)試,并進(jìn)一步的研究pass-the-hash行為。
本文我將教大家如何使用本機(jī)Windows事件日志檢測(cè)pass-the-hash,以及一些關(guān)于如何實(shí)現(xiàn)的實(shí)用建議。在這里我不會(huì)討論有關(guān)什么是pass-the-hash的問題,如果你愿意你可以閱讀這篇文章以及觀看它的演示視頻。
Pass-the-Hash依賴于NTLM身份驗(yàn)證。為了可靠地創(chuàng)建NTLM身份驗(yàn)證,我使用Sqlcmd實(shí)用程序通過其IP地址連接到Microsoft服務(wù)器。此命令將為SQL數(shù)據(jù)庫生成NTLM身份驗(yàn)證:
Sqlcmd –S [IP ADDRESS]
在查看如何檢測(cè)pass-the-hash攻擊之前,讓我們先來獲取執(zhí)行NTLM登錄活動(dòng)時(shí)通常會(huì)生成的事件基線。要從我的PC工作站執(zhí)行此操作,我將首先使用管理用戶的實(shí)際密碼啟動(dòng)一個(gè)新的命令提示符:
現(xiàn)在,在新的命令提示符下,我將使用Sqlcmd連接到SQL主機(jī),并運(yùn)行SELECT SYSTEM_USER命令查看我被認(rèn)證為的用戶:
很好,一切正常!現(xiàn)在讓我們看看生成的日志。
在我的本地工作站上我看到以下事件。
4648事件:試圖使用顯式憑據(jù)登錄(A logon was attempted usingexplicit credentials)
4624事件:成功登錄帳戶(An account was successfully logged on)
4624事件顯示登錄類型為2,這意味著交互式登錄。這符合我使用runas的方式,我以交互方式輸入憑據(jù)。
4672事件:分配給新的登錄特權(quán)
由于我使用的Franklin Bluth帳戶是一個(gè)管理帳戶,因此會(huì)記錄4672顯示正在分配的權(quán)限。這是跟蹤管理帳戶活動(dòng)的非常實(shí)用的方法。
在我的SQL服務(wù)器上我看到以下事件:
4624事件:成功登錄帳戶(An account was successfully logged on)
現(xiàn)在,在SQL Server上你會(huì)看到4624事件,此事件的登錄類型為3,即網(wǎng)絡(luò)登錄。
更重要的是,這表明使用的身份驗(yàn)證包( Authentication Package)是NTLM。也證實(shí)了我們正在使用此方法執(zhí)行NTLM身份驗(yàn)證。
我們還將看到4672事件,因?yàn)槲覀兝玫挠脩魩羰且粋€(gè)特權(quán)帳戶。
在域控制器上,我將看到用戶Franklin Bluth被驗(yàn)證的跡象。在本例中,我將看到Kerberos和NTLM身份驗(yàn)證。首先發(fā)生Kerberos身份驗(yàn)證,這是Active Directory的默認(rèn)身份驗(yàn)證方式。這將生成兩個(gè)事件:
4768事件:Kerberos 身份驗(yàn)證票證 (TGT) 請(qǐng)求
以上顯示了我們模擬的用戶對(duì)域控制器的TGT請(qǐng)求。
4769事件:Kerberos 服務(wù)票證請(qǐng)求
一旦我們有了TGT,我們就會(huì)為我們模擬用戶的主機(jī)請(qǐng)求TGS。有了這個(gè),我們的用戶Franklin現(xiàn)在可以與PC交互并啟動(dòng)命令提示符。
4776事件:域控試圖驗(yàn)證帳戶憑據(jù)
4776事件特定于NTLM,并將在最后。 當(dāng)我們使用強(qiáng)制NTLM身份驗(yàn)證的Sqlcmd執(zhí)行命令時(shí)會(huì)發(fā)生這種情況。
以下是我們?cè)诓皇褂胮ass-the-hash執(zhí)行NTLM身份驗(yàn)證時(shí)看到的日志摘要。這為我們提供了正常行為的基線。
源主機(jī) | 目標(biāo)主機(jī) | 域控制器 |
---|---|---|
4648事件:試圖使用顯式憑據(jù)登錄 | 4624 – 帳戶已成功登錄。登錄類型為3,NTLM | 4768 – Kerberos 身份驗(yàn)證票證 (TGT) 請(qǐng)求。 |
4624 - 帳戶已成功登錄。登錄類型為2 | 4672 – 分配給新的登錄特權(quán)。 | 4769 – Kerberos 服務(wù)票證請(qǐng)求。 |
4672 – 分配給新的登錄特權(quán)。 | 4776 – 計(jì)算機(jī)試圖驗(yàn)證帳戶的憑據(jù)。 |
現(xiàn)在,讓我們來看看我們?cè)赑ass-the-Hash時(shí)看到的內(nèi)容。
為了執(zhí)行pass-the-hash測(cè)試,我們將做同樣的練習(xí),只是這次我們將使用mimikatz和pass the hash命令,而不是使用runas作為用戶啟動(dòng)進(jìn)程。
我可以使用mimikatz命令,從內(nèi)存中輕松獲取用戶Franklin的NTLM哈希值:
獲取哈希后,我將使用以下命令執(zhí)行pass-the-hash攻擊:
sekurlsa::logonpasswords
Sekurlsa::pth /user:Franklin.Bluth /ntlm:[ntlm] /domain:jefflab.local
這將打開一個(gè)新的命令窗口,如果我使用相同的Sqlcmd命令連接到我的SQL Server的IP地址,你可以看到我現(xiàn)在被驗(yàn)證為Franklin Bluth:
那么,讓我們看看在執(zhí)行pass-the-hash之后會(huì)生成什么事件:
在我的本地工作站上,我看到了事件4648,4624和4672與我正在進(jìn)行合法的NTLM身份驗(yàn)證相同,但有一些關(guān)鍵的區(qū)別。
首先,4624事件的登錄類型為9。這是一種NewCredential登錄類型,是識(shí)別pass-the-hash的非常有用的方法。這是由安全研究人員確定的,我在我的測(cè)試中再現(xiàn)了它。
登錄類型9非常罕見。但是,我能夠生成一些運(yùn)行使用模擬的應(yīng)用程序的誤報(bào)。關(guān)鍵的主要區(qū)別是登錄進(jìn)程對(duì)于pass-the-hash(來自我的測(cè)試)始終是“seclogo”,所以你可以過濾掉它以減少誤報(bào)率。你可以在這里看到我能夠讓StealthAUDIT生成Logon Type 9事件,但它使用了Advapi登錄進(jìn)程。
另外,我注意到了4672事件的不同之處。此前,這確定了我模擬帳戶Franklin Bluth的特權(quán)登錄。這將為我登錄到我的工作站的用戶注冊(cè)。
除此之外,SQL服務(wù)器上的日志是相同的。在域控制器上,關(guān)鍵區(qū)別在于你不會(huì)看到Kerberos身份驗(yàn)證。但是,這不是檢測(cè)pass-the-hash的可靠方法,例如源自非受信任域的身份驗(yàn)證也會(huì)發(fā)生這種情況。
以下是我們?cè)趫?zhí)行hash-hash時(shí)所看到的內(nèi)容摘要。
源主機(jī) | 目標(biāo)主機(jī) | 域控制器 |
---|---|---|
4648事件:試圖使用顯式憑據(jù)登錄 | 4624 – 帳戶已成功登錄。登錄類型為3,NTLM | 474776 – 計(jì)算機(jī)試圖驗(yàn)證帳戶的憑據(jù)。 |
4624 - 帳戶已成功登錄。 (Logon type = 9 Logon Process = Seclogo) | 4672 – 分配給新的登錄特權(quán)。 | |
4672 – 分配給新的登錄特權(quán)。 (登錄用戶,而不是模擬用戶) |
為了最終檢測(cè)pass-the-hash我使用了Sysmon,這有助于監(jiān)視進(jìn)程訪問事件。我們?cè)诿酃迿z測(cè)中使用了它,你可以閱讀這篇文章了解如何對(duì)它進(jìn)行設(shè)置。
當(dāng)發(fā)生pass-the-hash時(shí),你將看到事件ID 10顯示從Mimikatz或你選擇使用的pass-the-hash工具訪問LSASS進(jìn)程。
現(xiàn)在,我們已經(jīng)查看了所有有關(guān)pass-the-hash攻擊的證據(jù),構(gòu)建檢測(cè)pass the hash攻擊的最簡單方法是查找:
Logon Type = 9
Authentication Package = Negotiate
Logon Process = seclogo
通過自定義事件日志過濾器,當(dāng)這兩件事同時(shí)發(fā)生時(shí),你可以很容易地看到你網(wǎng)絡(luò)上的pass-the-hash活動(dòng)!
以下是一個(gè)自定義事件過濾器,可用于顯示特定信息。
希望通過本文的學(xué)習(xí),能讓你掌握學(xué)到如何通過事件日志檢測(cè)pass-the-hash攻擊。這需要在所有端點(diǎn)上啟用日志記錄。為了更簡單地檢測(cè)使用更高級(jí)技術(shù)的pass-the-hash攻擊,你可能需要借助第三方威脅檢測(cè)產(chǎn)品,如StealthDEFEND。
關(guān)于如何檢測(cè)Pass-the-Hash攻擊就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。