
Strumento Powershell per automatizzare l'enumerazione di Active Directory.
# adPEAS v2 — Active Directory Privilege Escalation Awesome Scripts
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/4985/094efb3e3ea9d020e014d57d49df2544da13c1a85d28db14f491e55817bcc68f.jpg" alt="adPEAS Logo" width="800">
</p>
<p align="center">
<strong>Valutazione completa della sicurezza di Active Directory — zero dipendenze, file singolo, pronto all'uso.</strong>
</p>
---
## Cos'è adPEAS?
adPEAS è uno strumento di valutazione della sicurezza basato su PowerShell che identifica configurazioni errate, vulnerabilità e percorsi di escalation dei privilegi negli ambienti Active Directory. È progettato per penetration tester, security auditor e red team che necessitano di uno strumento affidabile e autonomo che funzioni su qualsiasi sistema Windows — senza RSAT, senza modulo ActiveDirectory, senza dipendenze di terze parti.
**adPEAS v2** è una riscrittura completa di adPEAS v1. Sostituisce l'approccio legacy basato su `DirectoryEntry`/`DirectorySearcher` con un'architettura unificata `System.DirectoryServices.Protocols.LdapConnection` e aggiunge autenticazione Kerberos nativa, reporting avanzato e operazioni offensive — il tutto in puro PowerShell.
### Novità in v2
- **Stack Kerberos nativo** — AS-REQ/AS-REP, TGS-REQ/TGS-REP, Pass-the-Ticket, PKINIT, tutto in puro PowerShell
- **Molteplici metodi di autenticazione** — Password, NT-Hash (OPtH), chiavi AES (PtK), Certificati (PKINIT e Pass-the-Cert/Schannel), Windows integrata
- **Oltre 40 controlli di sicurezza** in 9 categorie con punteggio di gravità
- **Report HTML interattivi** con ricerca, filtraggio, punteggi di rischio e tooltip
- **Esportazione JSON** per la conversione offline dei report, la scansione incrementale e il confronto delle scansioni
- **Collector BloodHound CE** — raccolta dati integrata per l'analisi dei percorsi di attacco
- **Operazioni offensive** — Kerberoasting, AS-REP Roasting, Golden/Silver/Diamond Tickets, abuso di RBCD, Shadow Credentials e altro ancora
- **Workflow basato su sessione** — connettiti una volta, esegui più controlli in modo interattivo
- **Completamento con Tab** — completamento automatico dei nomi degli oggetti AD per l'esplorazione interattiva
> **Nuovo su adPEAS?** Consulta la [Guida rapida](https://github.com/61106960/adpeas/blob/main/docs/02-Quick-Start.md) o leggi la [serie di blog su blog.sekurity.de](https://blog.sekurity.de/blog/adpeas-v2-introduction) per un approfondimento su architettura, autenticazione e funzionamento interno.
---
## Funzionalità in sintesi
| Categoria | Punti salienti |
|----------|-----------|
| **Autenticazione** | Credenziali, PKINIT, Pass-the-Cert, NT-Hash, chiavi AES, autenticazione Windows, Kerberos-first con fallback automatico |
| **Controlli di sicurezza** | Configurazione del dominio, Kerberoast, ASREPRoast, ACL, DCSync, delegation, percorsi di escalation AD CS, abuso di GPO, LAPS, chiavi di ripristino BitLocker, sistemi obsoleti |
| **Reporting** | Console (con colori), testo semplice, HTML interattivo, esportazione JSON |
| **Operazioni offensive** | Kerberoasting, AS-REP Roasting, Golden/Silver/Diamond Tickets, RBCD, Shadow Credentials, Pass-the-Ticket |
| **BloodHound** | Collector BloodHound CE integrato (esportazione ZIP) |
| **Modalità OPSEC** | Salta i test attivi (Kerberoast, ASREPRoast, BloodHound) |
| **Distribuzione** | File `.ps1` singolo, nessun RSAT, nessun modulo esterno, funziona offline e in ambienti air-gapped |
---
## Requisiti
- **OS**: Windows 10/11, Windows Server 2016/2019/2022/2025
- **PowerShell**: 5.1+ (Windows PowerShell)
- **.NET Framework**: 4.5+ (incluso in Windows)
- **Rete**: LDAP (389), LDAPS (636), Kerberos (88), SMB (445)
Nessun modulo ActiveDirectory, RSAT o modulo PowerShell esterno richiesto.
---
## Download
### Versioni di rilascio
| File | Dimensione | Caso d'uso |
|------|------|----------|
| `adPEAS.ps1` | ~4,5 MB | Sviluppo, debug, revisione del codice |
| `adPEAS_min.ps1` | ~3-4 MB | Uso regolare con footprint ridotto |
| `adPEAS_ultra.ps1` | ~3 MB | Dimensione minima, senza commenti |
| `adPEAS_obf.ps1` | <1 MB | Dimensione più piccola, offuscato per il trasferimento |
Tutte e quattro le versioni sono funzionalmente identiche. Scegli in base al tuo scenario di distribuzione.
```powershell
# Clone the repository
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
```
### Compilazione dal codice sorgente
Il branch `main` contiene sempre una build aggiornata di tutte e quattro le varianti, ricompilata a ogni correzione e funzionalità, quindi gli URL grezzi sopra riportati servono il codice più recente. Tali build riportano una stringa di versione di sviluppo (`2.5.1+20260917-1759`). Ogni [GitHub Release](https://github.com/61106960/adPEAS/releases) con tag ha le quattro build stabili allegate come asset scaricabili, con una stringa di versione pulita (`2.5.1`) — usa quelle se hai bisogno di una versione nota e citabile. Per compilare tu stesso dal codice sorgente:
```powershell
git clone https://github.com/61106960/adPEAS.git
cd adPEAS
.\Build-Release.ps1
```
Questo produce tutte e quattro le varianti (`adPEAS.ps1`, `adPEAS_min.ps1`, `adPEAS_ultra.ps1`, `adPEAS_obf.ps1`) nella radice del repository. Richiede Windows PowerShell 5.1 e nessuna dipendenza aggiuntiva.
---
## Avvio rapido
```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))
```
### One-liner (compatibile con 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
```
### Basato su sessione (stile 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
```
### Metodi di autenticazione
```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
```
### Output e Reporting
```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"
```
## Moduli di verifica della sicurezza
| Modulo | Descrizione |
|--------|-------------|
| `Domain` | Configurazione del dominio, trust, criteri password, firma LDAP, firma SMB |
| `Creds` | Kerberoast, ASREPRoast, accesso alle chiavi di ripristino LAPS e BitLocker, esposizione delle credenziali in SYSVOL |
| `Rights` | ACL, DCSync, diritti di reimpostazione password, autorizzazioni pericolose sulle OU |
| `Delegation` | Delegazione non vincolata, vincolata, vincolata basata sulle risorse |
| `ADCS` | Modelli di certificato e CA: ESC1-ESC5, ESC8, ESC9, ESC13, ESC14, ESC15 (ESC10 tramite il controllo GPO). I percorsi di escalation che richiedono accesso amministrativo all'host della CA sono fuori ambito - vedere [Security Checks](https://github.com/61106960/adpeas/blob/main/docs/04-Security-Checks.md) |
| `Accounts` | Account privilegiati, utenti protetti, account di servizio, cronologia SID |
| `GPO` | Autorizzazioni GPO, appartenenza a gruppi locali, attività pianificate, script, impostazioni di registro pericolose (WDigest, AlwaysInstallElevated, OneLogon/Zerologon, …) e criteri dei driver di stampa Point and Print (PrintNightmare) distribuiti tramite GPO |
| `Computer` | LAPS, sistemi obsoleti, server di infrastruttura |
| `Application` | Infrastruttura Exchange, SCCM, SCOM |
| `Bloodhound` | Raccolta dati BloodHound CE |
Esegui moduli specifici:
```powershell
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -Module Domain,Creds,ADCS
```
Oppure esegui tutto tranne alcuni, senza elencare il resto:
```powershell
Invoke-adPEAS -Domain "contoso.com" -UseWindowsAuth -ExcludeModule Bloodhound,Computer
```
## Documentazione
La documentazione completa è disponibile nella directory [docs/](https://github.com/61106960/adpeas/blob/main/docs):
| Documento | Argomento |
| ------------------------------------------------------- | ------------------------------------------ |
| [Installation](https://github.com/61106960/adpeas/blob/main/docs/01-Installation.md) | Download, configurazione, execution policy |
| [Quick-Start](https://github.com/61106960/adpeas/blob/main/docs/02-Quick-Start.md) | Inizia in 5 minuti |
| [Authentication](https://github.com/61106960/adpeas/blob/main/docs/03-Authentication-Methods.md) | Tutte le opzioni di autenticazione |
| [Security Checks](https://github.com/61106960/adpeas/blob/main/docs/04-Security-Checks.md) | Riferimento completo dei controlli |
| [BloodHound Collector](https://github.com/61106960/adpeas/blob/main/docs/05-BloodHound-Collector.md) | Esportazione BloodHound CE |
| [Core Functions](https://github.com/61106960/adpeas/blob/main/docs/06-Core-Functions.md) | Funzioni di query LDAP |
| [Set- & New-Modules](https://github.com/61106960/adpeas/blob/main/docs/07-Set-Modules.md) | Funzioni di modifica AD |
| [Helper Functions](https://github.com/61106960/adpeas/blob/main/docs/08-Helper-Functions.md) | Funzioni di utilità |
| [Architecture](https://github.com/61106960/adpeas/blob/main/docs/09-Architecture.md) | Architettura tecnica |
| [Risk Scoring](https://github.com/61106960/adpeas/blob/main/docs/10-Risk-Scoring-System.md) | Punteggi di gravità e rischio |
| [Troubleshooting](https://github.com/61106960/adpeas/blob/main/docs/11-Troubleshooting.md) | Problemi comuni e soluzioni |
| [FAQ](https://github.com/61106960/adpeas/blob/main/docs/12-FAQ.md) | Domande frequenti |
### Serie di blog
Una dettagliata serie di blog che illustra il funzionamento interno di adPEAS v2 è pubblicata su [blog.sekurity.de](https://blog.sekurity.de/blog/adpeas-v2-introduction).
---
## Licenza
adPEAS è **source-available**. Le valutazioni di sicurezza interne della propria organizzazione sono gratuite. L'uso commerciale (consulenza, MSP, incarichi a pagamento) richiede una licenza commerciale.
Consulta [LICENSE](https://github.com/61106960/adpeas/blob/main/license/LICENSE.md) per i termini completi, [COMMERCIAL_AGREEMENT](https://github.com/61106960/adpeas/blob/main/license/COMMERCIAL_AGREEMENT.md) per l'accordo commerciale e [PRICING](https://github.com/61106960/adpeas/blob/main/license/PRICING.md) per le opzioni di licenza.
- **Richieste di licenza:** [email protected]
- **Supporto tecnico:** [email protected]
---
## Note legali
adPEAS è destinato esclusivamente a **test di sicurezza autorizzati**. Ottieni sempre un'autorizzazione scritta prima di eseguire i test. Non utilizzarlo mai contro sistemi di cui non sei proprietario o per i quali non hai il permesso di eseguire test. Gli autori non sono responsabili per l'uso improprio di questo strumento. Rispetta tutte le leggi e i regolamenti applicabili.
---
## Autore
**Alexander Sturz** — [SEKurity GmbH](https://sekurity.de)
- GitHub: [@61106960](https://github.com/61106960)
- Blog: [blog.sekurity.de](https://blog.sekurity.de)