簡介
在組策略之外,Windows 允許你自訂密碼原則,濫用這個機制可以實現一些惡意行為。今天為大家科普下
當我們按下 CTRL + ALT + DEL,修改使用者密碼時,在 Windows 伺服器端,會發生什麼呢。
首先,Windows 伺服器(域控)會檢查註冊表,找到 Password Filter,也就是 LSA Notification Package。然後挨個調用DLL,檢查密碼是否符合策略,
如果不符合策略,就提示密碼不夠健壯,
在預設情況下,域上的伺服器包含兩個DLL,其中 seccli 負責實現密碼安全性原則,也就我們常用的GPO了
我們今天的主題,就是如何濫用這個機制,實現一個密碼原則外掛程式,以記錄所有域使用者的密碼
一家上市公司,為了符合SOX 404審計要求,密碼每三個月就要強制修改一次,剛好可以觸發這個機制
查了下官方文檔,一個密碼外掛程式需要匯出三個函數,
其中 PasswordFilter 負責檢查密碼是否合規;PasswordChangeNotify 是在工作站上執行,負責告知工作站使用者密碼變更。
最終的原始碼和64位的DLL可以在這裡下載(使用 build.cmd 編譯) 安裝外掛程式
我們登陸域控,將編譯好的 SecureFilter.dll 複製到 %system32% 目錄,
然後開啟註冊表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Notification Package
添加SecureFilter 字樣
重啟 DC 伺服器後生效 實戰示範
我們登陸一台工作站,修改密碼,
回到域控,發現日誌已經寫入了 寫在最後
經過測試,無論你用何種方式修改密碼,OWA 還是命令列,效果都是一樣的;在未加域的伺服器上效果也是一樣
如果想要立即擷取某個使用者的密碼,在域控上輕輕一勾即可 “User must change password at next logon”,如圖所示:
參考資料 https://www.slideshare.net/nFrontSecurity/how-do-password-filters-work https://technet.microsoft.com/en-us/library/cc963221.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms721766(v=vs.85).aspx.aspx)