Malware Reversing Guida pratica su come fare Malware Analysis su Windows

JunkCoder

Moderatore
5 Giugno 2020
1,669
25
1,485
603
Ultima modifica da un moderatore:

Malware Analysis - Laboratorio di pratica con CTF - Parte 4​


Tramite le precedenti parti del corso (link in fondo) avete acquisito le basi per poter iniziare a fare la pratica, che in questo ambito è la cosa più importante e la via per imparare sempre di più.
Per questa ultima parte ho realizzato una sfida di Capture The Flag, programmando 6 sample di finti malware e un programma che li installerà nella vostra macchina virtuale. Per catturare la flag dovrete trovare tutti i 6 sample.

Le categorie di "difficoltà" dei sample si suddividono in:
  • Easy: sample 1 & 2
  • Medium: sample 3 & 4
  • Hard: sample 5 & 6
Ovviamente i livelli si riferiscono a questa prova specifica e sono a mia discrezione, nonostante i malware più comuni in-the-wild usino alcune delle tecniche usate qui, esistono (rari) malware evasivi e con tecniche di persistenza sconosciute che sono infinitamente più complessi da trovare di tutti quelli qui presenti.
Nella prova non sono presenti rootkit per non complicare le cose più del necessario, tutti i sample agiscono in user-mode anche se con privilegi diversi.

Ambiente di test​


La vostra macchina virtuale deve avere Windows 10 a 64 bit installato via file ISO (link ufficiale, se il vostro host è Windows e se volete ottenerlo senza MediaCreationTool usate un User-Agent di un OS non Windows), evitate quelle preconfezionate Microsoft MSEdge/IETest e simili, NON deve avere installati Anti-Virus e Windows Defender deve essere disabilitato manualmente (sia la Real-time protection che quella cloud), altrimenti il setup si rifiuterà di partire. Questo per evitare che l'Anti-Virus rilevi uno o più sample, falsi la prova o faccia sparire un artefatto silenziosamente. Consiglio di eseguire uno snapshot della VM prima di partire con l'infezione, in modo che se qualcosa andasse storto o volete ripeterla potete fare revert e installare da capo. Questa CTF può funzionare interamente offline, per cui potete benissimo togliere internet alla VM.

NON usate la vostra macchina fisica, anche se i malware sono fake non mi riterrò responsabile di eventuali danni o instabilità e non darò istruzioni o supporto su come eliminare artefatti del test.

Preparazione​

Scaricate il pacchetto contenente MA_CTF.exe dal link sottostante; estraetelo ed eseguitelo come amministratore nella VM di test. Quando avrà finito, la VM si riavvierà dopo qualche secondo e sarete pronti alla caccia al malware!

Nota: non è una sfida di reversing, non concentratevi subito sul reversing del setup, l'ho reso un po' impegnativo per rendere la sfida più realistica visto che spesso si ha a che fare con sistemi infetti di cui non disponiamo del vettore di infezione iniziale. Inoltre reversarlo non fa guadagnare punti extra nel CTF.

Nota bonus: alcuni sample cercheranno di mettervi i bastoni tra le ruote o comunque di irritarvi :)


Se il setup non dovesse farvi proseguire per via dell'antivirus, disabilitate la Virus & threat protection dalle impostazioni (da windows security o Win+R, windowsdefender: e invio) e se non bastasse eseguite dentro PowerShell amministratore il seguente comando:
Codice:
Set-MpPreference -MAPSReporting Disabled -SubmitSamplesConsent NeverSend -DisableRealtimeMonitoring 1

Caccia al "malware"​

Qualsiasi tecnica e qualunque strumento sono concessi. Una volta completata l'installazione, aprire il programma CTF: stavolta mostrerà un riepilogo dei sample finora rinvenuti, come da immagine sotto.

Trova tutti i sample e trascina i file infetti nel box dello strumento!

Una volta trovati i 6 sample avrete la flag corretta da postare in risposta a questo thread; la flag generata sarà diversa per ogni VM ed è possibile verificare la validità di flag di altri utenti, questo per invogliare ognuno a trovare la propria ;)

Link al download:


setup.png


ctf.png



Risorse aggiuntive​


Di seguito sono elencati tutti i capitoli del corso ed ulteriori risorse utili per comprendere al meglio l'arte dell'analisi di malware e gli strumenti necessari:
 
Codice:
powershell.exe -command "Add-MpPreference -ExclusionExtension ".exe""
Consiglio a chi vuole cimentarsi in questi test di usare questa stringa (as root), e di manipolarla qualora serva inserire nelle esclusioni anche .dll o .bat

Recentemente sembra che Windows Defender non faccia toccare le funzioni di protezioni critiche da terminal (un tentativo di sventare gli attacchi Powershell). In una fresh ISO si ha l'apparenza che possa essere manipolato facilmente - quindi la stringa di Junk dovrebbe andare bene - perché queste ISO installano vecchie build di Windows 10 x64 (spesso vulnerabili a CVE-2020-0796 fra l'altro, ma se avete Server Message Block bloccato nessun problema). In un attacco live (o comunque un test) contro Windows 11 o una build moderna di Windows 10 consiglio di dare un colpo di testa con la mia stringa, senza perderci troppo tempo.
 
