Come abbiamo riportato nei giorni scorsi, un attacco informatico condotto su scala mondiale ha compromesso circa 3.000 server VMware ESXi esposti su Internet utilizzando il nuovo ransomware ESXiArgs.
I sistemi vittime dall’attacco ESXiArgs, si sono ritrovati con i file .vmdk e .vmx crittografati. Di seguito saranno elencate una serie di procedure per tentare di ripristinare il server compromesso.
Si tratta di una procedura che ho verificato personalmente ma non posso in alcun modo garantire che funzioni sempre e che non abbia effetti collaterali.
Procedura passo passo per ripristinare i sistemi ESXi
Il ransomware ESXiArgs crittografa i file di configurazione (.vmdk e .vmx) ma non il file VM _NAME-flat.vmdk. Nella struttura e configurazione di ESXi, i dati sono conservati nel file VM _NAME-flat.vmdk.
L’obiettivo di questo articolo è mostrare la procedura per ripristinare i file di configurazione crittografati, usando il file VM _NAME-flat.vmdk.
Innanzitutto, verificare se è attivo il servizio SSH del server ESXi e abilitarlo in caso fosse disabilitato. Successivamente accedere tramite SSH e posizionarsi nella cartella virtual machine compromessa che s’intende ripristinare. Le virtual machine sono salvate nel seguente percorso vmfs/volumes/datastoreXXX/, pertanto il comando da eseguire è il seguente:
cd vmfs/volumes/datastoreXXX/VM_TEST
Inserendo il nome datastoreXXX, il suo nome cambierà in un codice, nel seguente caso 600ebxxx.
Dopo essere entrati nella cartella della virtual machine compromessa, nel seguente caso VM_TEST eseguire il comando “ls -la”, per vedere l’elenco e la dimensione dei file. La dimensione di VM_Test-flat.vmdk è di 53687091200.
A questo punto procedere con l’eliminazione del file .vmdk esistente e compromesso, digitando il comando rm -rf xxx.vmdk (come backup, anziché cancellare il file, si può spostare in un’altra directory oppure creare una nuova directory all’interno del percorso dove ci si trova e incollarci il file che si sta cancellando).
NOTA: eliminare solo il file xxx.vmdk e non eliminare mai il file xxx-flat.vmdk.
Digitare il comando vmkfstools -c <dimensione_file_-flat.vmdk> -d thin temp.vmdk, per procedere con la copia del file -flat.vmdk. Per recuperare la dimensione del file -flat-vmdk, eseguire il comando ls -la.
La dimensione del file VM_TEST-flat.vmdk, in questo caso, è di 53687091200, come si può vedere da immagine seguente.
Se non sono stati generati errori, nella cartella della macchina virtuale compromessa, ci saranno 2 nuovi file, denominati temp.vmdk e temp-flat.vmdk, dove “temp-flat.vmdk”, avrà la stessa dimensione del file -flat.vmdk originale. Digitare nuovamente il comando ls -la per verificare quanto detto.
Ora bisogna procedere con la modifica del file appena creato, temp.vmdk, eseguendo i seguenti comandi:
- sed -i “s/temp-flat/ <VM _NAME>-flat/” temp.vmdk
- sed -i ‘/ddb.thinProvisioned/d’ temp.vmdk
Con il primo comando si va a sostituire il puntamento del file temp.vmdk, impostandolo il nome del file -flat.vmdk originale della virtual machine compromessa, in questo caso sarà VM_Test-flat.
Con il secondo comando si va a rimuovere il parametro thinProvisioned.
Se i comandi da linea di comando non dovessero funzionare, si può procedere con la modifica del file temp.vmdk, tramite un semplice file editor. Di seguito un confronto prima e dopo.
Ora si può procedere con la rimozione del file temp-flat.vmdk, tramite il seguente comando:
rm temp-flat.vmdk
Rinominare il file temp.vmdk con lo stesso nome del file .vmdk che è stato cancellato ad inizio procedura poiché crittografato. In questo esempio il nome è VM_Test.vmdk. Il comando è il seguente:
mv temp.vmdk <xxx>.vmdk
Ora bisogna modificare il file .vmx, poiché attualmente crittografato, il suo backup rimane come estensione .vmx~. Per modificare, è possibile eseguire i seguenti comandi:
rm <xxx>.vmx
(come backup anziché cancellare il file, si può spostare in un’altra directory oppure creare una nuova directory all’interno del percorso dove ci si trova e incollarci il file che si sta cancellando).
E successivamente eseguire il comando:
cp <xxx>.vmx~ <xxx>.vmx
Procedere con la cancellazione dei seguenti file, in quanto crittografati e corrotti:
rm <xxx>.vmsd
rm <xxx>.nvram
(come backup anziché cancellare il file, si può spostare in un’altra directory oppure creare una nuova directory all’interno del percorso dove ci si trova e incollarci il file che si sta cancellando).
Infine eseguire il seguente comando per verificare la consistenza del disco modificato:
vmkfstools -e <xxx>.vmdk
(se tutto è stato eseguito correttamente, sarà visualizzato il messaggio “Disk chain is consistent.”).
Per accedere tramite interfaccia web, attualmente inaccessibile per via della seguente pagina:
Eseguire i seguenti passaggi:
- cd /usr/lib/vmware/hostd/docroot/ui & mv index.html ransom.html & mv index1.html index.html
- cd /usr/lib/vmware/hostd/docroot & mv index.html ransom.html & rm index.html & mv index1.html index.html
- Riavviare il server ESXi, tramite il comando reboot
- Accedere nell’interfaccia web di ESXi, nella sezione Macchine virtuali
- Se la VM ripristinata è già presente, fare clic con il pulsante destro del mouse sulla VM e seleziona “Unregister”.
- Posizionarsi nel “Datastore Browser” in ESXi e fai clic con il pulsante destro del mouse sul file <xxx>.vmx nella cartella che hai modificato e clic su Register VM.
- Al termine del processo di registrazione della VM, cliccare su “Power on” per avviare la VM.
Si raccomanda, infine, di aggiornare il sistema ESXi con le ultime patch di sicurezza disponibili.