如何使用Ketshash檢測可疑的特權NTLM連接
關于Ketshash
Ketshash是一款針對NTLM安全的分析與檢測工具,該工具可以幫助廣大研究人員基于事件查看器日志來分析和檢測可疑的特權NTLM連接,尤其是Pass-The-Hash攻擊。
該工具作為“Pass-The-Hash detection”研究的一部分,以完整開源的形式發布給廣大研究人員使用。
該工具可以基于下列信息來實現其功能:
1、受監控計算機上的安全事件日志(登錄事件);
2、活動目錄中的身份驗證事件;
工具要求
該工具的使用要求用戶賬號擁有下列權限:
1、訪問遠程計算機的安全事件日志;
2、活動目錄的讀取權限(標準域帳戶);
3、計算機在同一時間同步,否則會影響結果;
4、至少安裝并配置好PowerShell 2.0;
工具下載
該工具是一個PowerShell腳本,因此我們只能在支持PowerShell 2.0+的設備上使用該工具。
廣大研究人員可以使用下列命令將該項目源碼克隆至本地:
工具使用
基礎使用
打開PowerShell窗口,并運行下列命令:
或者,將Ketshash.ps1的內容拷貝到PowerShell會話窗口中。
除此之外,也可以直接運行下列命令來使用Ketshash:
Ketshash Runner
1、確保Ketshash.ps1在KetshashRunner.exe的同一目錄下;
2、雙擊KetshashRunner.exe,根據需要修改設置,并點擊運行;
Invoke-DetectPTH使用
參數解釋
Targetcomputers:要檢測NTLM連接的目標計算機數組;
TargetComputersFile:包含要檢測NTLM連接的目標計算機列表的文件路徑;
StartTime:檢測開始的時間,默認值為當前時間;
UseKerberosCheck:檢查組織DC上的TGT\TGS登錄;
UseNewCredentialsCheck:檢查登錄類型為9的登錄事件(如Mimikatz)。這是可選的,默認算法已經涵蓋了它。它的存在只是為了顯示另一個檢測可疑NTLM連接的選項。在Windows版本10和Server 2016上,應在事件查看器中啟用“Microsoft Windows LSA/操作”。在Windows 10和Server 2016上,啟用“內核對象審計”將提供更準確的信息,例如寫入LSASS;
LogFile:保存結果的日志文件路徑;
MaxHoursOfLegitLogonPriorToNTLMEvent:自NTLM事件發生后,需要多少小時才能向后查看并搜索合法登錄,默認值為向后2小時;
使用樣例1(推薦)
使用樣例2
工具調試
由于該工具使用線程工作,因此不太可能對主功能腳本塊進行調試。但是我們可以在Detect-PTHMultithreaded之前使用Invoke-Command調試:
僅檢測一個目標計算機:
將$TargetComputer從[array]修改為[string],這樣就可以在腳本塊中使用斷點來調試了。
工具使用演示
使用演示:【點我觀看】
許可證協議
本項目的開發與發布遵循GPL-3.0開源許可證協議。
項目地址
Ketshash:【GitHub傳送門】
參考資料
https://www.cyberark.com/threat-research-blog/detecting-pass-the-hash-with-windows-event-viewer
https://www.cyberark.com/resource/pass-hash-detection-using-windows-events/
http://lp.cyberark.com/rs/cyberarksoftware/images/wp-Labs-Pass-the-hash-research-01312018.pdf