jakehildreth/Locksmith
GitHub: jakehildreth/Locksmith
一款用于检测和修复 Active Directory 证书服务常见错误配置的 PowerShell 安全工具。
Stars: 1474 | Forks: 136
# 锁匠
```
_ _____ _______ _ _ _______ _______ _____ _______ _ _
| | | | |____/ |______ | | | | | |_____|
|_____ |_____| |_____ | \_ ______| | | | __|__ | | |
.--. .--. .--.
/.-. '----------. /.-. '----------. /.-. '----------.
\'-' .---'-''-'-' \'-' .--'--''-'-' \'-' .--'--'-''-'
'--' '--' '--'
```
一个小巧的工具,用于查找并修复 Active Directory 证书服务中的常见错误配置。



[](https://github.com/jakehildreth/locksmith/graphs/contributors/)
[](http://makeapullrequest.com)


## 目录
1. [Installation](#installation)
2. [Run Locksmith](#run-locksmith)
1. [Mode 0](#mode-0-identify-issues-output-to-console-default)
2. [Mode 1](#mode-1-identify-issues-and-fixes-output-to-console)
3. [Mode 2](#mode-2-identify-issues-output-to-csv)
4. [Mode 3](#mode-3-identify-issues-and-fixes-output-to-csv)
5. [Mode 4](#mode-4-fix-all-issues)
6. [Scans](#scans)
## 安装说明
### 前置条件
1. Locksmith 必须在已加入域的系统上运行。
2. 在导入 Locksmith 模块之前,必须安装 ActiveDirectory 和 ServerManager PowerShell 模块。
3. 某些检查和修复操作可能需要管理员权限。
### 标准模块安装
打开 PowerShell 提示符,从 PowerShell Gallery 安装 Locksmith:
```
Install-Module -Name Locksmith -Scope CurrentUser
```
### 其他安装方法
1. 下载并使用模块(无需安装)
1. 下载 [latest module version](https://github.com/jakehildreth/Locksmith/releases/latest/download/Locksmith.zip)。
2. 打开 PowerShell 提示符,定位到解压文件的位置,然后运行:
Unblock-File .\Locksmith.zip # 如有必要,解除下载阻止
Expand-Archive .\Locksmith.zip
Import-Module .\Locksmith\Locksmith.psd1
Invoke-Locksmith
2. 下载独立脚本(无模块)
1. 下载 [latest monolithic (all-in-one) script version](https://github.com/jakehildreth/Locksmith/releases/latest/download/Invoke-Locksmith.zip)。
2. 打开 PowerShell 提示符,定位到下载文件的位置,然后运行:
Unblock-File .\Invoke-Locksmith.zip
Expand-Archive .\Invoke-Locksmith.zip -DestinationPath .\
.\Invoke-Locksmith.ps1
## 运行 Locksmith
运行 `Invoke-Locksmith` 时,有几种模式可供选择。您还可以使用 **Scans** 参数来选择要调用的扫描。
### 模式 0:识别问题,输出到控制台(默认)
不带参数运行 `Invoke-Locksmith.ps1` 或使用 `-Mode 0` 将扫描当前的 Active Directory 林,并以 **表格** 格式将所有发现的 AD CS 问题输出到控制台。
```
# 模块语法
Invoke-Locksmith
```
```
# 脚本语法
.\Invoke-Locksmith.ps1
```
模式 0 示例输出:
### 模式 1:识别问题和修复方案,输出到控制台
此模式扫描当前林,并以 **列表** 格式将所有发现的 AD CS 问题和可能的修复方案输出到控制台。
```
# 模块语法
Invoke-Locksmith -Mode 1
```
```
# 脚本语法
.\Invoke-Locksmith.ps1 -Mode 1
```
模式 1 示例输出:
### 模式 2:识别问题,输出到 CSV
Locksmith 模式 2 扫描当前林,并将所有发现的 AD CS 问题输出到当前工作目录下的 ADCSIssues.CSV 文件中。
```
# 模块语法
Invoke-Locksmith -Mode 2
```
```
# 脚本语法
.\Invoke-Locksmith.ps1 -Mode 2
```
模式 2 示例输出:
### 模式 3:识别问题和修复方案,输出到 CSV
在模式 3 中,Locksmith 扫描当前林,并将所有发现的 AD CS 问题和示例修复方案输出到当前工作目录下的 ADCSRemediation.CSV 文件中。
```
# 模块语法
Invoke-Locksmith -Mode 3
```
```
# 脚本语法
.\Invoke-Locksmith.ps1 -Mode 3
```
模式 3 示例输出:
### 模式 4:修复所有问题
模式 4 是“一键修复”按钮。在模式 4 下运行 Locksmith 将识别所有错误配置,并提供修复每个问题的选项。如果存在任何可能的操作影响,Locksmith 会向您发出警告。
```
# 模块语法
Invoke-Locksmith -Mode 4
```
```
# 脚本语法
.\Invoke-Locksmith.ps1 -Mode 4
```
模式 4 示例输出:
### 扫描
使用 `-Scans` 参数选择要扫描的漏洞。可接受的值包括 `All`、`Auditing`、`ESC1`、`ESC2`、`ESC3`、`ESC4`、`ESC5`、`ESC6`、`ESC7`、`ESC8`、`ESC9`、`ESC11`、`ESC13`、`ESC15`、`EKEUwu`、`ESC16` 或 `PromptMe`。`PromptMe` 选项会显示一个交互式列表,允许您选择一个或多个扫描。
```
# 运行所有扫描
Invoke-Locksmith -Scan All
```
```
# 提示用户选择扫描列表
Invoke-Locksmith.ps1 -Scans PromptMe
```
```
# 扫描 ESC1 漏洞路径
Invoke-Locksmith.ps1 -Scans ESC1
```
```
# 扫描 ESC1、ESC2 和 ESC8 漏洞路径
Invoke-Locksmith.ps1 -Scans ESC1,ESC2,ESC8
```
感谢您使用 Locksmith! 💜
标签:Active Directory, AD CS, AI合规, Conpot, CTF, ESC漏洞, FTP, GitHub Advanced Security, IPv6, Libemu, Libemu, Libemu, log2timeline, MQTT, MSSQL, Plaso, PowerShell, SamuraiWTF, TLS, Windows安全, 二进制发布, 培训平台, 安全加固, 开源工具, 数据展示, 红队, 网页分析工具, 证书服务, 证据收集, 超级时间线, 软件清单, 防御工具