
Инструмент Powershell для автоматизации перечисления Active Directory.
# adPEAS v2 — Awesome-скрипты повышения привилегий в Active Directory
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/4985/094efb3e3ea9d020e014d57d49df2544da13c1a85d28db14f491e55817bcc68f.jpg" alt="Логотип adPEAS" width="800">
</p>
<p align="center">
<strong>Комплексная оценка безопасности Active Directory — без зависимостей, один файл, готово к работе.</strong>
</p>
---
## Что такое adPEAS?
adPEAS — это инструмент оценки безопасности на основе PowerShell, который выявляет ошибки конфигурации, уязвимости и пути повышения привилегий в средах Active Directory. Он предназначен для пентестеров, аудиторов безопасности и red team, которым нужен надёжный самодостаточный инструмент, работающий на любой системе Windows — без RSAT, без модуля ActiveDirectory, без сторонних зависимостей.
**adPEAS v2** — это полная переработка adPEAS v1. Она заменяет устаревший подход на основе `DirectoryEntry`/`DirectorySearcher` унифицированной архитектурой `System.DirectoryServices.Protocols.LdapConnection` и добавляет нативную аутентификацию Kerberos, расширенную отчётность и наступательные операции — всё на чистом PowerShell.
### Что нового в v2
- **Нативный стек Kerberos** — AS-REQ/AS-REP, TGS-REQ/TGS-REP, Pass-the-Ticket, PKINIT — всё на чистом PowerShell
- **Несколько методов аутентификации** — пароль, NT-хэш (OPtH), ключи AES (PtK), сертификаты (PKINIT и Pass-the-Cert/Schannel), встроенная аутентификация Windows
- **Более 40 проверок безопасности** в 9 категориях с оценкой серьёзности
- **Интерактивные HTML-отчёты** с поиском, фильтрацией, оценкой рисков и всплывающими подсказками
- **Экспорт в JSON** для офлайн-конвертации отчётов, инкрементального сканирования и сравнения сканирований
- **Коллектор BloodHound CE** — встроенный сбор данных для анализа путей атаки
- **Наступательные операции** — Kerberoasting, AS-REP Roasting, Golden/Silver/Diamond Tickets, злоупотребление RBCD, Shadow Credentials и многое другое
- **Рабочий процесс на основе сессий** — подключитесь один раз и интерактивно запускайте несколько проверок
- **Автодополнение по Tab** — автодополнение имён объектов AD для интерактивного исследования
> **Впервые работаете с adPEAS?** Ознакомьтесь с [руководством по быстрому старту](https://github.com/61106960/adpeas/blob/main/docs/02-Quick-Start.md) или прочитайте [серию статей в блоге на blog.sekurity.de](https://blog.sekurity.de/blog/adpeas-v2-introduction), чтобы глубже изучить архитектуру, аутентификацию и внутреннее устройство.
---
## Возможности кратко
| Категория | Основные возможности |
|----------|-----------|
| **Аутентификация** | Учётные данные, PKINIT, Pass-the-Cert, NT-хэш, ключи AES, аутентификация Windows, приоритет Kerberos с автоматическим откатом |
| **Проверки безопасности** | Конфигурация домена, Kerberoast, ASREPRoast, ACL, DCSync, делегирование, пути эскалации AD CS, злоупотребление GPO, LAPS, ключи восстановления BitLocker, устаревшие системы |
| **Отчётность** | Консоль (с цветовой кодировкой), обычный текст, интерактивный HTML, экспорт в JSON |
| **Наступательные операции** | Kerberoasting, AS-REP Roasting, Golden/Silver/Diamond Tickets, RBCD, Shadow Credentials, Pass-the-Ticket |
| **BloodHound** | Встроенный коллектор BloodHound CE (экспорт в ZIP) |
| **Режим OPSEC** | Пропуск активного тестирования (Kerberoast, ASREPRoast, BloodHound) |
| **Развёртывание** | Один файл `.ps1`, без RSAT, без внешних модулей, работает офлайн и в изолированных сетях |
---
## Требования
- **ОС**: Windows 10/11, Windows Server 2016/2019/2022/2025
- **PowerShell**: 5.1+ (Windows PowerShell)
- **.NET Framework**: 4.5+ (входит в состав Windows)
- **Сеть**: LDAP (389), LDAPS (636), Kerberos (88), SMB (445)
Модуль ActiveDirectory, RSAT или внешние модули PowerShell не требуются.
---
## Загрузка
### Релизные версии
| Файл | Размер | Сценарий использования |
|------|------|----------|
| `adPEAS.ps1` | ~4,5 МБ | Разработка, отладка, проверка кода |
| `adPEAS_min.ps1` | ~3-4 МБ | Обычное использование с меньшим размером |
| `adPEAS_ultra.ps1` | ~3 МБ | Минимальный размер, без комментариев |
| `adPEAS_obf.ps1` | <1 МБ | Наименьший размер, обфусцирован для передачи |
Все четыре версии функционально идентичны. Выбирайте в зависимости от сценария развёртывания.
```powershell
# Clone the repository
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
```
### Сборка из исходного кода
Ветка `main` всегда содержит актуальную сборку всех четырёх вариантов, пересобираемую при каждом исправлении и добавлении функции, поэтому указанные выше прямые URL-адреса предоставляют самый свежий код. Эти сборки содержат строку версии для разработки (`2.5.1+20260917-1759`). К каждому помеченному тегом [GitHub Release](https://github.com/61106960/adPEAS/releases) прилагаются четыре стабильные сборки в виде загружаемых ресурсов с чистой строкой версии (`2.5.1`) — используйте их, если вам нужна известная версия, на которую можно ссылаться. Чтобы собрать из исходного кода самостоятельно:
```powershell
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
.\Build-Release.ps1
```
Это создаёт все четыре варианта (`adPEAS.ps1`, `adPEAS_min.ps1`, `adPEAS_ultra.ps1`, `adPEAS_obf.ps1`) в корне репозитория. Требуется Windows PowerShell 5.1 и никаких дополнительных зависимостей.
---
## Быстрый старт
```powershell
# Option 1: Import as module (recommended)
Import-Module .\adPEAS.ps1
# Option 2: Dot-sourcing
. .\adPEAS.ps1
# Option 3: Read and execute in memory
Get-Content -Raw .\adPEAS.ps1 | Invoke-Expression
# Option 4: Load directly from GitHub into memory (no file on disk).
# Both variants work; on an older/hardened host that still defaults to TLS 1.0,
# prepend once: [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# 4a: WebClient - shortest. DownloadString detects and strips the file's UTF-8 BOM
# itself, so nothing extra is needed. WebClient is a legacy API but works everywhere.
Invoke-Expression (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/61106960/adPEAS/main/adPEAS_obf.ps1')
# 4b: Invoke-WebRequest - the modern cmdlet. Its .Content keeps the BOM as a leading
# U+FEFF that Invoke-Expression cannot parse, so TrimStart removes it first.
Invoke-Expression ((Invoke-WebRequest -Uri "https://raw.githubusercontent.com/61106960/adPEAS/main/adPEAS_obf.ps1" -UseBasicParsing).Content.TrimStart([char]0xFEFF))
```
### Однострочный запуск (совместимо с v1)
```powershell
# Domain-joined machine (current user)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth
# With credentials
Invoke-adPEAS -Domain "contoso.com" -Username "john.doe" -Password "P@ssw0rd!"
# OPSEC mode (skip Kerberoast, ASREPRoast, BloodHound)
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -OPSEC
```
### На основе сессий (стиль v2)
```powershell
# Connect once
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth
# Run full scan
Invoke-adPEAS
# Or run individual checks
Get-KerberoastableAccounts
Get-ADCSVulnerabilities
Get-DangerousACLs
# Disconnect when done
Disconnect-adPEAS
```
### Методы аутентификации
```powershell
# Credentials
Connect-adPEAS -Domain "contoso.com" -Credential (Get-Credential)
# Overpass-the-Hash (NT-Hash)
Connect-adPEAS -Domain "contoso.com" -Username "admin" -NTHash "32ED87BDB5FDC5E9CBA88547376818D4"
# Pass-the-Key (AES256)
Connect-adPEAS -Domain "contoso.com" -Username "admin" -AES256Key "4a3b2c1d5e6f..."
# PKINIT (Certificate)
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx"
# Pass-the-Cert / Schannel (LDAPS, no Kerberos)
Connect-adPEAS -Domain "contoso.com" -Certificate "user.pfx" -PassTheCert
# LDAPS
Connect-adPEAS -Domain "contoso.com" -UseWindowsAuth -UseLDAPS
```
### Вывод и отчётность
```powershell
# All formats (default) — creates .txt, .html, and .json
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report
# HTML only
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Outputfile .\report -Format HTML
# Offline report conversion from JSON
Convert-adPEASReport -InputJson ".\report.json" -OutputPath ".\new_report"
# Compare two scans (diff report)
Compare-adPEASReport -Baseline ".\scan_q1.json" -Current ".\scan_q2.json" -OutputPath ".\diff"
```
## Модули проверки безопасности
| Модуль | Описание |
|--------|-------------|
| `Domain` | Конфигурация домена, доверительные отношения, политика паролей, подписывание LDAP, подписывание SMB |
| `Creds` | Kerberoast, ASREPRoast, доступ к ключам восстановления LAPS и BitLocker, раскрытие учётных данных в SYSVOL |
| `Rights` | ACL, DCSync, права на сброс паролей, опасные разрешения OU |
| `Delegation` | Неограниченное, ограниченное делегирование, делегирование с ограничением по ресурсам |
| `ADCS` | Шаблоны сертификатов и CA: ESC1-ESC5, ESC8, ESC9, ESC13, ESC14, ESC15 (ESC10 через проверку GPO). Пути эскалации, требующие административного доступа к хосту CA, вне области охвата — см. [Security Checks](https://github.com/61106960/adpeas/blob/main/docs/04-Security-Checks.md) |
| `Accounts` | Привилегированные учётные записи, защищённые пользователи, сервисные учётные записи, история SID |
| `GPO` | Разрешения GPO, членство в локальных группах, запланированные задачи, сценарии, опасные параметры реестра (WDigest, AlwaysInstallElevated, OneLogon/Zerologon, …) и политики драйверов принтеров Point and Print (PrintNightmare), развёрнутые через GPO |
| `Computer` | LAPS, устаревшие системы, инфраструктурные серверы |
| `Application` | Инфраструктура Exchange, SCCM, SCOM |
| `Bloodhound` | Сбор данных BloodHound CE |
Запуск отдельных модулей:
```powershell
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Module Domain,Creds,ADCS
```
Или запустите всё, кроме нескольких, не перечисляя остальные:
```powershell
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -ExcludeModule Bloodhound,Computer
```
## Документация
Полная документация доступна в каталоге [docs/](https://github.com/61106960/adpeas/blob/main/docs):
| Документ | Тема |
| ------------------------------------------------------- | --------------------------------- |
| [Installation](https://github.com/61106960/adpeas/blob/main/docs/01-Installation.md) | Загрузка, установка, политика выполнения |
| [Quick-Start](https://github.com/61106960/adpeas/blob/main/docs/02-Quick-Start.md) | Начало работы за 5 минут |
| [Authentication](https://github.com/61106960/adpeas/blob/main/docs/03-Authentication-Methods.md) | Все варианты аутентификации |
| [Security Checks](https://github.com/61106960/adpeas/blob/main/docs/04-Security-Checks.md) | Полный справочник проверок |
| [BloodHound Collector](https://github.com/61106960/adpeas/blob/main/docs/05-BloodHound-Collector.md) | Экспорт BloodHound CE |
| [Core Functions](https://github.com/61106960/adpeas/blob/main/docs/06-Core-Functions.md) | Функции LDAP-запросов |
| [Set- & New-Modules](https://github.com/61106960/adpeas/blob/main/docs/07-Set-Modules.md) | Функции изменения AD |
| [Helper Functions](https://github.com/61106960/adpeas/blob/main/docs/08-Helper-Functions.md) | Вспомогательные функции |
| [Architecture](https://github.com/61106960/adpeas/blob/main/docs/09-Architecture.md) | Техническая архитектура |
| [Risk Scoring](https://github.com/61106960/adpeas/blob/main/docs/10-Risk-Scoring-System.md) | Оценки серьёзности и риска |
| [Troubleshooting](https://github.com/61106960/adpeas/blob/main/docs/11-Troubleshooting.md) | Типичные проблемы и решения |
| [FAQ](https://github.com/61106960/adpeas/blob/main/docs/12-FAQ.md) | Часто задаваемые вопросы |
### Серия публикаций в блоге
Подробная серия публикаций, посвящённая внутреннему устройству adPEAS v2, опубликована на [blog.sekurity.de](https://blog.sekurity.de/blog/adpeas-v2-introduction).
---
## Лицензия
adPEAS распространяется по модели **source-available**. Внутренние оценки безопасности собственной организации бесплатны. Коммерческое использование (консалтинг, MSP, платные проекты) требует коммерческой лицензии.
Полные условия см. в [LICENSE](https://github.com/61106960/adpeas/blob/main/license/LICENSE.md), коммерческое соглашение — в [COMMERCIAL_AGREEMENT](https://github.com/61106960/adpeas/blob/main/license/COMMERCIAL_AGREEMENT.md), варианты лицензирования — в [PRICING](https://github.com/61106960/adpeas/blob/main/license/PRICING.md).
- **Вопросы лицензирования:** [email protected]
- **Техническая поддержка:** [email protected]
---
## Правовое уведомление
adPEAS предназначен **только для авторизованного тестирования безопасности**. Всегда получайте письменное разрешение перед тестированием. Никогда не используйте инструмент против систем, которыми вы не владеете и на тестирование которых у вас нет разрешения. Авторы не несут ответственности за неправомерное использование данного инструмента. Соблюдайте все применимые законы и нормативные акты.
---
## Автор
**Alexander Sturz** — [SEKurity GmbH](https://sekurity.de)
- GitHub: [@61106960](https://github.com/61106960)
- Блог: [blog.sekurity.de](https://blog.sekurity.de)