
Codice exploit PoC per CVE-2021-26855
Codice exploit PoC per CVE-2021-26855.
Il codice originale è stato sviluppato da https://github.com/GreyOrder.
CVE-2021-26855 ssrf semplice utilizzo di esercizi golang Versioni interessate
Exchange Server 2013 è precedente alla CU23
Exchange Server 2016 è precedente alla CU18
Exchange Server 2019 è precedente alla CU7
Condizioni d'uso
Questa vulnerabilità è diversa dalle precedenti vulnerabilità di Exchange. Questa vulnerabilità non richiede un'identità utente che possa effettuare l'accesso. Può ottenere risorse utente interne senza autorizzazione. Può essere utilizzata con CVE-2021-27065 per implementare l'esecuzione remota di comandi.
Requisiti per l'attivazione della vulnerabilità
Vulnerabilità sul server di destinazione
Il server Exchange di destinazione deve essere un server di bilanciamento del carico, cioè devono essere utilizzati due o più server contemporaneamente
L'indirizzo email di destinazione. Nota che l'indirizzo deve essere un indirizzo email nel dominio invece di un indirizzo email. C'è una differenza tra i due. Dopo i test, non è così, purché sia il corretto indirizzo email, tranne in circostanze speciali
L'attaccante deve anche identificare il Fully Qualified Domain Name (FQDN) del server Exchange interno. In realtà, è richiesto solo il nome host del server, perché il nome host può essere risolto all'interno del dominio.
Tra i quattro elementi sopra elencati, l'FQDN può essere catturato tramite messaggio ntlm type2; gli indirizzi email possono essere enumerati direttamente. Una spiegazione aggiuntiva per l'FQDN: poiché uso solo ntlm type2 per catturare informazioni di sistema, l'FQDN ottenuto dallo strumento per impostazione predefinita è la macchina attualmente accessibile, quindi la vulnerabilità non può essere attivata direttamente. È necessario giudicare manualmente in base al nome FQDN e usare -n per sostituire il nome host di altri server Exchange.
Istruzioni per l'uso
Per sfruttare questa vulnerabilità, è più conveniente usare un linguaggio di scripting come ruby python. È scritto in golang per imparare golang, quindi questo piccolo strumento può essere considerato solo un prodotto semifinito e verrà aggiornato quando ci sarà tempo.
Questo strumento attualmente supporta le seguenti funzioni:
Rilevamento della vulnerabilità (controlla semplicemente se può essere raggiunta e non può essere usato per il rilevamento)
Enumerazione degli utenti
Lettura semplice di ID email e oggetto
Download della posta (aggiornato, ora un file eml standard)
Lettura dei contatti salvati dall'utente (nota: non è globale, solo i contatti salvati dall'obiettivo)
Cartella specificata, non arbitraria, fare riferimento a https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/distinguishedfolderid per i dettagli
Per altri usi, modifica tu stesso il contenuto xml.
utilizzo:
go run CVE-2021-26855-PoC.go -h
-h string richiesto, indirizzo di destinazione o nome di dominio
-U string Opzionale, necessaria per enumerare la lista utenti
-d opzionale, scarica la posta
-l Opzionale, elenca la mailing list
-n string è opzionale, è necessario specificare FQND da inserire
-t string Opzionale, tempo di ritardo della richiesta (default "1")
-u string Opzionale, specifica l'obiettivo (default "administrator")
-c è opzionale, legge i contatti salvati dall'utente corrente, non tutti
-f string Opzionale, specifica la cartella da visualizzare (default "inbox")