使用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命令行在一个安装并导入了适用于Windows PowerShell的AD模块的系统上创建一个细粒度的密码和账户锁定策略。

锁定策略脚本:

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-ADUserResultantPasswordPolicyPowerShell命令。

管理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.

使用属于域管理员备份操作员组的用户账户登录到域控制器(DC)以处理快照。登录后,打开命令提示符并尝试以下步骤。

要使用PowerShell创建活动目录快照,我们可以使用Export-DSSnapshot命令:

Export-DSSnapshot -Path

之后,如果您希望使用PowerShell查看所有活动目录快照,我们可以使用Get-DSSnapshot命令:

Get-DSSnapshot -Path

然后,要使用PowerShell挂载活动目录快照,我们使用Mount-DSSnapshot cmdlet。例如,下面的命令将从指定位置挂载具有指定ID的快照:

Mount-DSSnapshot -Path  -Identity

上述PowerShell cmdlet将输出数据库挂载位置。要将其作为LDAP存储公开,请运行以下命令:

dsamain.exe -dpbath "" -LDAPport

只要我们希望LDAP服务器运行,就保持此命令运行。要查找信息,请使用适用于Windows PowerShell cmdlets的AD模块。输入-Server参数以及服务器的主机名和端口号,用分号分隔,如下所示:

Get-ADComputer -Identity * -Server Localhost:PortNumber

或者,我们可以使用其他Active Directory工具,例如 ldifde.exe 和 csvde.exe 在快照和Active Directory之间传输信息。不幸的是,没有可用于执行这些类型操作的本机工具。

阅读更多:使用PowerShell创建活动目录登录报告

管理已删除的活动目录对象

总的来说,活动目录的墓碑化过程允许域控制器复制删除操作。当启用AD回收站时,DC在对象被墓碑化之前复制已删除的对象。

在这个状态下,我们可以在“已删除对象”容器中看到已删除的对象。基本上,我们可以从这个容器中恢复对象,包括它们的组成员资格和其他属性,恢复到原来的位置或不同的容器。

在安装了AD模块的Windows PowerShell系统上,使用以下PowerShell命令查看域中已删除的AD对象:

Get-ADObject -IncludeDeletedObjects -Filter *

此外,要在安装了AD Windows PowerShell模块的系统上恢复已删除的AD对象,请使用以下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环境:

  • 备份和恢复GPO以及AD数据库(NTDS
  • 管理目录服务恢复模式(DSRM)密码在DC上。
  • 实施本地管理员密码解决方案(LAPS
  • 与组托管服务帐户(gMSA)合作。
  • 使用安全配置向导(SCW)来保护DC。
  • 管理和监控受保护的用户组
  • 有效使用认证策略和认证策略孤岛配置外网智能锁定。
  • 以及更多。

现在让我们进入下一个部分,我们将讨论使用PowerShell导出安全和审计报告。

使用PowerShell创建Active Directory安全审计报告

微软在几个迭代前在AD中引入了高级安全审计策略。这个功能将审计选项扩展到十个类别:

  • 全局对象访问审计
  • 账户登录
  • 账户管理
  • 详细跟踪。
  • 目录服务访问。
  • 登录/注销。
  • 对象访问。
  • 策略更改。
  • 特权使用。
  • 和系统使用。

对于这些类别中的每一个,都有多个审计选项。此外,当启用该策略时,它会在事件查看器中添加源为Microsoft Windows安全审计的条目。

要配置高级安全审计策略,请按照以下步骤操作:

  1. 打开组策略管理控制台
  2. 导航到您想要配置策略的域的域控制器节点。
  3. 右键单击默认域控制器策略,然后从菜单中选择编辑
  4. 展开计算机配置,单击策略,单击Windows设置,单击安全设置,单击高级审计策略配置,单击审计策略,然后单击DS访问

5. 双击审核目录服务更改设置。
6.
勾选配置审核事件的复选框,并选择成功失败审核事件。
7. 保存设置并关闭属性屏幕。
8. 关闭组策略管理编辑器窗口。

使用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/