
CVE-2020-0688 PoC
Questa proof-of-concept per CVE-2020-0688 include funzioni per la scansione e lo sfruttamento di un'istanza Exchange on-prem vulnerabile.
scan - fornisci le credenziali e le informazioni sul target per ottenere i cookie necessari allo sfruttamento e li salva in 'cookies.txt'. Controlla anche l'esposizione del servizio Exchange Control Panel (ECP) per il server Exchange target, tenta l'autenticazione a questo servizio e verifica la corrispondenza del valore VIEWSTATEGENERATOR appropriato. Se l'autenticazione ha successo, verrà visualizzato il valore del cookie di sessione per la creazione del payload serializzato.
generate - fornisci il valore del cookie di sessione ottenuto dalla funzione 'scan', insieme a un comando per l'esecuzione del codice. Questo formatterà il tuo input per ysoserial.net al fine di generare un payload serializzato per l'esecuzione del codice. Salva l'output di ysoserial in un file come 'payload.txt'.
exploit - prende l'input del file dei cookie ottenuto utilizzando la funzione 'scan' con autenticazione riuscita e codifica in URL il contenuto del file del payload. L'exploit esegue la richiesta autenticata appropriata per attivare l'esecuzione del codice su istanze Exchange on-prem vulnerabili.
$./ecp_slap
scan - Scan an Exchange host and obtain cookies needed for exploitation:
./ecp_slap scan -t 10.1.1.5 -d corp.local -u admin -p badpassword
./ecp_slap scan -t mail.corp.com -d CORP -u admin -p badpassword
generate - Generate the ysoserial.net command for payload creation:
./ecp_slap generate -s [ASP.NET_SessionId] -c [COMMAND]
./ecp_slap generate -s 81c35474-6a73-4a1c-af45-b3985e7d7ad1 -c "echo test > C:/temp/test.txt"
exploit - Exploitation of a vulnerable Exchange server:
./ecp_slap exploit -t 192.168.5.22 -c cookies.txt -p payload.txt
./ecp_slap exploit -t mail.corp.com -c cookies.txt -p payload.txt
Se hai verificato che la versione di Exchange on-prem che stai tentando di sfruttare:
ma non riesci ancora a verificare il successo dell'esecuzione del codice, prendi in considerazione l'esecuzione di comandi semplici per valutare se l'esecuzione del codice funziona, come:
Inizia con l'avviso di sicurezza MSRC, che includerà dettagli sulle patch e sulle versioni vulnerabili di Exchange on-prem. Incrociare le patch con i numeri di build di Exchange di Microsoft aiuterà a determinare la vulnerabilità. Per riprodurre manualmente lo sfruttamento di questa vulnerabilità, segui l'incredibile analisi di ZDI.
Se scegli di compilare questo progetto dal sorgente, invece di scaricare la release compilata, la configurazione dell'ambiente Go è spesso semplice come installare GoLang e impostare la variabile d'ambiente appropriata. I passaggi per farlo sono documentati qui.