AD-ventures: La battaglia per la sicurezza di Active Directory

Disclaimer: Gli strumenti e le tecniche descritte in questa serie di articoli sono destinati esclusivamente a scopi educativi e di ricerca nel campo della sicurezza informatica. L’uso di tali strumenti e tecniche contro sistemi informatici senza il consenso esplicito del proprietario è illegale e può comportare gravi conseguenze legali. L’autore e gli editori declinano qualsiasi responsabilità per l’abuso o l’uso improprio di queste informazioni da parte degli utenti. Si consiglia vivamente di ottenere il consenso scritto prima di condurre qualsiasi tipo di test o di valutazione della sicurezza su sistemi informatici.

Sono passati più di vent’anni da Windows 2000. La nascita di Active Directory ed i Directory Services hanno cambiato il mondo dell’informatica. Quello che abbiamo oggi è ancora basato sulle stesse fondamenta. In vent’anni sono cambiate tante cose, il salto tecnologico è stato incredibile ed il futuro lo sarà altrettanto. Non solo a livello di fruizione, anche il panorama della sicurezza informatica è cambiato in modo drastico. Sono in molti a dover adeguare le infrastrutture Active Directory ai nuovi standard ed essere in grado di affrontare le nuove sfide. Gli attacchi moderni sono spesso molto sofisticati nel tentativo di compromettere intere infrastrutture ottenendo i massimi privilegi ed accedendo alle risorse più critiche.
Il primo passo è sicuramente culturale. La conoscenza ci rende consapevoli e ci aiuta a capire dove è necessario concentrare i nostri sforzi.

Attraverso una serie di articoli approfonditi, esploreremo i punti deboli comuni nell’amministrazione di Active Directory. Dalla gestione delle deleghe alla corretta configurazione dei permessi degli oggetti, analizzeremo le vulnerabilità che possono essere sfruttate dagli aggressori. Ad esempio, spiegheremo come gli utenti non amministrativi potrebbero ottenere accesso ad azioni privilegiate, mettendo a rischio la sicurezza dell’intero sistema.

In questa serie, forniremo inoltre soluzioni pratiche e consigli su come mitigare questi rischi, per capire cosa guardare, perché i dettagli fanno la differenza.

Preparatevi a immergervi in un’esplorazione dettagliata di Active Directory e delle strategie per garantirne la sicurezza e l’affidabilità nel panorama della sicurezza informatica sempre mutevole del mondo moderno.

Benvenuti alla serie che cambierà il modo in cui vedete e gestite Active Directory.

Domain Enumeration

Domain Enumeration

La fase di enumerazione riveste un ruolo cruciale nella definizione della strategia di attacco: maggiore è la mole di informazioni raccolte, maggiori sono le probabilità di successo nello sviluppare diverse vie d'accesso. Le infrastrutture Active Directory, spesso, si presentano come complesse entità, sia per quanto riguarda la loro configurazione che per la gestione dei numerosi servizi e dispositivi ad esse collegati. Una volta ottenuto l'accesso, il primo passo dell'attaccante è solitamente l'enumerazione del dominio, un processo volto a raccogliere informazioni riguardanti gruppi, utenti, configurazioni, policy e altre caratteristiche pertinenti ad Active Directory (AD). Questo processo fornisce una mappa dettagliata dell'ambiente target, fondamentale per orientare le azioni successive e identificare potenziali vulnerabilità da sfruttare.
LLMNR/NBT-NS Poisoning Attack

LLMNR/NBT-NS Poisoning Attack

