
PowerShell toolkit per auditing di AD CS basato sul toolkit PSPKI.
Toolkit PowerShell per il controllo di Active Directory Certificate Services (AD CS).
È costruito sulla base del toolkit PSPKI di PKISolution (licenza pubblica Microsoft). Questo repository contiene una versione più recente di PSPKI rispetto a quella disponibile in PSGallery (vedi la directory PSPKI). Vadims Podans (il creatore di PSPKI) ha gentilmente fornito questa versione poiché contiene correzioni per diversi bug.
Questo README è solo un punto di partenza - per dettagli completi e indicazioni difensive, consulta il whitepaper "Certified Pre-Owned".
Il modulo contiene le seguenti funzioni principali:
AVVERTENZA: Questo codice è beta! Siamo fiduciosi che Invoke-PKIAudit non avrà impatto sull'ambiente poiché la quantità di dati che interroga è piuttosto limitata. Non abbiamo fatto test rigorosi con Get-CertRequest contro carichi di lavoro tipici del server CA. Get-CertRequest interroga direttamente il database della CA e potrebbe dover elaborare migliaia di risultati, il che potrebbe influire sulle prestazioni.
NESSUN RISULTATO NON GARANTISCE CHE IL TUO AMBIENTE SIA SICURO!!
INOLTRE NON POSSIAMO GARANTIRE CHE I NOSTRI CONSIGLI DI MITIGAZIONE RENDANO IL TUO AMBIENTE SICURO O NON CAUSINO INTERRUZIONI DELLE OPERAZIONI!
È tua responsabilità parlare con il/i tuo/i team di Active Directory/PKI/Architettura per determinare le migliori mitigazioni per il tuo ambiente.
Se il codice si rompe, o ci siamo persi qualcosa, per favore invia un problema o una richiesta di pull per una correzione!
Installa quanto segue su una macchina Windows utilizzando un prompt PowerShell elevato (versione PowerShell 5.1 o successiva):
* Il modulo PowerShell [PSPKI](https://github.com/PKISolutions/PSPKI). Installalo con il seguente comando:```
Install-Module -Name PSPKI
Scarica il modulo ed estrailo in una cartella. Quindi, importa il modulo usando i seguenti comandi:``` cd PSPKIAudit Get-ChildItem -Recurse | Unblock-File
Import-Module .\PSPKIAudit.psd1
# Verifica delle configurazioni errate di AD CS
Eseguendo `Invoke-PKIAudit` verranno eseguite tutte le verifiche di controllo su AD CS nel dominio corrente, inclusa l'enumerazione delle varie impostazioni dell'Autorità di Certificazione e dei Modelli di Certificato. Per verificare una CA specifica, è possibile eseguire `Invoke-PKIAudit -CAComputerName CA.DOMAIN.COM` o `Invoke-PKIAudit -CAName X-Y-Z`.
Eventuali configurazioni errate (ESC1-8) appariranno come proprietà sui risultati della CA/dei modelli visualizzati per identificare la specifica configurazione errata trovata.
Se si desidera modificare i gruppi/utenti utilizzati per testare l'iscrizione/il controllo degli accessi, modificare l'espressione regolare `$CommonLowprivPrincipals` all'inizio di `Invoke-PKIAudit.ps1`
Se si desidera esportare tutte le informazioni della CA in un csv, eseguire: `Get-AuditCertificateAuthority [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation CAs.csv`
Se si desidera esportare tutte le informazioni dei modelli pubblicati in un csv (non solo quelli vulnerabili), eseguire: `Get-AuditCertificateTemplate [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation templates.csv`
## Spiegazione dell'output
Ci sono due sezioni principali nell'output: i dettagli sulle CA scoperte e i dettagli sui modelli potenzialmente vulnerabili.
Per i risultati dell'autorità di certificazione:
| Proprietà | Descrizione |
| ------------------------- | ------------------------------------------------------------------------------- |
| ComputerName | Il sistema su cui è in esecuzione la CA. |
| CAName | Il nome della CA. |
| ConfigString | La stringa di configurazione completa COMPUTER\NOME_CA. |
| IsRoot | Se la CA è una CA radice. |
| AllowsUserSuppliedSans | Se la CA ha il flag `EDITF_ATTRIBUTESUBJECTALTNAME2` impostato. |
| VulnerableACL | Se la CA ha un'impostazione ACL vulnerabile. |
| EnrollmentPrincipals | I principali che hanno il privilegio `Enroll` a livello di CA. |
| EnrollmentEndpoints | Gli endpoint di iscrizione dei servizi web della CA. |
| NTLMEnrollmentEndpoints | Gli endpoint di iscrizione dei servizi web della CA che hanno NTLM abilitato. |
| DACL | Le informazioni complete sul controllo degli accessi. |
| Misconfigurations | ESCX che indica la specifica configurazione errata presente (se presente). |
Per i risultati del modello di certificato: