橫向移動是內網滲透的關鍵,企業如何利用日誌提早抓出駭客?本文為您詳解成功登入/登入失敗與帳戶列舉偵察的常見EventLog,並傳授PtH攻擊的特徵比對,助您看懂行為解析、防範威脅擴大。


Windows EventLog對做IR來說其實是一個重要的來源,以下會大概說明一下較常見的EventLog,以及看了一些微軟自己相關橫向移動偵測方式的說明,基於此做了一些整理記錄。


一、成功登入/登入失敗

(一)、Event ID 4624:

帳號成功登入,建議確認登入時間點以及Logon type,可以協助判斷是否為正常登入行為。

※ 相關Logon types 可參考:https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4624

(二)、Event ID 4625:

帳號登入失敗,一樣可以確認最早登入失敗時間點紀錄以及是否有頻繁登入失敗行為以及Logon type等,來判斷是否為惡意的登入失敗行為。

※ 相關Logon types 可參考:https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4625


二、帳戶列舉偵察(Account enumeration reconnaissance)

  Kerberos驗證:攻擊者利用得到的一些字典檔內的用戶名稱等提出Kerberos要求,嘗試在網域中找到有效的使用者名稱。 如果成功猜到使用者名稱,攻擊者會收到「需要預先驗證 (Preauthentication required):0x19」,而不是「未知的安全性主體 (Security principal unknown):0x7」Kerberos錯誤。


(一)、Event ID 4768

要求Kerberos驗證票證TGT(Ticket Granting Ticket),結果代碼(Result Code):0x0表示沒有錯誤,不會產生部分結果代碼(Result Code):0x10,0x18,而改為在4771: Kerberos預驗證失敗(Kerberos pre-authentication failed)中可以看到。

※ 詳情可參考:https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4768


Event ID 4768


(二)、Event ID 4769

已請求 Kerberos 服務票證(A Kerberos service ticket was requested) 結果代碼(Result Code):0x0表示沒有錯誤,不會產生部分結果代碼(Result Code):0x10, 0x17,0x18,而改為在4771: Kerberos預驗證失敗(Kerberos pre-authentication failed)中可以看到。

※ 詳情可參考:https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4769


Event ID 4769


  NTLM驗證:攻擊者利用名稱字典來提出NTLM驗證要求,試著在網域中找到有效的使用者名稱。 如果成功猜到使用者名稱,攻擊者會收到WrongPassword (0xc000006a) 而不是NoSuchUser (0xc0000064) NTLM錯誤。Event ID 4776可以配合Event ID 8004一起來看。

(三)、Event ID 8004

啟用後可以紀錄像是暴力破解/登入失敗的相關事件

※ 8004設定windows事件開啟稽核,設定方式為:gpedit.msc→電腦設定原則→Windows設定→安全性設定→本機原則→安全性選項設定 


Event ID 8004


※ 參考設定:https://learn.microsoft.com/en-us/defender-for-identity/deploy/configure-windows-event-collection#event-id-8004


Event ID 8004


(四)、Event ID 4776

NTLM驗證憑證,成功失敗都會有此紀錄。如果驗證失敗,Error Code就不會顯示為0x0。

※相關Error Code查詢:https://docs.microsoft.com/zh-tw/windows/security/threat-protection/auditing/event-4776

※記得一併查看事件發生時登入的其他使用者,因為也有可能是異常的登入行為。


由於本篇主要是要講EventLog,所以詳細攻擊行為操作等可以搜尋pass-the-hash(PtH)可以看到不少POC,有興趣的可以自行去做搜尋,在本篇文章中只會簡單說明。


Pass-the-hash attack:

指攻擊者從某台電腦中竊取到帳號憑證/雜湊值,並利用來對內網中其它的存取點進行認證。攻擊者不需要去破解密碼即可來存取。 


在利用Pass-the-Hash attack時候,本機會產生與合法NTLM一樣的EventID:4648、4624、4672但是要注意的是,4624的Logon Type會變成是9 (NetworkCleartext)。而在正常使用管理身分做驗證時候,假設是以一般使用者abc身份來做操作時,4672的Account Name應該會顯示管理身分的帳號名稱,不過,若是利用Pass-the-Hash時候顯示的名稱會是一般使用者的abc。


因此我們可以把event ID 4624的Logon Type:9作為特徵來做偵測,並且配合其他EventID做確認。


以上是整理的內容,由於一些惡意行為會產生的event ID單一來看蠻多會覺得是正常行為,比較難以看出是否有異常。所以還是需要結合其他的event ID來做輔助比對,以及取得一些額外的log(像是網路等等)來幫助判斷。


這次主要針對Lateral movement幾個比較會用到的EventID來看,其他IR常看的EventID應該也蠻多人有做整理跟分享建議,建議可以實際看看自己的EventID欄位內容來增加熟悉度。 


有任何資安問題,歡迎隨時與NEITHNET團隊聯繫!


參考來源:
 https://learn.microsoft.com/en-us/defender-for-identity/lateral-movement-alerts 
 https://attack.mitre.org/techniques/T1550/
 https://attack.mitre.org/tactics/TA0008/
 https://learn.microsoft.com/zh-tw/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4625?WT.mc_id=DOP-MVP-37580
 https://blog.netwrix.com/2021/11/30/how-to-detect-pass-the-hash-attacks/