Link Local Multicast Name Resolution (LLMNR) e NetBIOS Name Service (NBT-NS) sono due protocolli fondamentali che intervengono per la risoluzione dei nomi degli host all'interno di una rete locale. Sebbene il Domain Name System (DNS) sia il metodo di risoluzione dei nomi più comune, LLMNR e NBT-NS entrano in azione quando il DNS non è disponibile, garantendo la continuità delle operazioni in caso di fallimento di quest'ultimo. LLMNR trova il suo campo d'azione principalmente nelle reti locali, supportando sia IPv4 che IPv6. Utilizzando di default la porta UDP 5355, la sua funzione principale è permettere la traduzione dei nomi di dominio in indirizzi IP all'interno di una rete locale in cui manca un server DNS dedicato. Questo risulta particolarmente utile in reti di piccole dimensioni o in ambienti aziendali in cui la presenza di un server DNS autonomo potrebbe non essere la norma. Un aspetto cruciale di LLMNR è il suo utilizzo di multicast e link-local. Invece di inviare le richieste DNS a un server remoto, i dispositivi che adottano LLMNR emettono una richiesta multicast all'interno della rete locale, interrogando gli altri dispositivi per ottenere le informazioni sui nomi di dominio. Questo aspetto, sebbene utile per il funzionamento interno della rete, presenta un potenziale scenario interessante dal punto di vista offensivo, poiché consente agli attaccanti di intercettare e manipolare le richieste di risoluzione dei nomi all'interno della rete locale. Al contrario, NBT-NS è il servizio di risoluzione dei nomi utilizzato dai sistemi NetBIOS. Anch'esso operante all'interno della rete locale, entra in gioco quando il DNS non riesce a risolvere un nome di dominio. Specifico per i sistemi Windows, NBT-NS assicura la continuità delle operazioni e la corretta risoluzione dei nomi all'interno della rete locale, contribuendo così alla stabilità e alla compatibilità delle reti basate su Windows.
Kerberoasting

Kerberoasting

Il protocollo di autenticazione Kerberos deve il suo nome a Cerbero, la leggendaria creatura mitologica con tre teste che veglia sui cancelli dell'oltretomba. Questo nome evoca l'idea di un sistema robusto di autenticazione che custodisce l'accesso alle risorse di un sistema informatico. Kerberos, infatti, è ampiamente utilizzato per l'autenticazione nei sistemi Windows e si basa su un sofisticato sistema di scambio di chiavi tra tre componenti principali: l'utente o il client, il centro di distribuzione delle chiavi (KDC) e il servizio o la risorsa a cui si intende accedere. Nonostante le sue fondamenta solide, il protocollo Kerberos presenta alcune vulnerabilità che possono essere sfruttate dagli attaccanti per compromettere la sicurezza del sistema. Uno dei più noti è il Kerberoasting, un tipo di attacco che sfrutta una debolezza intrinseca nel protocollo di autenticazione Kerberos per ottenere le credenziali di accesso di un utente. Nell'attacco Kerberoasting, un aggressore sfrutta la natura dei ticket di servizio Kerberos per estrarre le credenziali di un utente. Quando un utente autentica con successo presso il KDC per ottenere un ticket di servizio per accedere a una risorsa specifica, il ticket contiene informazioni crittografate sulle credenziali dell'utente. Queste informazioni possono poi essere decriptate offline dall'attaccante, utilizzando tecniche di cracking, per ottenere le credenziali dell'utente e, potenzialmente, ottenere l'accesso non autorizzato alle risorse del sistema. Sebbene Kerberos rappresenti un notevole progresso in termini di sicurezza rispetto ai suoi predecessori, l'evoluzione continua degli attacchi informatici richiede una costante vigilanza e un miglioramento delle difese per proteggere i sistemi dalle minacce emergenti.
Unquoted service path

Unquoted service path

L'attacco Unquoted Service Path rappresenta una sofisticata tecnica di privilege escalation che sfrutta una vulnerabilità nelle configurazioni dei percorsi degli eseguibili dei servizi all'interno degli ambienti Windows. Quando si crea un servizio in un sistema Windows, è necessario specificare il percorso dell'eseguibile associato a tale servizio. Tuttavia, se il percorso dell'eseguibile contiene spazi e non è racchiuso tra virgolette, si introduce una vulnerabilità conosciuta come Unquoted Service Path. In questo scenario, un utente malintenzionato può sfruttare questa debolezza per ottenere privilegi di sistema, specialmente se il servizio vulnerabile viene eseguito con tali privilegi, circostanza non rara purtroppo. Quando il percorso dell'eseguibile di un servizio non è racchiuso tra virgolette e contiene spazi, il sistema operativo interpreta erroneamente il percorso come una serie di eseguibili separati e li esegue in ordine fino a raggiungere l'eseguibile finale.
Uncostrained Delegation

Uncostrained Delegation

