sensepost/InvokeADCheck
GitHub: sensepost/InvokeADCheck
一个用于评估 Active Directory 环境安全性的 PowerShell 模块,通过多种检查项识别配置错误和安全隐患。
Stars: 117 | Forks: 15
# InvokeADCheck
一个旨在评估 Active Directory 环境安全性的 PowerShell 模块。
## 描述
InvokeADCheck 是一个旨在简化 Active Directory (AD) 环境评估的 PowerShell 模块。
它执行各种检查以识别潜在的安全配置错误、弱点以及对最佳实践的遵循情况。
通过 PowerShell CLI 运行针对性检查,该模块提供详细的结果和可操作的见解。它为 IT 管理员和安全专业人员提供了主动识别和解决 AD 环境中潜在安全风险的手段。
**注意:** InvokeADCheck 主要用于单个 AD 林内较小的 Active Directory 域。本模块按“原样”提供,不提供任何支持或保证。
## 要求
要使用 InvokeADCheck,请确保满足以下先决条件:
* PowerShell 版本 5.0(或更高版本)
* Windows 10 或 Windows 2016(或更新版本)
* PowerShell Active Directory 模块
可选:
* PowerShell Group Policy 模块
## 安装
要直接安装该模块,请运行以下 PowerShell 命令:
```
iex(New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/sensepost/InvokeADCheck/refs/heads/main/Install.ps1")
Import-Module -Name InvokeADCheck
```
或者,将存储库克隆到您的计算机,导航到 `\InvokeADCheck\releases\InvokeADCheck` 目录,并将该模块导入到您的会话中以进行测试而无需安装:
```
Import-Module .\InvokeADCheck.psm1
```
## 用法
### 运行所有检查并将结果输出到控制台
```
PS C:\> Invoke-ADCheck
```
### 运行特定检查并将结果输出到控制台和 JSON 文件
```
PS C:\> Invoke-ADCheck -Checks ADBackupStatus, DomainController -OutputTypes CLI, JSON -OutputPath C:\Temp
```
### 运行所有检查并将结果输出到控制台和 Excel 文件
```
PS C:\> Invoke-ADCheck -OutputTypes CLI, XLSX -OutputPath C:\Temp
```
### 使用特定的域控制器和凭据运行所有检查
```
PS C:\> Invoke-ADCheck -OutputTypes CLI -Server "ad.domain.tld" -Credential (Get-Credential)
```
## 精选检查
| 检查项 | 描述 |
|-------------------------|--------------------------------------------------------------------------------------------|
| All | 运行所有可用的检查 |
| ADBackupStatus | 获取 Active Directory 备份的状态 |
| BuiltInGroupMembership | 获取 Active Directory 内置组的成员 |
| DefaultAdministrator | 获取默认 Administrator 账户设置 |
| DefaultDomainPasswordPolicy | 获取默认域密码策略 |
| DomainController | 获取有关域控制器的信息 |
| DomainTrust | 获取域信任关系 |
| FunctionalLevel | 获取域和林功能级别 |
| GPO | 获取组策略对象 |
| GPOPermission | 获取组策略对象的权限 |
| GPPPassword | 获取组策略首选项 密码 |
| GuestAccount | 获取 Active Directory 来宾账户的状态 |
| KerberosDelegation | 获取账户的 Kerberos 委派设置 |
| KerberosEncryptionType | 获取域中使用的 Kerberos 加密类型 |
| KerberosServiceAccount | 获取有关内置 KRBTGT 账户的信息 |
| MachineQuota | 获取 `ms-DS-MachineAccountQuota` 属性 |
| ProtectedUsersGroup | 获取有关 Protected Users 组的信息 |
| RootACL | 从域根 ACL 中获取感兴趣的访问控制项(实验性)|
| TombstoneLifetime | 获取 Active Directory 废弃项目生命周期属性 |
| UserAccountHealth | 检查 Active Directory 用户账户的运行状况 |
## 贡献
请随时通过开启新议题或提供拉取请求来进行贡献。
为了获得最佳开发体验,请在 Visual Studio Code 中作为文件夹打开此项目,并确保已安装 PowerShell 扩展。
* [Visual Studio Code](https://code.visualstudio.com/)
* [PowerShell Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell)
此模块使用 PowerShell 测试框架 Pester 进行测试。要运行所有测试,只需使用测试参数 `.\Build.ps1 -test` 启动包含的构建脚本。
## 作者
* [Niels Hofland](https://github.com/N1ck3nd)
* [Justin Perdok](https://github.com/justin-p)
**网站:**
## 致谢
* [ModuleBuild](https://github.com/ModuleBuild/ModuleBuild) - 一个 PowerShell 模块构建框架。
* [Invoke-TrimarcADChecks](https://github.com/Trimarc/Invoke-TrimarcADChecks/) - 一个 PowerShell Active Directory 评估脚本。
* [ImportExcel](https://github.com/dfinke/ImportExcel) - 一个用于导入/导出 Excel 电子表格的 PowerShell 模块,无需安装 Excel。
标签:Active Directory, AD安全, AD防御, AI合规, Conpot, IPv6, IT合规, Libemu, Libemu, Plaso, PowerShell, Sysadmin工具, Terraform 安全, URL发现, Web报告查看器, Windows安全, 二进制发布, 反取证, 域控制器, 域环境, 安全基线检查, 安全检测, 安全脚本, 安全评估, 开源工具, 红队侦察, 网络安全, 隐私保护