使用Microsoft Defender Endpoint檢測和阻止憑證轉儲
憑證轉儲(Credential dumping)或密碼轉儲是網絡罪犯訪問網絡的一種技術。他們通過網絡釣魚進入計算機,利用管理員權限控制,并監控網絡以找到更多暴露的憑證(橫向移動)。憑證轉儲是從操作系統層和軟件層獲取賬戶登錄密碼信息的過程,通常哈希或明文密碼的形式。
當攻擊者在系統中建立了一個立足點后,主要工作是尋找高特權憑證。憑證非常有用,因為它們可以提供對關鍵系統的訪問。竊取用戶憑證是攻擊者在整個受害者網絡橫向移動的關鍵步驟。對保護和監控任何環境都很重要。
什么是憑證轉儲?
憑證轉儲(MITRE T1003 )是指從操作系統和軟件獲取登錄信息。在操作系統中,憑證存儲在多個位置,以供日常操作使用。
憑證轉儲指的是從受害者計算機中提取或轉儲用戶身份驗證憑證(如用戶名和密碼)的任何方法。這種黑客技術是在計算機被攻擊者入侵后實施的。用戶名和密碼對網絡罪犯來說非常有價值,可以用來獲取敏感信息,也可以獲得對整個網絡的更多訪問。
憑證轉儲的關鍵內容位于內存緩存或應用程序緩存中。最常用的工具是Mimikatz。Mimikatz成為世界上使用最多的黑客工具之一。
操作系統將密碼存儲在內存、數據庫或文件中,以減少用戶輸入密碼的次數。Windows將密碼保存在系統內存/LSA子系統服務中。憑證轉儲在很大程度上是可能的,因為操作系統將密碼存儲在內存中,以避免用戶重復輸入密碼。
憑證轉儲可能為其他基于憑證的攻擊打開大門。如Pass the hash, Pass the Ticket (PTH), Kerberos Golden Ticket, Kerberos Silver Ticket。
在哪里偷取憑證?
在操作系統中,很多應用存儲憑證供日常操作使用。通過訪問終端,可以在以下位置查找憑證。
- Kerberos
- 本地安全授權(LSA)
- LSA子系統服務(LSASS)
- Security Account Manager(SAM)
- WDigest(Legacy protocol)
- Registry SAM key
- ......
使用工具
可以使用以下工具:
- Mimikatz
- Empire
- L0phtCrack
- gsecdump
- PWDumpX
- Creddump
- PowerSploit
- Procdump
- .Crackmapexec
- LSASSY
- ……
常見的行為
以下行為在現實世界的攻擊中很常見。來源:Redacanary.com
- PowerShell和其他進程(例如Windows任務管理器和Sysinternals ProcDump)從本地安全授權子系統服務(LSASS)訪問和轉儲內存
- Windows注冊表控制工具(reg.exe) 導出包含憑據的Windows 注冊表
- NTDSUtil轉儲NTDS.dit(Active Directory)
- Windows憑證編輯器轉儲NT Lan管理器(NTLM)哈希值
憑證轉儲是如何工作?
當沒有啟用其他保護時,憑證轉儲并不困難。只要能訪問端點。
- 惡意攻擊者找到進入設備的方法。這可能是使用零日漏洞、薄弱的安全性/身份、老版本軟件、未打補丁的系統或任何其他方法。
- 現在他們可以進入并開始憑證搜索。在憑據轉儲攻擊期間,攻擊者通常首先查看的地方是設備RAM,它以純文本的形式存儲沒有保護的憑證。攻擊者將嘗試使用安全賬戶管理器(SAM)。SAM包含用于登錄設備的完整密碼哈希表。(主要包括IT賬戶或本地管理員)。
- 拿到這些有效的憑證(或散哈希),攻擊者就可以開始橫向移動,通過更多的訪問拿到金鑰匙(管理員憑證)。
防止憑證轉儲攻擊
設備保護對于避免憑據轉儲攻擊至關重要。基于默認的安全和防御技術,可以減少/阻止攻擊。使用帶有基于簽名檢測的EDR將有效檢測和阻止Mimikatz或憑據轉儲攻擊。
您的組織可以做一些事情來幫助防止這些攻擊。理想情況下,所有過期的Windows操作系統都應該報廢。較新的系統默認禁用WDigest導出明文密碼。對于較新的系統,仍然可以轉儲NTLM散列。另一個重要的防御措施是盡可能地限制本地管理訪問。
常見保護:
- 關閉所有過期的Windows操作系統
- 限制本地管理訪問
- 在Windows 8和Windows Server 2012 R2之前所有Windows操作系統上禁用WDigest功能
- 禁用LM (Lan Management)哈希
- 限制域和高特權賬戶
Defender 保護:
- Windows defender 憑證衛士
- 啟用Defender防病毒功能
- 開啟 Defender for Endpoint (MDE)
- 開啟 Defender for Identity (MDI) 檢測可能攻擊
- 啟用攻擊面減少規則(ASR);阻止從Windows本地安全授權子系統竊取憑據
Defender Credential Guard配置正確時,不需要配置Attack Surface Reduction規則。憑證轉儲作為憑證保護配置的一部分已經被阻止。
模擬
在進行一些技術解釋之前,讓我們先從一些憑證轉儲攻擊示例開始。
#1 使用任務管理器轉儲憑證
如果可以使用遠程桌面協議(RDP)或其他圖形界面訪問受害者設備,Windows任務管理器可以用于創建LSASS內存的轉儲文件。
攻擊者轉儲LSASS,需要有SEDebugPrivilege權限。Windows缺省設置是將此權限授予本地管理員。權限檢查可以通過以下命令進行:whoami /priv

