近期遇到稽核單位稽核AD帳號的問題
通常稽核人員,會請AD管理提供所有AD帳號清單,其中會需要一些特定的欄位
然後也會請HR單位提供目前在職員工清單。
關於AD帳號要稽核的東西不外乎
1.人員清單和AD帳號是否對的上
2.已離職員工,帳號是否移除
3.高權限帳號清單
4.高權限群組內的成員
5.還會問一些屬性的問題
撈取AD 資訊除了powershell 外ad-info 也是不錯的小工具
http://www.cjwdev.co.uk/Software/ADReportingTool/Download.html
這次我們來探討關於UserAccountControl 這個屬性
根據微軟說明 一般使用者帳號UserAccountControl 為 0x200 (512)
屬性旗標值
PASSWD_NOTREQD 0x0020 32 (不需要密碼)
DONT_EXPIRE_PASSWORD 0x10000 65536 (代表密碼,該密碼不應在帳戶上過期)
所以 UserAccountControl 屬性值為 512 + 特殊設定狀態定義值
帳號如果是停用狀態(disable)
UserAccountControl 值是 514、546、66080,66082
514: 帳號停用
546:帳號停用(但是允許設定空密碼)
66082: 帳號停用(但是允許設定空密碼,密碼不過期)
66050(帳號停用,密碼部過期,不允許空密碼)
帳號如果是啟用狀態(enable)
UserAccountControl 值是 512,544,66048,262656
512 : 正常帳戶,需定期變更密碼
66048 為帳號啟用,密碼設定永久有效,不允許設定空密碼
544 表示帳號啟用,但是允許設定空密碼
66080 :(表示帳號啟用,但是允許設定空密碼,密碼不過期)![]()
以上大致簡單說明數值代表的意義
回到稽核問題:
以我司為例
主要是因為目前我的單位AD帳號是開發同仁的程式再去撈HR的員工資料庫
所以AD帳號建立後會先設定允許空密碼,然後再從HR資料將生日設定為預設登入密碼
所以會有 6680 ,544 等屬性值,所以稽核就會認為允許空密碼不合規。
改善方式就是改一下流程在設定好密碼後再把設定改掉(請程式開發人員調整)
——————————————————————————————————-
查詢指令 true 表示可設定空密碼 false 為不可設定
Get-ADUser -identity user1 – properies * | select PasswordNotRequired
設定為不允許空密碼
Get-ADUser -Identity User1| Set-ADUser -PasswordNotRequired $false
——————————————————————————————————-
另外以資安角度,這是一個高風險設定,特別是在企業或網域環境中。
參考資料





