又一則奇怪的 4625 登入失敗稽核事件案例 - 在 AD 網域 Domain Controller 上出現某台機器「本機使用者帳號」登入失敗記錄。

情境說明如下。

出場角色有三位,隸屬同一網域的三台主機 - ServerA、ServerB 與 ServerDC。

  • ServerA - 排程主機,設了 Windows 排程每日固定時間執行 \\ServerB-IP\SchProg\SomeTask.exe
  • ServerB - SomeTask.exe 會在多台機器執行,故放在網路分享資料夾 SchProg 供其他主機讀取
  • ServerDC - 該網域的 Domain Controller

基於某個理由,ServerA 沒用 Domain 帳號而是另建本機帳號 ServerA\schrunner 跑 SomeTask 排程,排程執行正常,但 ServerDC 稽查報表在排程執行時間出現 schrunner 帳號登入失敗的記錄。

因 ServerA 排程會存取 \\ServerB-IP\SchProg\SomeTask.exe,依上週 Wireshark 觀察 SMB 傳輸可知,Windows 連線網路分享時會以先以當時的登入帳號嘗試認證,但扯到 Domain Controller 又是怎麼一回事?

這裡需要一點背景知識,網路分享或 IIS 網站的 Windows 驗證粗分為兩類:NT 時代就有的 NTLM,以及 Windows 2000 起推出的 Kerberos。(參考:關於 IIS 整合式 Windows 驗證的冷知識)

NTLM 安全性較差,但優點客戶端不需連到 Domain Controller,資源主機(檔案伺服器、網站)可代替客戶端向 Domain Controller 驗證帳號密碼(透過 Challenge/Response 形式)。對外服務網站的 Domain Controller 通常在防火牆後端,NTLM 可以突破網路限制完成登入驗證。

Kerberos 有較嚴密的加密機制,且票證概念可減少 Domain Controller 反覆認證的頻率,效能與安全性較佳,但要成功有較嚴格的限制:

  1. 客戶端與資源主機都必須是網域成員
  2. 客戶端要能連上 Domain Controller (TCP/UDP 88 Port)
  3. 資源主機完成 SPN 註冊(並使用 DNS 或主機名稱連線,而非 IP,否則會 Fallback 到 NTLM)

上回的案例,檔案伺服器與客戶端不屬同一網域,Domain Controller 也被防火牆阻擋,故只能走 NTLM,登入失敗事件出現在檔案伺服器;而這次 ServerA 與 ServerB 同屬一個網域,網路分享雖是用 IP 而非機器名稱,理論上 Kerberos 會失敗 Fallback 到 NTLM,但推測客戶端仍會嘗試取得 Ticket Granting Ticket (TGT) (與資源主機無關,只包含當下時間、以密碼雜湊加密後的值、User Principal Name (UPN)... 等),此時便已留下登入失敗訊息。(推論依據:已消失的 KB322979 When a client uses Kerberos to authenticate itself to a server, the client requests a session ticket for the Service Principal Name (SPN). IP addresses are not names, so Kerberos is not used. After this occurs, the server goes through the list of the other supported security providers. 先試 Kerberos 再試其他管道 )

最後一個問題,既然用本機帳號不能登入網路分享資料夾,何以排程正常?答案是該分享有開 Everyone 讀取,換言之,即使開放匿名存取,使用目前登入身分嘗試登入的動作仍會存在,結案。

【延伸閱讀】


Comments

# by qpowjohn

請教茶包 我們DC也有不定時的4625出現 想請教您的思路 怎麼反推出來是ServerA在搞鬼? 我現在唯一的線索只有SourceIP和NTLM驗證失敗 其餘線索全部沒有...真的頭大

# by Jeffrey

to qpowjohn,推測依據有二,網路登入(Type 3)的 4625 事件有來源 IP 指向 ServerA、每次出現的時間點跟排程設定時間一模一樣。

# by qpowjohn

謝了,老實講我這邊環境有點髒,需要一點通靈(DUMP...etc)的能力才能找出來QQ

Post a comment


81 - 75 =