打開任務管理器,點擊詳情,找到 lsass.exe,點擊右鍵,選擇生成轉儲文件

然后可以使用多種工具(Mimikatz/ pypykatz)從轉儲文件中提取任何存儲的憑證和散列。例如切換到mimikatz,來讀取.DMP文件。
sekurlsa::minidump C:\Users\ADMINI~1.OFF\AppData\Local\Temp\lsass.DMP
sekurlsa::logonpasswords
我們得到了所有活動用戶的NTLM哈希值。命令執行成功,因為Debug模式已經打開(默認行為)。在SeDebugPrivilege模式下,程序可以訪問低級內存。
#2 使用Procdump轉儲憑證
Sysinternals中的Procdump可用于生成LSASS進程的內存轉儲。Procdump是一個Windows Sysinternals工具。
使用下面的語法利用Procdump創建LSASS的內存轉儲。(注意:此進程將被Defender AV阻止)
procdump.exe -accepteula -ma lsass.exe memresult.dmp

#3 轉儲LSA Secrets
LSA Secrets 存儲在注冊表下列位置
HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets
LSA secrets 能夠從注冊表中直接轉儲,正常情況下,會被 Defender for Endpoint阻止.
reg save HKLM\SYSTEM system & reg save HKLM\security security
更多資料,請查看
ired.team: Credential Access & Dumping
Whiteoaksecurity: Attacks & Defenses: Dumping LSASS With No Mimikatz
阻止方法
阻止方法 #1 禁用WDigest
如果你有任何老版本的Windows操作系統(在Windows 8和Windows Server 2012 R2之前),WDigest默認是啟用的,應該直接通過組策略禁用。啟用時,lasss .exe會在內存中保留用戶的明文密碼副本,這樣就有被竊取的風險。
要禁用WDigest,請安裝Windows補丁KB 2871997,并將注冊表項設置為0。
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential
阻止方法 #2 啟用ASR
適用于Windows 10及以上版本、Server 2012R2、Server 2016、Server 2019及以上版本。阻止從Windows本地安全授權子系統(LSASS)竊取憑證,阻止不受信任的進程直接訪問LSASS內存。
重要提示:攻擊面減少(ASR)規則“阻止從Windows本地安全授權子系統(lasss .exe)竊取憑證”的默認狀態將從“未配置”更改為“已配置”,默認模式將設置為“阻止”。
Windows中的Microsoft Defender Credential Guard可防止試圖從LSASS中提取憑證。Credential Guard有時會給硬件支持帶來問題。啟用特定的“攻擊面減少”規則可以減少硬件需求未通過的影響。
啟用后的結果
啟用后,無法使用工具或任務管理器轉儲憑據
如何開啟ASR?
攻擊面減少(ASR)功能可以使用GPO、PowerShell、MEM/Intune或MECM啟用。始終建議在啟用完整規則之前,先以審計模式啟動幾天。
開啟ASR https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/enable-attack-surface-reduction?view=o365-worldwide
Windows Intune
Windows Intune是一款新的桌面管理工具。這款工具主要針對中小型企業用戶,可以通過網絡前端為Windows PC提供管理和安全服務。傳統的此類軟件需要有本地服務器支持,不過Windows Intune是一種云計算服務,由微軟服務器托管,可為企業省去服務器配置成本。
攻擊面減少可以使用Intune啟用。目前使用Intune可以實現多種ASR配置方法:
- 端點安全-攻擊表面減少
- 端點安全-安全基線/攻擊面減少規則
- 配置概要文件—模板/端點保護
- 配置概要文件-設置目錄
要使用端點安全配置文件配置攻擊面減少,請打開端點管理器門戶并點擊端點安全->攻擊面減少。為Windows 10和更高版本的配置文件創建一個新的攻擊面減少規則配置文件。

PowerShell
PowerShell通過Set-MpPreference模塊可以啟用。9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2是正確的ID
## block mode
Set-MpPreference -AttackSurfaceReductionRules_Ids 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 -AttackSurfaceReductionRules_Actions Enabled
## audit mode
Set-MpPreference -AttackSurfaceReductionRules_Ids 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 -AttackSurfaceReductionRules_Actions AuditMode
阻止方法 #3 Defender Credential Guard
Microsoft Defender Credential Guard使用基于虛擬化的安全來隔離和保護j機密憑證(例如,NTLM密碼哈希和Kerberos ticket-granting tickets),以阻止 pass-the-hash 或者 pass-the-ticket (PtH)攻擊。
Credential Guard使用基于虛擬化的安全性來隔離機密憑證/憑證。只有特權系統才能訪問。
可以使用組策略、Intune和注冊表開啟憑證保護。憑證轉儲作為憑證保護配置的一部分已經被阻止。
Windows Intune
目前有許多選項可用于開啟Defender Credential Guard。開啟新的帳戶保護(預覽)策略。
要使用端點安全配置文件配置Credential Guard,請打開端點管理器門戶并點擊端點安全->帳戶保護。創建一個新的帳戶保護配置文件。
開啟Credential Guard并配置值;開啟UEFI鎖定。配置UEFI鎖定時,禁用Credential Guard的唯一方法是將此配置設置為禁用并物理清除UEFI。安全性方面的最佳實踐。


阻止方法 #4 Defender for Identity
對于檢測基于憑證攻擊的早期狀態(例如,Pass the hash, Pass the Ticket (PTH),Kerberos Golden Ticket, Kerberos Silver Ticket),強烈建議使用Defender for Identity。