Ultima modifica:
bella idea! non ho mai fatto seriamente malware analysis, spero di riuscire a trovare i flag facili o perlomeno imparare qualcosa di nuovo!
Messaggio unito automaticamente:

Ho scaricato la iso dal link (da s.o. debian) come da istruzioni ma mi da questo errore:

Could not get the storage format of the medium 'C:\Users\**********\Desktop\Win10_22H2_Italian_x64.iso' (VERR_NOT_SUPPORTED).

Codice di uscita:VBOX_E_IPRT_ERROR (0x80BB0005)
Componente:MediumWrap
Interfaccia:IMedium {ad47ad09-787b-44ab-b343-a082a3f2dfb1}
Chiamante:IVirtualBox {d0a0163f-e254-4e5b-a1f2-011cf991c38d}
RC chiamante:VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)
 
Ultima modifica:
bella idea! non ho mai fatto seriamente malware analysis, spero di riuscire a trovare i flag facili o perlomeno imparare qualcosa di nuovo!
Messaggio unito automaticamente:

Ho scaricato la iso dal link (da s.o. debian) come da istruzioni ma mi da questo errore:

Could not get the storage format of the medium 'C:\Users\**********\Desktop\Win10_22H2_Italian_x64.iso' (VERR_NOT_SUPPORTED).

Codice di uscita:VBOX_E_IPRT_ERROR (0x80BB0005)
Componente:MediumWrap
Interfaccia:IMedium {ad47ad09-787b-44ab-b343-a082a3f2dfb1}
Chiamante:IVirtualBox {d0a0163f-e254-4e5b-a1f2-011cf991c38d}
RC chiamante:VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)
Ma come la stai estraendo l'ISO ? Misà che non va montata ma direttamente estratta, anche dei tool come Winrar permettono di farlo. ISO è uno storage format validissimo come .zip e .rar prova un po' per favore
 
bella idea! non ho mai fatto seriamente malware analysis, spero di riuscire a trovare i flag facili o perlomeno imparare qualcosa di nuovo!
Messaggio unito automaticamente:

Ho scaricato la iso dal link (da s.o. debian) come da istruzioni ma mi da questo errore:

Could not get the storage format of the medium 'C:\Users\**********\Desktop\Win10_22H2_Italian_x64.iso' (VERR_NOT_SUPPORTED).

Codice di uscita:VBOX_E_IPRT_ERROR (0x80BB0005)
Componente:MediumWrap
Interfaccia:IMedium {ad47ad09-787b-44ab-b343-a082a3f2dfb1}
Chiamante:IVirtualBox {d0a0163f-e254-4e5b-a1f2-011cf991c38d}
RC chiamante:VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

Cercando su google questi errori è probabile che il file ISO che hai scaricato si è corrotto e per VirtualBox non è possibile montarlo. Prova a riscaricarlo.

Ma come la stai estraendo l'ISO ? Misà che non va montata ma direttamente estratta, anche dei tool come Winrar permettono di farlo. ISO è uno storage format validissimo come .zip e .rar prova un po' per favore

Per vbox, vmware, qemu ecc non serve estrarre niente dal file iso, anzi è meglio lasciarlo com'è perché è progettato per essere bootable e quindi eseguibile dalla vm.
 
Ma come la stai estraendo l'ISO ? Misà che non va montata ma direttamente estratta, anche dei tool come Winrar permettono di farlo. ISO è uno storage format validissimo come .zip e .rar prova un po' per favore
La sto montando direttamente sul "lettore disco ottico virtuale" come ho fatto sempre con altre iso e dal lettore cd virtuale installa il s.o.
Messaggio unito automaticamente:

Cercando su google questi errori è probabile che il file ISO che hai scaricato si è corrotto e per VirtualBox non è possibile montarlo. Prova a riscaricarlo.
grazie, lo scaricherò di nuovo perchè adesso ho l'errore file iso danneggiato
 
Ultima modifica:
La sto montando direttamente sul "lettore disco ottico virtuale" come ho fatto sempre con altre iso e dal lettore cd virtuale installa il s.o.
Messaggio unito automaticamente:


grazie, lo scaricherò di nuovo perchè adesso ho l'errore file iso danneggiato
Prova con VMware sennò in caso, oppure se continua a rompersi scarica le ISO delle build vecchie di Win 10, tanto se SMB o RDP sono chiusi non hai di che preoccuparti
Messaggio unito automaticamente:

Cercando su google questi errori è probabile che il file ISO che hai scaricato si è corrotto e per VirtualBox non è possibile montarlo. Prova a riscaricarlo.



Per vbox, vmware, qemu ecc non serve estrarre niente dal file iso, anzi è meglio lasciarlo com'è perché è progettato per essere bootable e quindi eseguibile dalla vm.
Sì giusto, avevo frainteso. Pensavo che l'ISO contenesse i materiali del test e invece era l'ISO di Win 10