問題描述:安全
因自動化開發密碼回顯問題致使默認或重置密碼會明文記錄在域用戶userpassword字段,屬於高危安全風險。微信
環境信息:app
Windows Server 2008R2/2012R2/2016 ActiveDirectoryide
問題現象:測試
緣由分析:ui
因爲代碼設計同窗與域管同窗溝通問題未能正確梳理代碼及域密碼更改邏輯;spa
安全提測過程當中只涉及業務安全性掃描,未對代碼內容及後臺安全隱患進行提測等;設計
解決步驟:orm
1.過濾當前存在明文密碼字段用戶信息,本例以xiaowen賬號爲例復現:blog
Get-ADUser -Identity xiaowen -Properties * |select CN,Company,Department,Description,DisplayName,DistinguishedName,EmailAddress,EmployeeID,EmployeeNumber,mail,Manager,Name,sn,StreetAddress,Title,userPassword,UserPrincipalName
2.通常涉及域賬號敏感字段信息,咱們會經過清空或者替換敏感字段爲其餘字符等內容進行操做;
本例咱們使用常規方法賦值爲空有報錯,賦值爲空格或其餘值均可以實現;與咱們想要實現的內容仍是有區別的。
Eg:以更新company公司字段進行簡單介紹:(附:兩種替換值的方法:)
賦值爲空:
Get-ADUser -Identity xiaowen |Set-ADUser -Company ""
Get-ADUser -Identity xiaowen |Set-ADUser -Replace @{Company=""}
賦值爲空格或其餘字符:
Get-ADUser -Identity xiaowen |Set-ADUser -Company " "
Get-ADUser -Identity xiaowen |Set-ADUser -Replace @{Company="1"}
3.經過直接賦值的操做沒法實現,咱們這裏引用write-host方法嘗試,發現域環境下部分字段支持空值替換,具體方法以下:
$company = Write-Host ""
Get-ADUser -Identity xiaowen |Set-ADUser -Company $company
4.一樣的方法咱們引用到本章節替換明文密碼字段,發現爲空不行,只能替換成空格或者其餘字節信息,以下:
5.經過上邊測試的方法咱們發現始終實現不了密碼字段清空的操做,最終只能變換操做方法,終於功夫不負有心人,經過-clear完成清理操做,以下:
Get-ADUser -Identity xiaowen -Properties * |select Samaccountname,name,userPassword
Get-ADUser -Identity xiaowen -Properties * |Set-ADUser -Clear userpassword
6.在測試過程當中咱們發現,經過-clear能夠快速清空用戶自完善或者非系統屬性信息。
PS.Set-ADUser ** -clear 沒法清理系統自帶屬性或者域賬號必須屬性。
附:快速清理名單中用戶明文密碼字段信息腳本:
Import-Csv C:\user.csv | ForEach-Object { Set-ADUser -Identity $_.SamAccountName -Clear userpassword }
歡迎關注微信公衆號:小溫研習社