使用PowerShell创建Active Directory安全报告

使用 PowerShell 建立 Active Directory 安全報告。首先,保護 Active Directory(AD)環境對於多種原因至關重要。首先,Active Directory是許多組織網絡的核心組件,並且包含大量有關用戶、計算機和其他網絡資源的敏感信息。如果這些信息落入錯誤的人手中,他們可能會利用它來破壞整個網絡安全

本文討論了使用PowerShell保護我們的 Active Directory 環境的不同方法。

讓我們從使用 PowerShell 建立 Active Directory 安全報告開始。

使用 PowerShell 建立 Active Directory 安全報告

先決條件本文中的一些命令將使用 Active Directory命令。因此,在本文中,我們需要安裝預先要求的組件:

本文中的一些命令將使用 Active Directory命令。因此,在本文中,我們需要安裝預先要求的組件:

在開始之前,請確保我們具備上述先決條件,並使用以下代碼片段導入Active Directory模塊。

Install-Module ActiveDirectory
Import-Module ActiveDirectory

保護Active Directory的不同方法

有多種方法可以保護我們的Active Directory環境。在下一節中,我們將討論幾種保護Active Directory基礎設施的方法。

應用細粒度密碼和帳戶鎖定策略

總而言之,Active Directory 預設包含一個 密碼策略。然而,管理員也可以設定更嚴格的 密碼 策略和帳戶鎖定策略。這個過程讓我們能夠為特權帳戶設置更安全的密碼和帳戶鎖定設定。

使用以下 PowerShell 命令來在一個已安裝並導入了 AD Module for Windows PowerShell 的系統上建立精細化的密碼和帳戶鎖定策略。

鎖定策略腳本:

New-ADFineGrainedPasswordPolicy PolicyName -ComplexityEnabled $true -LockoutThreshold "3" -MaxPasswordAge "30.00:00:00" -MinPasswordLength "14" -PasswordHistoryCount "20" -Precedence "1" -ReversibleEncryptionEnabled $false -ProtectedFromAccidentalDeletion $true

精細化密碼策略腳本:

Add-ADFineGrainedPasswordPolicySubject PolicyName -Subjects GroupName

查看使用者帳戶的msDS-ResultantPSO屬性以確定應用哪個細粒度的密碼和帳戶鎖定政策。此外,它揭示了涉及的密碼政策參考。對此,我們也可以使用Get-ADUserResultantPasswordPolicy PowerShell命令。

管理Active Directory快照

對於 Active Directory的快照可能有助於在組織需要比較特定時間(我們拍攝快照的時間)的信息與另一個時間點的數據的情況。

A functional Active Directory VSS Writer and the Volume Shadow Copy functionality are required to create an Active Directory snapshot. These features come standard with Windows Server.

