Il team di ricerca di Ridge Security, condividendo un’analisi approfondita di Movelt (CVE-2023-34362), è riuscito a fornire una comprensione di questa vulnerabilità critica, dal punto di vista di un hacker. Progress MOVEit è il software leader per il Managed File Transfer (MFT), utilizzato da migliaia di organizzazioni in tutto il mondo per fornire visibilità e controllo completi sul trasferimento dei file. Il 31 maggio 2023, Progress Software ha comunicato la presenza di una vulnerabilità critica SQLI (CVE-2023-34362) in Progress MOVEit Transfer.  Vediamo ora insieme, passo a passo, come funziona Movelt.

La vulnerabilità SQLI risiede nel metodo: “MOVEit.DMZ.ClassLib.dll!MOVEit.DMZ.ClassLib.UserEngine.UserGetUsersWithEmailAddress,”. Di seguito lo snippet code decompilato da Il spy:

Analizzando l’immagine si può verificare che si ha il pieno controllo della variabile EmailAddress.

La vulnerabilità non si può raggiungere direttamente tramite “non-localhost” e, tra l’altro, si può verificare la presenza di un’altra vulnerabilità nel modulo moveitisapi.dll durante lo svolgimento dell’azione m2. Di seguito uno snippet del key code: 

Dall’immagine sovrastante possiamo vedere il valore dell’intestazione http-X-siLock-Trnsaction è “folder_add_by_path“, il quale comporta l’inoltro della richiesta all’ URL machine2. Implementando poi la funzione “GetHeaderByName” si ha il seguente prototipo: 

bool GetHeaderByName(std::string *data, const char *header_name, char *out_header_value, int out_header_value_len)

L’implemento della funzione sopracitata è la seguente: 

Da questo codice si evince che in realtà non viene analizzata l’intestazione http, ma viene semplicemente eseguita la ricerca del nome dell’intestazione, all’interno dei dati input forniti per individuare “X-siLock-Transaction“. 

N.B: la ricerca non fa distinzione tra minuscole e maiuscole

Quindi, quando un utente malintenzionato invia una richiesta al server MOVEIT come: 

GET /moveitisapi/moveitisapi.dll?action=m2 HTTP/1.1Host: 192.168.200.218User-Agent: python-requests/2.28.1Accept-Encoding: gzip, deflateAccept: */*Connection: keep-aliveX-siLock-sth= XX-siLock-Transaction: folder_add_by_path X-siLock-Transaction=session_setvarsX-siLock-SessVar=MyPermission: 1000  

la stringa sopra in rosso verrà interpretata come un’intestazione http “X-SiLock-Transaction:folder_add_by-path” e la richiesta verrà reindirizzata all’URL della machine2. 

Il bug sopra descritto ha un ruolo critico nella catena di exploit, poiché impedisce la combinazione di valori di intestazione con lo stesso nome, ad ISAPI.  Quando però machine2.aspx riceverà le ultime due intestazioni di richiesta, verrà impostata la variabile di sessione seguente:

Questa funzione è stata rimossa nella patch ufficiale. 

Anche se EmailAddress  permette l’inserimento di payload dannosi, non esiste comunque un modo ottimale per attivare MOVEit.DMZ.ClassLib.dll!MOVEit.DMZ.ClassLib.UserEngine.UserGetUsersWithEmailAddress, tramite un indirizzo mail sicuro. Per questo si deve andare a sfruttare il secondo bug e impostare “SelfProvisionedRecips”

Una volta impostato, si potrà inviare una nuova richiesta all’endpoint “guestaccess.aspx” e attivare “MOVEit.DMZ.ClassLib.SILGuestPackageInfo.LoadFromSession”

In seguito, “SelfProvisionedRecips” verrà utilizzato da MOVEit.DMZ.ClassLib.MsgEngine.MsgPostForGuest:

e PkgInfo.SelfProvisionedRecips verrà diviso per ‘,’ e inserito nella funzione “UserGetSelfProvisionUserRecipsWithEmailAddress”, la quale passerà l’indirizzo e-mail effettivo alla funzione vulnerabile “UserGetUsersWithEmailAddress

Sfruttando questa vulnerabilità, gli hacker potranno esfiltrare informazioni riservate o addirittura ottenere l’esecuzione di un codice arbitrario. Per certo in effetto si sa che la vulnerabilità è stata utilizzata dal gruppo cl0p ransomware dal 27 maggio 2023. 

Scopri RidgeBot

Fissa una demo con i nostri esperti e scopri RidgeBot, il pentest veloce e continuo di RidgeSecurity.

Compila il form per richiedere informazioni su Ridge Security

Articolo originale: Research Notes on How Moveit Works (CVE-2023-34362) – autore Ridge Security Research Team

Traduzione e riadattamento da parte di CIPS Informatica -Ridge Security Blog - © 2022 Ridge Security, Inc.

Articolo originale: RidgeBot 4.2.1 Release Annoucement – autore Ridge Security Marketing

Traduzione e riadattamento da parte di CIPS Informatica -Ridge Security Blog - © 2022 Ridge Security, Inc.

Torna in cima