L'attacco Unconstrained Delegation rappresenta una sofisticata tecnica di privilege escalation che sfrutta una vulnerabilità nel protocollo Kerberos all'interno degli ambienti Active Directory. Questa vulnerabilità è legata ad un'impostazione chiamata "Unconstrained Delegation", consente a un utente o a un computer, opportunamente configurati con l'opzione “delega a qualsiasi servizio", di impersonare qualsiasi utente autenticato e richiedere accesso a qualsiasi servizio. Un aspetto particolarmente preoccupante di questo tipo di attacco è che un attaccante può estrarre i TGT (Ticket-Granting Ticket) di tutti gli account autenticati dal server con Unconstrained Delegation abilitata. Se uno di questi account autenticati è un domain admin, l'attaccante può impersonarlo ed accedere con tali privilegi. Data la gravità delle implicazioni di sicurezza, è fondamentale che gli amministratori di sistema implementino misure di difesa adeguate, come la limitazione dell'uso dell'Unconstrained Delegation solo ai casi strettamente necessari e la costante monitoraggio degli accessi e delle configurazioni all'interno dell'ambiente Active Directory.
Pass the Hash

Pass the Hash

L'attacco Pass-the-Hash (PtH) è una tecnica che consente a un attaccante di autenticarsi su più sistemi all'interno di una rete senza la necessità di conoscere direttamente le credenziali della vittima. Invece di tentare di decifrare la password dell'utente, l'attaccante utilizza l'hash della password. Utilizzandolo, l'attaccante può autenticarsi su altri sistemi senza la necessità di conoscere la password effettiva dell'utente, permettendogli di muoversi lateralmente all'interno della rete, accedendo a risorse e servizi come se fosse l'utente legittimo. Inoltre, poiché l'hash della password può essere utilizzato per l'autenticazione su più sistemi, l'attaccante può estendere il suo accesso e aumentare il proprio controllo sulla rete, compromettendo la sicurezza complessiva dell'ambiente. L'attacco Pass-the-Hash è una seria minaccia per la sicurezza delle reti, poiché sfrutta una debolezza nella gestione delle credenziali e nella protezione degli hash delle password. È essenziale adottare misure di sicurezza adeguate, come l'implementazione di controlli di accesso rigorosi e il monitoraggio attivo delle attività al fine di proteggersi da questo tipo di attacco e preservare l'integrità dei propri dati e risorse sensibili.
Golden Ticket / Diamond Ticket

Golden Ticket / Diamond Ticket

Un Golden Ticket è una tecnica di attacco in cui un attaccante manipola il protocollo di autenticazione Kerberos utilizzato all'interno delle reti Windows per ottenere accesso illimitato all'intero dominio di un'organizzazione, compresi dispositivi, file e controller di dominio. Quando ha successo, questo metodo consente a individui non autorizzati di sfruttare l'account krbtgt, un componente critico del sistema Kerberos responsabile della crittografia e della firma di tutti i ticket di dominio. Gli attaccanti violano inizialmente il sistema, quindi elevano i loro privilegi a quelli di un amministratore di dominio, consentendo loro di estrarre l'NTHash dell'account krbtgt e ricavare l'Identificatore di Sicurezza (SID) del dominio. Dotati di queste informazioni, gli attaccanti creano quindi un "Golden Ticket", un ticket Kerberos forgiato ad hoc che funziona come un legittimo Ticket Granting Ticket (TGT). La potenza di questo attacco risiede nella sua capacità di fornire agli attaccanti un accesso esteso e duraturo alla rete. Mentre un Golden Ticket viene creato offline, un Diamond Ticket viene creato modificando i campi di un TGT emesso da un Domain Controller, cosa che lo rende spesso più accurato e complesso.
DCSYNC

DCSYNC

L'attacco DCSync è una tecnica che permette a un attaccante di simulare il comportamento di un Domain Controller e recuperare dati sensibili attraverso la replica del dominio. Durante l'attacco, l’attaccante si maschera da Domain Controller e sfrutta il protocollo MS-DRSR (Microsoft Directory Replication Service Remote Protocol) per richiedere la replica dei dati utilizzando la funzione GetNCChanges. In risposta a questa richiesta, il vero domain controller restituirà i dati replicati, tra cui gli hash delle password, fornendo all’attaccante un accesso prezioso. Per proteggersi da questo attacco è necessario un monitoraggio attivo che tenga in considerazione diversi elementi.
Certificate Theft

Certificate Theft

Nel 2021 alla Black Hat Conference SpecterOps ha presentato un paper che descrive le misconfiguration e le vulnerabililtà che possono essere sfruttate in Active Directory Certificate Services. Gli scenari sono vari e contemplano il furto di certificati, meccanismi di persistenza e privilege escalation. Come sempre, il monitoraggio è la principale arma per capire cosa sta succedendo ma, in questo caso, ciò che è opportuno è essere consapevoli di quali compromissioni possono emergere e quali azioni preventive possono essere utilizzate.