以屬於網域控制器(網域管理員備份操作員群組的用戶帳戶登錄,以便與快照一起工作。登錄後,打開命令提示符並嘗試以下步驟。

使用PowerShell創建Active Directory快照,我們可以使用Export-DSSnapshot命令:

Export-DSSnapshot -Path

之後,如果您希望使用PowerShell查看所有Active Directory快照,我們可以使用Get-DSSnapshot命令:

Get-DSSnapshot -Path

然後,使用PowerShell掛載Active Directory快照,我們使用Mount-DSSnapshot cmdlet。例如,以下命令將從指定位置掛載具有指定ID的快照:

Mount-DSSnapshot -Path  -Identity

上述的PowerShell cmdlet將會輸出數據庫被掛載的位置。要將其作為一個LDAP存儲暴露出來,運行以下命令:

dsamain.exe -dpbath "" -LDAPport

只要我們希望LDAP服務器運行,就保持這個命令運行。要查找信息,使用AD模塊中的Windows PowerShell cmdlet。輸入-Server參數以及服務器的名稱和端口號,並用分號分隔,如下所示:

Get-ADComputer -Identity * -Server Localhost:PortNumber

或者,我們可以使用額外的Active Directory工具,例如 ldifde.exe 和 csvde.exe 來在快照和Active Directory之間傳輸信息。不幸的是,沒有原生的工具可用於執行這些類型的操作。

管理已刪除的Active Directory對象

總之,Active Directory的墓碑過程允許域控制器複製刪除。當啟用AD回收站時,DC在對象被墓碑化之前複製已刪除的對象。

在這種狀態下,我們可以在已刪除對象容器中看到已刪除的對象。基本上,我們將對象從此容器恢復,包括它們的組成員資格和其他屬性,到它們的原來位置或不同的容器。

在安裝了AD模塊的Windows PowerShell的系統上,使用以下PowerShell命令查看域的已刪除AD對象:

Get-ADObject -IncludeDeletedObjects -Filter *

此外,要恢復已刪除的AD對象,請在安裝了AD Windows PowerShell模塊的系統上使用以下PowerShell命令:

Get-ADObject -Filter { displayName -eq "" } - IncludeDeletedObjects |
Restore-ADObject

在AD中重置Kerberos服務帳戶密碼

在多域環境中,每個Active Directory域都有其KRBTGT帳戶,所有完全可寫的域控制器都使用該帳戶。此外,我們單獨為每個只讀域控制器分配KRBTGT帳戶。

破壞Kerberos服務帳戶會導致Kerberos安全性喪失和審計日誌記錄

當然,如果您希望重置服務帳戶的密碼,請以域管理員權限登錄到DC並運行以下命令:

Set-ADAccountPassword -Identity (Get-ADUser krbtgt).DistinguishedName -Reset -NewPassword (ConvertTo-SecureString "" -AsPlainText -Force)

保護AD環境的其他方法

有許多其他方法可以保護Active Directory,我們提到了其中一些。然而,要解釋所有這些方法將需要更多的文章,因此這裡列出了一些概念,說明我們可以做些什麼來保護您的Active Directory環境:

  • 備份和還原 GPO以及 AD 資料庫 (NTDS)
  • 管理目錄服務還原模式 (DSRM) 密碼在 DC 上
  • 實施本地管理員密碼解決方案 (LAPS)
  • 與群組管理服務帳戶 (gMSA) 合作
  • 使用安全配置精靈 (SCW) 來保護 DC
  • 管理和監控受保護的用戶組
  • 有效利用驗證策略和驗證策略孤島配置外部網絡智能鎖定
  • 等等

現在讓我們進入下一節,討論如何使用PowerShell導出安全和審計報告。

使用PowerShell創建Active Directory安全審計報告

Microsoft在幾次迭代前在AD中引入了先進的安全審計策略。此功能將審計選項擴展到十個類別:

  • 全局對象訪問審計
  • 帳戶登錄
  • 帳戶管理。 
  • 詳細跟蹤。 
  • 目錄服務訪問。 
  • 登入/登出
  • 物件存取
  • 原則變更
  • 權限使用
  • 和系統使用

對於這些類別中的每一個,都有多種稽核選項。此外,當啟用時,該原則會在事件檢視器中添加來源為Microsoft Windows安全稽核的條目。

若要配置進階安全稽核原則,請按照以下步驟操作:

  1. 打開群組原則管理控制台
  2. 導航到您想要配置原則的域的域控制器節點。
  3. 右鍵點擊默認域控制器原則,然後從菜單中點擊編輯
  4. 展開計算機配置,點擊原則,點擊Windows設置,點擊安全設置,點擊進階稽核原則配置,點擊稽核原則,然後點擊DS存取

1. 雙擊審核目錄服務變更設置。
2. 勾選以配置審核事件,並選擇成功失敗審核事件。
3. 保存設置並關閉屬性屏幕。
4. 關閉組策略管理編輯器窗口。

使用PowerShell,Get-WinEvent Cmdlet允許系統審計員自定義高級過濾選項。例如,以下簡單的一行命令將查詢所有安全日誌 並將它們導出到一個CSV文件作為生成的報告。

Get-WinEvent -FilterHashtable @{LogName="Security"} | Export-Csv -Path .\Security.csv -NoTypeInformation

CSV文件應該如下所示:

從域控制器的事件查看器日誌複製審核事件到集中式安全事件和事件管理(SIEM)解決方案是一種推薦的做法。

感謝閱讀使用PowerShell創建Active Directory安全報告。我們現在將結束本文。

使用PowerShell創建Active Directory安全報告結論

除了上述的安全問題外,如果未能充分保護Active Directory環境,還可能出現合規性和監管問題。例如,許多組織必須符合特定的數據安全和隱私標準。未能保護好Active Directory可能使它們面臨不符合規定和潛在罰款的風險。

Source:
https://infrasos.com/create-active-directory-security-reports-with-powershell/