diff --git a/src/windows-hardening/active-directory-methodology/ad-certificates.md b/src/windows-hardening/active-directory-methodology/ad-certificates.md index b0fc6caf6..73fb57ba3 100644 --- a/src/windows-hardening/active-directory-methodology/ad-certificates.md +++ b/src/windows-hardening/active-directory-methodology/ad-certificates.md @@ -39,15 +39,15 @@ AD CS riconosce i certificati CA in un bosco AD attraverso contenitori designati ### Modelli di Certificato -Definiti all'interno di AD, questi modelli delineano le impostazioni e i permessi per l'emissione dei certificati, inclusi EKU consentiti e diritti di registrazione o modifica, critici per gestire l'accesso ai servizi di certificato. +Definiti all'interno di AD, questi modelli delineano le impostazioni e i permessi per l'emissione dei certificati, inclusi EKU consentiti e diritti di iscrizione o modifica, critici per gestire l'accesso ai servizi di certificato. -## Registrazione del Certificato +## Iscrizione al Certificato -Il processo di registrazione per i certificati è avviato da un amministratore che **crea un modello di certificato**, che viene poi **pubblicato** da un'Autorità di Certificazione (CA) aziendale. Questo rende il modello disponibile per la registrazione del client, un passaggio ottenuto aggiungendo il nome del modello al campo `certificatetemplates` di un oggetto Active Directory. +Il processo di iscrizione per i certificati è avviato da un amministratore che **crea un modello di certificato**, che viene poi **pubblicato** da un'Autorità di Certificazione (CA) aziendale. Questo rende il modello disponibile per l'iscrizione del client, un passaggio ottenuto aggiungendo il nome del modello al campo `certificatetemplates` di un oggetto Active Directory. -Per un client per richiedere un certificato, devono essere concessi **diritti di registrazione**. Questi diritti sono definiti da descrittori di sicurezza sul modello di certificato e sulla CA aziendale stessa. I permessi devono essere concessi in entrambe le posizioni affinché una richiesta abbia successo. +Per un client per richiedere un certificato, devono essere concessi **diritti di iscrizione**. Questi diritti sono definiti da descrittori di sicurezza sul modello di certificato e sulla CA aziendale stessa. I permessi devono essere concessi in entrambe le posizioni affinché una richiesta abbia successo. -### Diritti di Registrazione del Modello +### Diritti di Iscrizione del Modello Questi diritti sono specificati attraverso Access Control Entries (ACEs), dettagliando permessi come: @@ -55,7 +55,7 @@ Questi diritti sono specificati attraverso Access Control Entries (ACEs), dettag - **ExtendedRights**, che consentono tutti i permessi estesi. - **FullControl/GenericAll**, fornendo il controllo completo sul modello. -### Diritti di Registrazione della CA Aziendale +### Diritti di Iscrizione della CA Aziendale I diritti della CA sono delineati nel suo descrittore di sicurezza, accessibile tramite la console di gestione dell'Autorità di Certificazione. Alcune impostazioni consentono anche a utenti con privilegi bassi l'accesso remoto, il che potrebbe essere una preoccupazione per la sicurezza. @@ -64,16 +64,16 @@ I diritti della CA sono delineati nel suo descrittore di sicurezza, accessibile Possono applicarsi controlli specifici, come: - **Approvazione del Manager**: pone le richieste in uno stato di attesa fino all'approvazione da parte di un manager di certificati. -- **Agenti di Registrazione e Firme Autorizzate**: specificano il numero di firme richieste su un CSR e i necessari OIDs di Politica Applicativa. +- **Agenti di Iscrizione e Firme Autorizzate**: specificano il numero di firme richieste su un CSR e i necessari OIDs di Politica Applicativa. ### Metodi per Richiedere Certificati I certificati possono essere richiesti tramite: 1. **Windows Client Certificate Enrollment Protocol** (MS-WCCE), utilizzando interfacce DCOM. -2. **ICertPassage Remote Protocol** (MS-ICPR), attraverso pipe nominate o TCP/IP. -3. L'**interfaccia web di registrazione dei certificati**, con il ruolo di Web Enrollment dell'Autorità di Certificazione installato. -4. Il **Certificate Enrollment Service** (CES), in combinazione con il servizio di Politica di Registrazione dei Certificati (CEP). +2. **ICertPassage Remote Protocol** (MS-ICPR), tramite pipe nominate o TCP/IP. +3. L'**interfaccia web di iscrizione ai certificati**, con il ruolo di Web Enrollment dell'Autorità di Certificazione installato. +4. Il **Certificate Enrollment Service** (CES), in combinazione con il servizio di Politica di Iscrizione ai Certificati (CEP). 5. Il **Network Device Enrollment Service** (NDES) per dispositivi di rete, utilizzando il Simple Certificate Enrollment Protocol (SCEP). Gli utenti Windows possono anche richiedere certificati tramite l'interfaccia GUI (`certmgr.msc` o `certlm.msc`) o strumenti da riga di comando (`certreq.exe` o il comando `Get-Certificate` di PowerShell). @@ -95,7 +95,7 @@ CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC==4.0) for enumeration and identifying vulnerable templates +certipy find -vulnerable -dc-only -u john@corp.local -p Passw0rd -target dc.corp.local + +# Request a certificate over the web enrollment interface (new in Certipy 4.x) +certipy req -web -target ca.corp.local -template WebServer -upn john@corp.local -dns www.corp.local # Enumerate Enterprise CAs and certificate templates with certutil certutil.exe -TCAInfo certutil -v -dstemplate ``` +--- + +## Vulnerabilità recenti e aggiornamenti di sicurezza (2022-2025) + +| Anno | ID / Nome | Impatto | Punti chiave | +|------|-----------|--------|----------------| +| 2022 | **CVE-2022-26923** – “Certifried” / ESC6 | *Escalation dei privilegi* tramite spoofing dei certificati degli account macchina durante PKINIT. | La patch è inclusa negli aggiornamenti di sicurezza del **10 maggio 2022**. Sono stati introdotti controlli di auditing e di mappatura forte tramite **KB5014754**; gli ambienti dovrebbero ora essere in modalità *Full Enforcement*. citeturn2search0 | +| 2023 | **CVE-2023-35350 / 35351** | *Esecuzione di codice remoto* nei ruoli AD CS Web Enrollment (certsrv) e CES. | I PoC pubblici sono limitati, ma i componenti IIS vulnerabili sono spesso esposti internamente. Patch a partire dal **luglio 2023** Patch Tuesday. citeturn3search0 | +| 2024 | **CVE-2024-49019** – “EKUwu” / ESC15 | Gli utenti a basso privilegio con diritti di registrazione potrebbero sovrascrivere **qualsiasi** EKU o SAN durante la generazione del CSR, emettendo certificati utilizzabili per l'autenticazione del client o la firma del codice, portando a *compromissione del dominio*. | Affrontato negli aggiornamenti di **aprile 2024**. Rimuovere “Supply in the request” dai modelli e limitare i permessi di registrazione. citeturn1search3 | + +### Cronologia di indurimento di Microsoft (KB5014754) + +Microsoft ha introdotto un rollout in tre fasi (Compatibilità → Audit → Enforcement) per spostare l'autenticazione dei certificati Kerberos lontano da mappature implicite deboli. A partire dal **11 febbraio 2025**, i controller di dominio passano automaticamente a **Full Enforcement** se il valore di registro `StrongCertificateBindingEnforcement` non è impostato. Gli amministratori dovrebbero: + +1. Applicare patch a tutti i DC e server AD CS (maggio 2022 o successivi). +2. Monitorare l'ID evento 39/41 per mappature deboli durante la fase di *Audit*. +3. Riemettere certificati di autenticazione client con la nuova **estensione SID** o configurare mappature manuali forti prima di febbraio 2025. citeturn2search0 + +--- + +## Miglioramenti nella rilevazione e nell'indurimento + +* Il **Defender for Identity AD CS sensor (2023-2024)** ora fornisce valutazioni della postura per ESC1-ESC8/ESC11 e genera avvisi in tempo reale come *“Emissione di certificati per controller di dominio per un non-DC”* (ESC8) e *“Prevenire la registrazione dei certificati con politiche di applicazione arbitrarie”* (ESC15). Assicurati che i sensori siano distribuiti a tutti i server AD CS per beneficiare di queste rilevazioni. citeturn5search0 +* Disabilitare o limitare strettamente l'opzione **“Supply in the request”** su tutti i modelli; preferire valori SAN/EKU definiti esplicitamente. +* Rimuovere **Any Purpose** o **No EKU** dai modelli a meno che non sia assolutamente necessario (affronta scenari ESC2). +* Richiedere **approvazione del manager** o flussi di lavoro dedicati per l'agente di registrazione per modelli sensibili (ad es., WebServer / CodeSigning). +* Limitare l'iscrizione web (`certsrv`) e gli endpoint CES/NDES a reti fidate o dietro autenticazione con certificato client. +* Applicare la crittografia dell'iscrizione RPC (`certutil –setreg CA\InterfaceFlags +IF_ENFORCEENCRYPTICERTREQ`) per mitigare l'ESC11. + +--- + ## Riferimenti - [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf) - [https://comodosslstore.com/blog/what-is-ssl-tls-client-authentication-how-does-it-work.html](https://comodosslstore.com/blog/what-is-ssl-tls-client-authentication-how-does-it-work.html) +- [https://support.microsoft.com/en-us/topic/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16](https://support.microsoft.com/en-us/topic/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16) +- [https://advisory.eventussecurity.com/advisory/critical-vulnerability-in-ad-cs-allows-privilege-escalation/](https://advisory.eventussecurity.com/advisory/critical-vulnerability-in-ad-cs-allows-privilege-escalation/) {{#include ../../banners/hacktricks-training.md}}