Visualizzazione post con etichetta Antivirus. Mostra tutti i post
Visualizzazione post con etichetta Antivirus. Mostra tutti i post

mercoledì 23 novembre 2022

Windows: Disattivare la protezione in tempo reale dell'Antivirus Microsoft Defender

In alcuni casi può essere utile disattivare, temporaneamente, la protezione in tempo reale dell'Antivirus Microsoft Defender, ad esempio quando un file viene riconosciuto come falso positivo ma di cui siamo certi della sua provenienza.
Nell'articolo PowerShell: Disattivare la protezione in tempo reale dell'Antivirus Microsoft Defender è stato mostrato come eseguire tale operazione tramite PowerShell. Per eseguire la stessa operazione tramite GUI i passaggi da seguire sono i seguenti:
  • Accedere alle Impostazioni di Windows (tramite la combinazione di tasti WIN + I);
  • Cliccare su Aggiornamento e Sicurezza;
    Impostazioni
    FIG 1 - Impostazioni


  • Selezionare la sezione Sicurezza di Windows quindi cliccare su Apri sicurezza di Windows;
    Sicurezza di Windows
    FIG 2 - Sicurezza di Windows

  • Cliccare su Protezione da Virus e minacce;
    Sicurezza in breve
    FIG 3 - Sicurezza in breve

  • Cliccare sul link Gestisci impostazioni;
    Protezione da virus e minacce, Gestisci impostazioni
    FIG 4 - Protezione da virus e minacce, Gestisci impostazioni

  • Disattivare l'opzione Protezione in tempo reale tramite l'apposito slider.

    Impostazioni di Protezione da virus e minacce
    FIG 5 - Impostazioni di Protezione da virus e minacce





mercoledì 23 marzo 2022

Windows 10: Windows Defender

Windows Defender è l'antivirus integrato nel sistema operativo di Microsoft. In quest'articolo verrà mostrato come interagire da riga di comando con Windows Defender. Se si utilizza un antivirus di terze parti, Windows Defender potrebbe essere stato disabilitato pertanto i comandi mostrati nell'articolo non funzioneranno. Avviato il prompt dei comandi come amministratore, accedere alla cartella contenente Windows Defender con il comando
cd "\Program Files\Windows Defender"


Verifica e installazione aggiornamenti
Come ogni buon antivirus, anche Windows Defender riceve periodicamente gli aggiornamenti delle definizione dei virus e del "motore" dell'antivirus. Per verificare la presenza di aggiornamenti è possibile digitare dal prompt dei comandi
MpCmdRun -SignatureUpdate
Il comando, oltre a verificare la disponibilità degli aggiornamenti provvederà anche a scaricarli ed installarli.
Update Windows Defender
FIG 1 - Update Windows Defender

Se le nuove definizioni danno problemi è possibile rimuoverle e ripristinare quelle precedenti utilizzando il comando
MpCmdRun -RemoveDefinitions -All

Allo stesso modo è possibile disinstallare il nuovo engine dell'antivirus con il comando
MpCmdRun -RemoveDefinitions -Engine


Scansione del sistema
Possiamo avviare diversi tipi di scansione a seconda delle nostre esigenze.
Per eseguire una scansione rapida
MpCmdRun -Scan -ScanType 1
Windows Defender, Scansione rapida
FIG 2 - Windows Defender, Scansione rapida


Per eseguire una scansione completa e approfondita del sistema
MpCmdRun -Scan -ScanType 2

Per avviare la scansione mirata di una particolare cartella
MpCmdRun -Scan -ScanType 3 -File path_cartella
dove al posto di path_cartella va specificato il nome della cartella compreso il percorso (ad es. c:\users\pippo\downloads)

Alcuni virus possono prendere di mira il settore di boot del disco che normalmente non è accessibile dal sistema. Un virus insediato in tale settore può infettare il sistema ad ogni avvio . Per eseguire una scansione mirata del settore di boot del disco
MpCmdRun.exe -Scan -ScanType -BootSectorScan


File in quarantena
Quando l'antivirus individua file sospetti o infetti che non riesce a bonificare, può spostarli in quarantena: uno spazio protetto dove i file infetti vengono salvati in modo da non rappresentare più una minaccia per il sistema. Tramite il seguente comando vengono visualizzati i file che sono stati spostati in quarantena
MpCmdRun -Restore -ListAll
Windows Defender, File in quarantena
FIG 3 - Windows Defender, File in quarantena

Per ripristinare tutti i file presenti dalla quarantena (operazione da eseguire con le dovute cautele)
MpCmdRun -Restore -All

Per ripristinare un particolare file dalla quarantena
MpCmdRun -Restore -Name nomefile 
dove nomefile rappresenta il nome, compreso estensione, del file presente in quarantena (ad es. game.exe).

Se vogliamo recuperare un particolare file dalla quarantena e salvarlo in uno determinato percorso
MpCmdRun -Restore -Name nomefile -FilePath destinazione 
dove al posto di destinazione va specificato il percorso in cui il file verrà ripristinato (ad es. c:\temp).





venerdì 18 febbraio 2022

PowerShell: Disattivare la protezione in tempo reale dell'Antivirus Microsoft Defender

La protezione in tempo reale dell'antivirus è fondamentale per la sicurezza del sistema e dovrebbe essere disabilitata solo per una buona ragione. Ad esempio, in alcune occasioni, potrebbe rivelarsi utile disabilitare temporaneamente la protezione in tempo reale per eseguire script legittimi che altrimenti verrebbero bloccati.

Per disattivare la protezione in tempo reale dell'antivirus Microsoft Defender si può avviare PowerShell come amministratore ed eseguire il comando
Set-MpPreference -DisableRealtimeMonitoring $true

Per riattivare la protezione in tempo reale basta eseguire il comando sostituendo $true con $false.
Disattivazione-Attivazione protezione in tempo reale di Microsoft Defender
FIG 1 - Disattivazione-Attivazione protezione in tempo reale di Microsoft Defender





domenica 5 dicembre 2021

Windows 10: Disabilitare l'invio di file sospetti da Defender

L'antivirus Microsoft Defender, noto anche come Windows Defender, è integrato nei sistemi operativi Windows e fornisce una protezione base contro le minacce informatiche. L'antivirus di Microsoft, così come prodotti di terze parti, è progettato per aggiornarsi costantemente e inviare, in automatico, campioni di file sospetti alla casa madre. Per disabilitare l'invio automatico dei file sospetti:
  • Avviare Sicurezza di Windows dal menu Start;
  • Selezionare Protezione da virus e minacce;
    Sicurezza di Windows
    FIG 1 - Sicurezza di Windows

  • In Impostazioni di Protezione da virus e minacce cliccare sul link Gestisci impostazioni;
    Protezione da virus e minacce
    FIG 2 - Protezione da virus e minacce

  • Disattivare l'opzione Invio automatico di file di esempio.
    Invio automatico di file di esempio
    FIG 3 - Invio automatico di file di esempio

A questo punto i file sospetti non verranno inviati automaticamente a Microsoft ma sarà possibile inviarli manualmente tramite il link Invia un campione manualmente presente nell'app Sicurezza di Windows (FIG 4). Ovviamente la disattivazione riguarda esclusivamente Microsoft Defender e non gli eventuali antivirus di terze parti installati.
Invia un campione manualmente
FIG 4 - Invia un campione manualmente







martedì 11 ottobre 2016

Windows Quick Tip: Aggiornare l'antivirus Microsoft in modalità off-line

Per essere efficiente un antivirus deve essere sempre aggiornato. L'antivirus incluso nelle ultime versioni dei sistemi operativi Microsoft, come tutti gli antivirus free o a pagamento, si aggiorna automaticamente tramite la connessione ad Internet. Nel caso in cui non si disponga della connessione ad Internet su tutte le macchine o nel caso in cui l'aggiornamento online sia inibito da qualche malware è possibile aggiornare l'antivirus Microsoft in modalità off-line.
  • Con un computer dotato di connessione ad Internet, aprire il browser e accedere al sito https://www.microsoft.com/security/portal/definitions/adl.aspx. Verrà aperta la pagina Microsoft relativa agli aggiornamenti dell'antimalware.
    Microsoft Malware Protection Center
    FIG 1 - Microsoft Malware Protection Center
  • Scorrendo la pagina degli aggiornamenti troviamo la sezione Antimalware and antispyware updates dove, cliccando sui relativi link, è possibile scaricare gli aggiornamenti del proprio antivirus.
    Microsoft Malware Protection Center, Antimalware and antispyware updates
    FIG 2 - Microsoft Malware Protection Center, Antimalware and antispyware updates
  • Il download consiste in un file nominato mpam-fe.exe che, eseguito sulle postazioni non connesse ad Internet, consente l'aggiornamento dell'antivirus Microsoft.


giovedì 19 maggio 2016

Ransomware TeslaCrypt: Decriptare tutte le versioni

Gli sviluppatori di TeslaCrypt hanno provveduto alla chiusura dei server e, dietro richiesta dei ricercatori ESET, hanno messo a disposizione la master key per recuperare i dati cifrati da tutte le versioni del ransomware (incluse la 3.0 e 4.x).

Gli sviluppatori del ransomware hanno rilasciato la master key di TeslaCrypt su rete Tor all'indirizzo wbozgklno6x2vfrk.onion

La master key è la seguente
440A241DD80FCC5664E861989DB716E08CE627D8D40C7EA360AE855C727A49EE

A chi ha conservato i dati cifrati dal ransomware non resta che scaricare la versione aggiornata di TeslaDecoder  (sviluppato da BloodDolly di BleepingComputer) e procedere come segue.


  • Scaricata l'ultima versione di TeslaDecoder, scompattarla e avviare il file TeslaDecoder.exe
  • FIG 1 - TeslaDecoder
  • Cliccare sul pulsante Set Key. Nella casella Key (hex): incolliamo la master key e in Extension selezioniamo l'estensione dei nostri file cifrati (per i file cifrati con TeslaCrypt 4.x a cui non è stata modificata l'estensione selezionare <as original>), quindi cliccare Set Key


  • Si ritorna alla schermata vista in FIG 1. Non resta che cliccare su Decrypt Folder e selezionare la cartella (o l'intero disco) contenente i nostri file cifrati

mercoledì 27 gennaio 2016

Ransomware TeslaCrypt

Aggiornamento del 19.05.2016


I server di TeslaCrypt chiudono e gli sviluppatori hanno rilasciato la master key utile per decriptare i dati da tutte le versioni di TeslaCrypt. Per maggiori informazioni potete cliccare QUI



Nell'articolo Ransomware Ransom32  ho già parlato di ransomware: un tipo di malware che prende il controllo del sistema (bloccandone l'accesso e/o cifrandone i dati) e richiede un riscatto per lo sblocco.
In quest'articolo tratterò un altro tipo di ransomware piuttosto diffuso, TeslaCrypt , soffermandomi sul recupero dei dati cifrati
Le prime segnalazioni di questo ransomware risalgono a febbraio 2015. Il punto debole delle prime versioni di TeslaCrypt era la gestione della chiave di cifratura. La  chiave, infatti, veniva memorizzata sul disco del sistema infetto rendendo relativamente semplice il recupero dei dati. Le successive versioni del ransomware, oltre all'utilizzo di una cifratura più sofisticata (le chiavi vengono generate tramite l’algoritmo a curve ellittiche ECDH Elliptic curve Diffie–Hellman), presentano alcun accorgimenti che prevengono l’identificazione dei server a cui il malware si connette (server di comando e controllo). I server si trovano sulla rete TOR e il ransomware comunica con essi attraverso tor2web.
In linea generale il modo di operare di TeslaCrypt è analogo a quello della maggior parte degli altri ransomware in circolazione: una volta installato segretamente sul sistema della vittima procede a cifrare i dati con il sistema AES. Il ransomware viene diffuso attraverso allegati alle email oppure tramite apposite pagine web. Dopo aver cifrato un file il ransomware aggiunge una nuova estensione che varia in base alla versione del malware (.xxx, .ttt, .abcor, .micro, .ecc, .ezz, .exx, .xyz, .zzz, .aaa, .abc, .ccc, .vvv) inoltre provvede a cancellare le copie Shadow Volume e i punti di ripristino.  Una volta terminata la cifratura dei documenti della vittima viene mostrato il messaggio di riscatto e vengono creati i seguenti file sul desktop e in altre cartelle: Howto_Restore_FILES.BMP, Howto_Restore_FILES.HTM, Howto_Restore_FILES.TXT. Questi 3 file contengono informazioni su come pagare il riscatto per poter recuperare i dati.

Sono state individuate e analizzate diverse varianti in circolazione di TeslaCrypt, la maggior parte di esse creano un file eseguibile all'interno di %AppData% (ad es. c:\Utenti\<nomeutente>\Appdata\Roaming\<nome file.exe>) mentre le chiavi di registro che vengono modificate sono
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ Qui dovrebbe esserci un richiamo al file .exe in %AppData%
HKCU\Software\
HKCU\Software\xxxsys


Le estensioni dei file interessate da TeslaCrypt sono:
.sql, .mp4, .7z, .rar, .m4a, .wma, .avi, .wmv, .csv, .d3dbsp, .zip, .sie, .sum, .ibank, .t13, .t12, .qdf, .gdb, .tax, .pkpass, .bc6, .bc7, .bkp, .qic, .bkf, .sidn, .sidd, .mddata, .itl, .itdb, .icxs, .hvpl, .hplg, .hkdb, .mdbackup, .syncdb, .gho, .cas, .svg, .map, .wmo, .itm, .sb, .fos, .mov, .vdf, .ztmp, .sis, .sid, .ncf, .menu, .layout, .dmp, .blob, .esm, .vcf, .vtf, .dazip, .fpk, .mlx, .kf, .iwd, .vpk, .tor, .psk, .rim, .w3x, .fsh, .ntl, .arch00, .lvl, .snx, .cfr, .ff, .vpp_pc, .lrf, .m2, .mcmeta, .vfs0, .mpqge, .kdb, .db0, .dba, .rofl, .hkx, .bar, .upk, .das, .iwi, .litemod, .asset, .forge, .ltx, .bsa, .apk, .re4, .sav, .lbf, .slm, .bik, .epk, .rgss3a, .pak, .big, wallet, .wotreplay, .xxx, .desc, .py, .m3u, .flv, .js, .css, .rb, .png, .jpeg, .txt, .p7c, .p7b, .p12, .pfx, .pem, .crt, .cer, .der, .x3f, .srw, .pef, .ptx, .r3d, .rw2, .rwl, .raw, .raf, .orf, .nrw, .mrwref, .mef, .erf, .kdc, .dcr, .cr2, .crw, .bay, .sr2, .srf, .arw, .3fr, .dng, .jpe, .jpg, .cdr, .indd, .ai, .eps, .pdf, .pdd, .psd, .dbf, .mdf, .wb2, .rtf, .wpd, .dxg, .xf, .dwg, .pst, .accdb, .mdb, .pptm, .pptx, .ppt, .xlk, .xlsb, .xlsm, .xlsx, .xls, .wps, .docm, .docx, .doc, .odb, .odc, .odm, .odp, .ods, .odt

Come rimuovere il ransomware
TeslaCrypt potrebbe infiltrare e installare altri virus all'interno del sistema. Prima di tentare il recupero dei dati è necessario rimuovere il ransomware. Per rimuoverlo è possibile eseguire la scansione del sistema con un antivirus aggiornato. Un buon alleato in questi casi è un antivirus con cui eseguire il boot del sistema come Kaspersky Rescue Disk che è possibile scaricare da QUESTA PAGINA. Scaricata l'immagine è possibile masterizzarla su CD\DVD oppure creare una pendrive bootable tramite il tool rescue2USB. Eseguendo il boot con Kaspersky Rescue Disk è possibile fare in modo che l'antivirus scarichi automaticamente da internet gli aggiornamenti prima di procedere alla scansione dell'intero sistema.
Terminata la scansione ed eliminati eventuali virus trovati, avviare il sistema in modalità provvisoria quindi installare ed eseguire una scansione con una versione di Malwarebytes e/o SpyHunter aggiornata.

Recupero Dati
Per decifrare i dati è necessario recuperare la PrivateKeyBC (Chiave privata usata da TeslaCrypt come master key). Prima di poter risalire alla PrivateKeyBC è necessario ricavare SharedSecretBC (chiave calcolata tramite PrivateKeyBC, PublicKeyBC e TeslaPublicKey) e PublicKeyBC (chiave pubblica relativa all'indirizzo bitcoin). Riporto di seguito i passaggi necessari al recupero della PrivateKeyBC.

Passo 1: Procurarsi i tool TeslaDecoder e Yafu
La prima operazione da fare è quella di procurarsi i tools necessari: TeslaDecoder e Yafu. I tool possono essere scaricati dai seguenti link:
TeslaDecoder 
Yafu 

I file sono compressi (.zip) quindi è necessario procedere alla loro estrazione. Se si dispone già di questi tool è consigliabile riscaricarli in modo da essere sicuri di utilizzare l'ultima versione disponibile.
I seguenti passaggi vengono indicati anche, in inglese, all'interno del file Instructions.html fornito insieme a TeslaDecoder (sviluppato da BloodDolly di BleepingComputer).

Passo 2: Eseguire TeslaViewer per estrarre PublicKeyBC e SharedSecret1*PrivateKeyBC
All'interno di TeslaDecoder troviamo 3 file eseguibili: TeslaDecoder.exe, TeslaRefactor.exe e TeslaViewer.exeEseguire TeslaViewer.exe, cliccare sul pulsante Browse e selezionare un file cifrato da TeslaCrypt.
TeslaViewer estrae dal file una serie di informazioni. I campi che ci interessano sono PublicKeyBC e SharedSecret1*PrivateKeyBC.

TeslaViewer
FIG 1 - TeslaViewer
Cliccare sul pulsante Create work.txt per salvare tutte le informazioni all'interno del file di testo work.txt (il file di testo verrà creato all'interno della stessa cartella contenente TeslaViewer.exe).

Passo 3: Fattorizzazione di SharedSecret1*PrivateKeyBC tramite factordb.com
Ora bisogna procedere alla fattorizzazione in numeri primi del valore decimale di SharedSecret1*PrivateKeyBC. L'operazione potrebbe richiedere molto tempo ma il sito Factordb.com ci viene incontro fornendoci numerosi valori pre-calcolati.
Apriamo il file Work.txt creato con TeslaViewer e copiamo il valore decimale di  SharedSecret1*PrivateKeyBC

Work.txt e SharedSecret1*PrivateKeyBC
FIG 2 - Work.txt e SharedSecret1*PrivateKeyBC
Quindi posizioniamoci sul sito Factordb.com, incolliamo nell'apposita casella il valore copiato e clicchiamo su Factorize!
Se nella colonna Status troviamo il valore FF allora siamo fortunati e non ci resta che creare un file di testo e copiare i fattori all'interno del file (un fattore per riga). Può capitare che qualche fattore venga visualizzato come 5933269477...11<154> in questi casi dobbiamo cliccare sul fattore per visualizzare l'intero valore. Il numero tra parentesi angolari (154) indica il numero di cifre che compongono il valore. A questo punto possiamo passare al Passo 5.
Se, invece, nella colonna status, viene visualizzato il valore CF allora dobbiamo procedere in proprio alla fattorizzazione e proseguire con il Passo 4.
factordb.com
FIG 3 - factordb.com
Passo 4: Fattorizzazione di SharedSecret1*PrivateKeyBC tramite Yafu
Se non siamo stati fortunati con il sito factordb.com dobbiamo procedere autonomamente alla fattorizzazione. L'operazione potrebbe richiedere molto tempo anche su PC potenti. Per la fattorizzazione utilizzeremo il tool Yafu che abbiamo scaricato nel Passo 1. Come prima cosa procediamo alla ottimizzazione del tool in base al nostro sistema. Eseguire tuneX86.bat (per sistemi a 32 bit) o tuneX64.bat (per sistemi a 64 bit) e attendere il termine dell'operazione. La procedura di ottimizzazione potrebbe richiedere un po' di tempo e al termine verrà visualizzato il messaggio Tune Finished.

Ottimizzazione di Yafu: tuneX86 e tuneX64
FIG 4 - Ottimizzazione di Yafu: tuneX86 e tuneX64
Terminata l'ottimizzazione, aprire il file works.txt e copiare il valore decimale di  SharedSecret1*PrivateKeyBC come indicato nel Passo 3.
Lanciare factorX86.bat (per sistemi a 32 bit) o factorX64.bat (per sistemi a 64 bit). Quando richiesto incollare il valore SharedSecret1*PrivateKeyBC copiato precedentemente e premere invio.
FactorX86 e FactorX64: SharedSecret1*PrivateKeyBC
FIG 5 - FactorX86 e FactorX64: SharedSecret1*PrivateKeyBC
A questo punto viene richiesto quanti thread si intende impiegare per il calcolo della fattorizzazione. Il numero di Thread del proprio sistema può essere visualizzato da Task Manager. Si consiglia di specificare il numero di processori logici -1 (ad es. se si dispone di una CPU dual core con 4 processori logici si consiglia di indicare 3) in modo tale da non bloccare la postazione. La fattorizzazione può richiedere molto tempo (anche giorni) a seconda della potenza del sistema e del numero da fattorizzare.
FactorX86 e FactorX64: Threads
FIG 6 - FactorX86 e FactorX64: Threads
Al termine vengono visualizzati i risultati come indicato in figura FIG 7. 
FactorX86 e FactorX64: Risultati
FIG 7 - FactorX86 e FactorX64: Risultati
Copiare tutti i fattori e incollarli all'interno di un file di testo.
Risultato Fattorizzazione
FIG 8 - Risultato Fattorizzazione
PASSO 5: TeslaRefactor
Siamo quasi giunti al termine. Nella cartella TeslaDecoder avviamo il tool TeslaRefactor. Nella casella dove è indicato il messaggio <Put decimal factors here> incollare i valori forniti dalla fattorizzazione in numeri primi (quelli forniti da FactorDB.com oppure quelli calcolati tramite Yafu). Nel campo Public Key (hex) copiare il valore PublicKeyBC presente all'interno del file works.txt. Cliccare su Find Private Key per calcolare la chiave privata.
TeslaRefactor
FIG 9 - TeslaRefactor
Al termine dell'operazione prendiamo nota della chiave privata, Private key (hex), che ci servirà per decriptare i dati.
TeslaRefactor Private Key
FIG 10 - TeslaRefactor Private Key
Nel caso in cui sorgessero problemi nel calcolo della chiave privata, confrontare i valori dei campi Product (dec) e Product (Hex) con i rispettivi valori di SharedSecret1*PrivateKeyBC all'interno del file work.txt. Se i valori corrispondono allora togliere il flag alla voce Optimization e cliccare nuovamente sul pulsante Find Private Key.


Passo 6: Decriptare i dati tramite TeslaDecoder
Ora che si dispone della chiave privata è possibile procedere a decriptare i propri file utilizzando TeslaDecoder. Avviare TeslaDecoder come amministratore (cliccare con il tasto destro del mouse su TeslaDecoder.exe e selezionare Esegui come amministratore).
TeslaDecoder
FIG 11 - TeslaDecoder
Cliccare sul pulsante Set key. Verrà aperta la finestra Set custom key for decryption (vedi FIG 12). Nel campo Key (hex) specificare la chiave privata recuperata precedentemente e in Extension selezionare l'estensione dei file cifrati che si intende recuperare quindi cliccare su Set key per ritornare alla schermata precedente.
TeslaDecoder Set key
FIG 12 - TeslaDecoder Set key
Ritornando alla schermata precedente noteremo che i pulsanti Decrypt Folder e Decrypt All sono abilitati. Il primo ci consente di agire su una specifica cartella e relative sottocartelle, il secondo, invece, esegue una verifica sull'intero sistema recuperando i file cifrati. Prima di procedere ci viene richiesto se eliminare o mantenere la copia cifrata del file (se abbiamo dati importanti conviene tenere anche la versione cifrata del nostro file nel caso in cui l'operazione non sia riuscita a recuperare correttamente il suo contenuto).
TeslaDecoder cancellare i file criptati
FIG 13 - TeslaDecoder cancellare i file criptati

Conclusioni
Le raccomandazioni per evitare la perdita dei dati sono le solite: disporre di un buon antivirus e tenerlo sempre aggiornato, diffidare di siti ed email sospette, effettuare frequenti backup dei dati su più dispositivi esterni e non perennemente connessi al sistema. Per chi effettua il backup su cloud in genere i provider consentono di mantenere più "versioni" del file. In questi casi, se i file vengono crittografati da qualche ransomware, dovrebbe essere possibile recuperare una versione antecedente. 

Se questo articolo vi è stato d'aiuto a recuperare i vostri dati e volete offrirmi un caffè, potete utilizzare l'apposito link delle donazioni (le transazioni vengono gestite da paypal).


Aggiornamento del 05.02.2016
Al momento per i file cifrati da TeslaCrypt 3 aventi estensione .ttt, .xxx, .micro e .mp3 non esiste un metodo per estrarre la chiave dato che viene utilizzato un algoritmo diverso. Chi è stato colpito da tale variante di TeslaCrypt può effettuare un backup dei file cifrati in attesa che venga trovata una soluzione. Il tool TeslaDecoder è in continuo aggiornamento. Il ransomware può comunque essere rimosso seguendo i passaggi indicati nell'articolo. Provvederò ad aggiornare il presente articolo nel caso venga trovato il metodo per recuperare i dati cifrati da questa variante del ransomware.


Aggiornameno del 15.02.2016
Una nuova variante di TeslaCrypt 3.0 rinomina il file con estensione .mp3.


Aggiornamento del 18.03.2016
Ancora una brutta notizia. Non è stata trovato ancora alcun modo per decriptare i file con estensione .micro e .mp3 e, dal giorno 14.03.2016, si sta diffondendo una nuova versione di TeslaCrypt: TeslaCrypt 4.0. In quest'ultima versione i file vengono cifrati ma l'estensione non viene modificata. Tale comportamento renderà difficile riconoscere a colpo d'occhio i file cifrati sul disco. In questa nuova versione del ransomware, inoltre,  è stato corretto un BUG che corrompeva i file con grandezza superiore ai 4GB. Il file eseguibile del ransomware viene creato in 
%UserProfile%\Documenti\[caratteri_alfanumerici_random].exe
Le chiavi di registro coinvolte sono
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\_[caratteri_alfanumerici_random]
HKEY_CURRENT_USER\Software\
HKEY_CURRENT_USER\Software\Data


Aggiornamento del 26.04.2016
Da circa una settimana è in circolazione una nuova variante di TeslaCrypt: TeslaCrypt 4.1b.
Anche questa a nuova variante del ransomware è stata analizzata da BloodDolly di BleepingComputer e presenta alcune piccole modifiche rispetto alle versioni precedenti:
Il file di dati ora risulta  %MyDocuments%\desctop._ini 
Il file contentente le istruzioni ha una dimensione leggermente superiore rispetto alle versioni precedenti del ransomware.
%UserProfile%\Desktop\-!RecOveR!-[caratteri casuali]++.Txt
%UserProfile%\Desktop\-!RecOveR!-[caratteri casuali]++.Htm
%UserProfile%\Desktop\-!RecOveR!-[caratteri casuali]++.Png
%UserProfile%\Documents\-!recover!-!file!-.txt
L'eseguibile del ransomware viene creato con un nome random in Documenti:
%UserProfile%\Documents\[caratteri casuali].exe

Una volta che TeslaCrypt ha terminato la cifratura dei dati, contatta il server di comando e controllo inviando un messaggio di POST criptato:


Sub=Ping&dh=[PublicKeyRandom1_octet|AES_PrivateKeyMaster]&addr=[bitcoin_address]&size=0&version=4.1b&OS=[build_id]&ID=[?]&inst_id=[victim_id]

Anche in questa ultima versione ai file cifrati non viene aggiunta alcuna estensione.

Aggiornamento 04.05.2016
L'utente BloodDolly di BleepingComputer ha individuato e analizzato una nuova versione di TeslaCrypt: siamo alla versione 4.2. La nuova versione apporta alcuna piccole modifiche. Il messaggio che compare all'utente è stato modificato e vengono visualizzate solo le informazioni essenziali per procedere al pagamento del riscatto. Il codice è stato ottimizzato e compilato utilizzando un compilatore diverso da quello utilizzato nelle versioni precedenti del ransomware. La nuova versione di TeslaCrypt esegue l'injection code in svchost.exe per poter eliminare le copie shadow (operazione che viene eseguita sia prima che dopo aver cifrato i dati).
I file creati da TeslaCrypt 4.2 sono 
%UserProfile%\Desktop\!RecoveR!-[5 caratteri random]++.HTML
%UserProfile%\Desktop\!RecoveR!-[5 caratteri random]++.PNG
%UserProfile%\Desktop\!RecoveR!-[5 caratteri random]++.TXT
%UserProfile%\Documents\-!recover!-!file!-.txt
%UserProfile%\Documents\[random].exe

Il ransomware provvede a modificare la seguente chiave di registro per avviarsi ad ogni logon

[HKCU\Software\Microsoft\Windows\CurrentVersion\Run] serv[5 caratteri random] C:\Windows\SYSTEM32\CMD.EXE /C START "" "[malware].exe"



Aggiornamento del 19.05.2016

I server di TeslaCrypt chiudono e gli sviluppatori hanno rilasciato la master key utile per decriptare i dati da tutte le versioni di TeslaCrypt. Per maggiori informazioni potete cliccare QUI

martedì 4 novembre 2014

Come ingannare gli antivirus

Spesso, per testare la sicurezza della nostra rete o delle nostre workstation, ci troviamo a dover utilizzare tool di terze parti che gli antivirus identificano come "Hacker tools" impedendoci di portare a termine il nostro lavoro.

In questo articolo mostrerò alcune tecniche per tentare di nascondere i nostri tools agli antivirus. Non tratterò l’argomento in maniera dettagliata in quanto per farlo sarebbe necessario pubblicare un vero e proprio libro ma cercherò di trattare le tecniche più utilizzate e dare qualche spunto al lettore che potrà, in autonomia, approfondire il tema. 




Premessa
Le tecniche che vedremo di seguito non saranno efficaci con tutti gli antivirus. Come sapete i software antivirus adottano diversi sistemi per il riconoscimento di codice maligno: analizzano i file e li confrontano con i database delle "firme", analizzano l’esecuzione dei programmi in memoria e il loro comportamento (scansione euristica), ecc. 

La scansione euristica, offerta ormai da quasi tutti i software antivirus, non si basa su database di impronte virali ma cerca di rilevare nuovi virus semplicemente verificando le operazione che il file sta cercando di eseguire. Se tali operazioni risultano sospette, allora l’antivirus provvederà a bloccare il file eventualmente segnalandolo con un messaggio di allerta. Proprio per questo modo di operare la scansione euristica è più difficile da aggirare.

Le tecniche che illustrerò saranno in grado di ingannare solo gli antivirus che analizzano il pattern/firma del file confrontandola con quelle memorizzate nel loro database di impronte virali.


Iniziamo
Uno dei tool che viene bloccato dagli antivirus in quanto considerato "Hacker Tool" è NetCat. NetCat è un programmino opensource a riga di comando molto flessibile che ci permette di ottenere la shell di un sistema remoto, eseguire la scansione delle porte, inviare email, trasferire file, chattare, creare backdoor e tant’altro.

Una versione di NetCat per Windows potete scaricarla dal seguente link

Se avete installato un antivirus è probabile che l’eseguibile venga riconosciuto come virus e bloccato o eliminato, pertanto è consigliabile disabilitare temporaneamente l’antivirus. Se non vi fidate e volete lavorare in tutta sicurezza allora vi consiglio di lavorare su una macchina virtuale.

Scompattate il file .zip in una cartella. All’interno del file zip, oltre al file eseguibile, trovano posto i sorgenti dell’applicazione.

Per verificare quanti e quali antivirus identificano l’eseguibile di NetCat (nc.exe) come virus possiamo effettuare l’upload del file su www.virustotal.com e farlo analizzare.

Virustotal è un servizio che permette l’analisi di file sospetti per la rapida identificazione di virus, malware e trojan. Il file segnalato dall’utente viene verificato confrontandolo con i database delle impronte virali dei maggiori antivirus in circolazione.

Nel nostro caso Virustotal indica che nc.exe viene segnalato come pericoloso dal 31 dei 55 antivirus in elenco. Cosa possiamo fare per migliorare la situazione?

Prima scansione con Virustotal
FIG 1 - Prima scansione con Virustotal

Opzione 1: Alterare il codice sorgente
Uno dei metodi che possiamo utilizzare è quello di andare ad alterare il codice sorgente in modo tale da alterarne l’impronta e renderlo non più riconoscibile dagli antivirus.

Nel nostro caso agiremo sul codice sorgente di NetCat che abbiamo scaricato precedentemente. Iniziamo subito con dire che aggiungere commenti al file sorgente non andrà a modificare in alcun modo il file eseguibile, infatti  tutti i compilatori ignorano i commenti passando all'istruzione successiva. Quindi dobbiamo trovare un modo per far si che il file eseguibile ottenuto sia diverso da quello originale pur mantenendo le sue funzionalità.

Un metodo per ottenere un file eseguibile leggermente diverso da quello originale è provare a modificare le impostazioni del compilatore o, meglio ancora, utilizzare un compilatore diverso. I compilatori tendono ad ottimizzare aspetti diversi dell’applicazione producendo, in questo modo, eseguibili leggermente diversi tra loro. Ad es. i compilatori Intel tendono ad ottimizzare il codice per i propri processori, il compilatore incluso in Microsoft Visual Studio, invece, ottimizzerà il file eseguibile per essere eseguito sui propri sistemi operativi ecc. Proviamo a verificare quanto ho scritto fin’ora.

  • Rinominiamo il file nc.exe in originale.nc.exe 
  • Andiamo a modificare il file makefile aprendolo con un editor di testo e andando a cancellare gli spazi antecedenti a $(cc) e $(link) sostituendoli con una tabulazione (righe 11, 14 ,  17 e 21). Questa operazione va fatta in quanto gli spazi potrebbero dare fastidio al nostro compilatore.
  • Ricompiliamo il tutto. Per chi dispone di Visual Studio Express (scaricabile gratuitamente dal sito Microsoft) oppure Visual Studio (quest’ultimo è a pagamento) è possibile compilare il file utilizzando nmake. Per utilizzare nmake è necessario avviare il prompt dei comandi di Visual Studio: da Start->Tutti i Programmi->Microsoft Visual Studio->Visual Studio Tools->Prompt dei comandi di Visual Studio
    Dal prompt dei comandi posizionarsi nella cartella contenente i file sorgenti e digitare semplicemente
    Nmake
  • Nmake provvederà a compilare i file facendo riferimento ai comandi presenti nel file makefile. Al termine della compilazione nella cartella dovremmo trovare il nuovo file nc.exe.
    Eseguiamo l’upload del file su www.virustotal.com e con grande sorpresa scopriamo che con questa semplice operazione nc.exe viene segnalato da un numero inferiore di antivirus. 
Scansione con Virustotal dopo ricompilazione
FIG 2 - Scansione con Virustotal dopo ricompilazione


  • Prima di cantare vittoria verifichiamo se il nuovo file funziona. Dal prompt dei comandi posizioniamoci nella cartella dove è presente il file nc.exe e digitiamo il seguente comando
    nc -v -w2 -z 192.168.0.3 1-200
    tale comando esegue la scansione delle porte, comprese tra 1 e 200, sulla postazione con indirizzo ip 192.168.0.3 e ci informa quali porte risultano aperte. Il comando funziona correttamente e dimostra che il nostro file è perfettamente funzionante.
  • Altre modifiche che possiamo apportare al codice sorgente sono la modifica dei nomi delle variabili globali, il nome dei metodi, modificare leggermente le procedure/funzioni. 
Nel caso in cui non avessimo a disposizione il sorgente del file allora possiamo modificare il codice aiutandoci con un debugger e un editor esadecimale. In questo caso l’operazione diventerebbe molto più complicata ma comunque fattibile.


Opzione 2: Utilizzare runtime Packers
L’utilizzo di runtime packers permette di modificare la struttura all'interno di un file eseguibile. I runtime packers non sono altro che dei software che riescono a comprimere un file eseguibile senza però togliergli la capacità di esecuzione: le dimensioni del file diminuiscono ma il file rimane comunque eseguibile. Una volta lanciati si auto decomprimono in memoria e iniziano la loro esecuzione in modo del tutto trasparente all’utente.

Di runtime Packers ce ne sono molti in circolazione, tra i più diffusi troviamo UPX, ASPack, PEProtect, UPack, PESpin, MEW, FSG e tanti altri ancora.

  • Scarichiamo UPX per Windows dal seguente URL http://upx.sourceforge.net/  e scompattiamolo
  • Copiamo il file originale.nc.exe che abbiamo visto nell’Opzione 1 nella cartella dove abbiamo scompattato UPX
  • Dal prompt dei comandi accediamo alla cartella di upx e digitiamo il seguente comando:
    upx -9 originale.nc.exe
  • Una volta che il file è stato compresso eseguiamo l’upload su www.virustotal.com ed eseguiamo l’analisi, vedremo che rispetto al file originale viene riconosciuto da un minore numero di antivirus. Non è molto ma è pur sempre un miglioramento. Nulla ci vieta di eseguire in sequenza più runtime packers per migliorare ulteriormente questo risultato, l’importante è non esagerare anche perché i miglioramenti sono limitati.

Opzione 3: Utilizzare software per proteggere il codice dal reverse engineering
Questo tipo di software, concettualmente, funziona in modo analogo ai runtime packers con la differenza che non si limita a comprimere il codice ma provvede anche a modificarne la struttura e a criptarlo per rendere difficile l’operazione di reverse.  Solitamente il codice x86 viene sostituito con un byte code proprietario.

I software più utilizzati in tal senso sono tipo Themida (www.oreans.com) e VMprotect (www.vmprotect.com) entrambi di tipo commerciale. In questo articolo mostrerò il funzionamento di Themida (sul sito www.oreans.com è possibile scaricare una demo del prodotto). La versione di Themida utilizzata è l'ultima disponibile al momento, si tratta della versione 2.3.2.0. La demo non richiede alcuna installazione, basta eseguire la versione a 32 o 64bit in base al software che si intende proteggere.

L'utilizzo del software è molto semplice, una volta avviato non ci resta che indicare il file che vogliamo proteggere e smanettare con le varie opzioni per impostare le protezioni di nostro gradimento quindi non ci resta che cliccare sul pulsante Protect.



Themida
FIG 3 - Themida
Anche lasciando tutte le impostazioni di default si ottiene un risultato discreto. Proteggendo il nostro file originale.nc.exe analizzando il file prodotto con virustotal notiamo che il numero di antivirus che segnalano il file ancora come pericoloso è molto ridotto.
Analisi di Virustotal del file protetto da Themida
FIG 4 - Analisi di Virustotal del file protetto da Themida



Opzione 4: Binding 
Nascondere l’estensione del file tramite l’apposita opzione presente nel sistema operativo o effettuare il binding sono due operazioni idonee ad ingannare l’utente ma non l’antivirus, ragione per cui verranno solo accennate in questo articolo. 

Il binding consiste nell’unire più eseguibili in uno. Tra i tool più utilizzati in passato il più noto è sicuramente eLiTeWrap piuttosto vecchiotto e ormai riconosciuto da tutti gli antivirus. Veniva utilizzato spesso per creare una backdoor con VNC.

Di programmi che effettuano il binding ce ne sono molti in giro ed è possibile costruirsene di propri con poche righe di codice. Oltre a eLiTeWrap che è gratuito e open source, troviamo File Joiner, Exe Fusion, Quick Batch File Compiler e tanti altri ancora. Possiamo persino utilizzare l’utility IExpress inclusa in Windows oppure, con gli appositi tool di compressione(ad es. Winzip e Winrar), possiamo creare un file autoestraente in cui specifichiamo un file da eseguire al termine dell’estrazione. L’icona dei file creati con utility come IExpress, Winrar e Winzip sono facilmente riconoscibili e possono insospettire l’utente ma possiamo modificarle facilmente utilizzando tool come Resource Hacker  (http://angusj.com/resourcehacker).

Basta fare una piccola ricerca con google per trovare tante altre utility adatte a questo scopo.


Altre Opzioni


Modificare con debugger ed editor esadecimale il file eseguibile

Utilizzando software come LordPe, Hex Workshop e Ollydbg è possibile andare a modificare direttamente il file eseguibile magari  aggiungendo una routine di codifica/decodifica  eseguita a runtime, ad es. una routine XOR,  così come dimostrato da Mati Aharoni (esperto di sicurezza informatica che ha contribuito allo sviluppo di BackTrack) allo Shmoocon 2008(convention annuale degli hacker sulla east coast degli Stati Uniti).

L’operazione consiste nell’inserire uno stub all’interno del file con il compito di criptare/decriptare il file.  In pratica procediamo nel seguente modo:


Aggiungiamo alla fine del file dei byte in modo da creare spazio per la nostra routine;

  • Inseriamo la nostra routine alla fine del file;
  • Modifichiamo la prima istruzione del file in modo tale che salti alla prima istruzione della routine appena aggiunta;
  • Al termine della nostra routine inseriamo un salto per ritornare al flusso originale del programma
Per semplicità ci atteniamo all'esempio fatto da Mati Aharoni utilizzando una routine che esegue l’XOR pertanto non parliamo più di criptare/decriptare ma di codifica/decodifica.


  • Aprire il file binario con LordPE, cliccare sul pulsante Sections quindi, nella nuova finestra dal titolo [ Section Table ], cliccare sulla riga .idata con il tasto destro del mouse e selezionare, dal menu contestuale, la voce edit section header. Andiamo a modificare i campi VirtualSize e RawSice aggiungendo il valore 1000.

    LordPE Sections
    FIG 5 - LordPE Sections

    LordPE .idata
    FIG 6 - LordPE .idata
  • Clicchiamo sul pulsante accanto al campo Flags e, nella finestra che appare, assicuriamoci di impostare il Flag Executable as a code. Confermiamo la modifica cliccando sul pulsante OK fino a ritornare alla finestra [ Section Table ]

    LordPE [ Section Flags]
    FIG 7 - LordPE [ Section Flags] 
  • Clicchiamo con il tasto destro del mouse in corrispondenza della riga .text e, dal menu contestuale, selezioniamo la voce edit section header.
  • Clicchiamo sul pulsante accanto al campo Flags e impostiamo il flag Writeable. Tale opzione va abilitata in quanto l’operazione di codifica/decodifica avverrà proprio nella sezione .text. Confermiamo la modifica cliccando sempre su OK fino a ritornare alla finestra [ Section Table ]. Chiudiamo la finestra quindi clicchiamo prima sul pulsante Save e successivamente su OK
    Possiamo chiudere l’applicazione Lord PE

    LordPE [ Section Flags ]
    FIG 8 - LordPE [ Section Flags ]
A questo punto tentando di eseguire il file verrà visualizzato un messaggio di errore che avvisa l’utente che non si tratta di un’applicazione Windows valida. Ciò è dovuto al fatto che abbiamo indicato le nuove dimensioni della sezione .idata senza modificare le dimensioni effettive del file e questo manda in tilt l’IP. Ecco che per rimediare utilizziamo un altro tool Hex Workshop.
  • Avviamo Hex Workshop e posizioniamoci alla fine del file, clicchiamo con il tasto destro e dal menu selezioniamo la voce Insert

    Hex Workshop
    FIG 9 - Hex Workshop
  • Nel campo Number of bytes inseriamo 1000 (per il nostro scopo possiamo inserire anche meno byte ma meglio tenerci larghi) e assicuriamoci che l’opzione Hex sia selezionata. Clicchiamo su OK e salviamo il file. Possiamo uscire da Hex Workshop.

    Hex Workshop
    FIG 10 - Hex Workshop
Adesso tentando di eseguire il nostro file non riceveremo più alcun messaggio di errore. Le operazioni che abbiamo eseguito fino a questo momento hanno aggiunto lo spazio per l’inserimento della nostra routine XOR. Per questa attività ci serviamo di Ollydbg.
  • Apriamo il nostro file da Ollydbg. Il debugger si posiziona subito sulla riga di nostro interesse (entry Point) che è rappresentata dalla prima istruzione. Copiamo le prime 4 righe e incolliamole in blocco note, ci serviranno più tardi per il return dalla nostra routine.
    Per semplicità di seguito riporto le righe di nostro interesse che andremo a copiare:
    00404C00 > $ 55             PUSH EBP
    00404C01   . 8BEC           MOV EBP,ESP
    00404C03   . 6A FF          PUSH -1
    00404C05   . 68 00B04000    PUSH nc.0040B000
    OllyDbg
    FIG 11 - OllyDbg 
  • Visualizziamo la Memory Map: dal menu View selezionare la voce Memory. Nella nuova finestra cliccare 2 volte sulla sezione .idata
    .
    OllyDbg Memory Map
    FIG 12 - OllyDbg Memory Map
  • A questo punto si aprirà una nuova finestra contenente il dump della sezione .idata. Scorriamo e individuiamo il punto in cui iniziano i byte da noi inseriti. Non è importante essere estremamente precisi, possiamo anche non selezionare con precisione il punto di inizio del nostro blocco ma un po’ di indirizzi più avanti. Troviamo che l’indirizzo 00412830 fa al caso nostro.
  • Chiudiamo la schermata e la finestra Memory Dump per ritornare alla schermata principale (CPU - main thread). Posizioniamoci sulla prima riga che abbiamo copiato (Nel nostro caso all’indirizzo 00404C00. Nel caso ci fossimo spostati inavvertitamente: selezionare una riga qualsiasi, cliccarci su con il tasto destro del mouse quindi selezionare go to e successivamente Origins. Se Origins non appare nel menu vuol dire che siamo già sulla prima riga)
  • Adesso dobbiamo modificare il flusso di esecuzione. Clicchiamo 2 volte sulla prima riga. Apparirà una finestra che ci permetterà di modificare l’istruzione. Inseriamo nell'apposito campo l’istruzione JMP 00412830 dove 00412830 rappresenta il punto di inizio del nostro blocco vuoto aggiunto precedentemente e da cui faremo iniziare la nostra routine

    OllyDbg JMP
    FIG 13 - OllyDbg JMP
  • Dopo l’inserimento dell’istruzione JMP notiamo che anche le righe immediatamente successive sono modificate. Adesso dobbiamo individuare l’intervallo di indirizzi che ci interessa codificare. La codifica dovrà partire dall'istruzione immediatamente successiva a quella di JMP da noi inserita, quindi si parte dall'indirizzo 00404C05. Scorriamo fino a raggiungere quasi la fine del file e notiamo che dall'indirizzo  0040A770 non ci sono più istruzioni. Quindi possiamo concludere che l’intervallo che ci interessa codificare/decodificare va dall'indirizzo 00404C05 al  0040A770
  • Salviamo il file nel seguente modo: clicchiamo con il tasto destro del mouse in un qualsiasi punto del codice assembly, selezioniamo la voce copy to executable quindi selezioniamo all modification e successivamente copy all. Nella nuova finestra che appare clicchiamo nuovamente in un punto qualsiasi con il tasto destro del mouse e selezioniamo save file. Diamo il nome al file e procediamo con il salvataggio.
  • Apriamo il file appena salvato in Ollydbg. Dovremmo già essere posizionati sull Entry point (00404C00 JMP 00412830). Premiamo il tasto F7 che ci porterà all'indirizzo 00412830 dove aggiungeremo la nostra routine XOR. A partire dall'indirizzo 00412830 dobbiamo inserire le istruzioni della nostra routine così come visto precedentemente con l’istruzione JMP 00412830. Di seguito riporto le istruzioni da inserire:
    MOV EAX, 00404C05 # Memorizza l'indirizzo da cui iniziare la codifica/decodifica
    XOR BYTE PTR DS:[EAX],0F # Esegue una XOR
    INC EAX # incrementa EAX
    CMP EAX, 0040A770 #verifica se abbiamo raggiunto la fine della parte da codificare..
    JLE SHORT <XOR LOOP> #..altrimenti, salta nuovamente al comando xor
    Al posto di <XOR LOOP> va messo l’indirizzo dell’istruzione XOR BYTE PTR DS:[EAX],0F, nel nostro caso tale indirizzo è 00412835
  • Sempre proseguendo aggiungiamo anche le istruzioni che abbiamo copiato nel blocco note
    PUSH EBP
    MOV EBP,ESP
    PUSH -1

    Al posto dell’istruzione  00404C05   . 68 00B04000    PUSH nc.0040B000 utilizziamo la seguente
    JMP 00404C05
    Da notare che il salto viene fatto all’indirizzo 00404C05 che rappresenta l’indirizzo della istruzione PUSH originaria
  • Salviamo il file come abbiamo fatto precedentemente ed eseguiamolo da Ollydbg. Otteniamo un errore di accesso: Access Violation when reading…
    L’errore è dovuto al fatto che il file è stato codificato con la routine XOR quindi il programma sta cercando di eseguire un istruzione codificata che, ovviamente, non riconosce come valida. Adesso non ci resta che copiare le istruzioni codificate e salvarle come un file eseguibile, in questo modo alla successiva esecuzione la routine XOR provvederà a decodificarlo in memoria.
    Selezioniamo le righe da 00404c05 - 0040A770 che rappresenta la parte di file codificata dalla routine XOR. Clicchiamo con il tasto destro sulle righe selezionate quindi scegliamo copy to executable e successivamente selection. Nella nuova schermata clicchiamo nuovamente con il tasto destro e selezioniamo Save file.

    OllyDbg copy to executable
    FIG 14 - OllyDbg copy to executable
Abbiamo terminato. Adesso il file codificato è salvato sul disco. Al successivo avvio del file la routine XOR provvederà ad effettuare la decodifica in memoria.
Adesso non ci resta che verificare, tramite virustotal se il file modificato viene ancora riconosciuto dagli antivirus . Eseguiamo l’upload sul sito www.virustotal.com e procediamo con l’analisi. Il file viene ancora riconosciuto come pericoloso da molti antivirus. Ovviamente utilizzando un tipo di codifica semplice come quella XOR non potevamo aspettarci risultati miracolosi ma nulla ci vieta di sostituire la nostra routine con una più complessa ed efficace.


PE-Scrambler
PE-Scrambler è un tools creato da Nick Harbour che effettua lo scrambler e l’offuscamento del codice in un file binario (istruzioni e chiamate di funzioni). Il tool fu presentato al DEFCON del 2008. Il tool, seppur obsoleto, è ancora possibile trovarlo in rete facendo una ricerca con google 
L’utilizzo è molto semplice. Da riga di comando basta digitare

pescrambler -i <INPUT.exe> -o <OUTPUT.exe>


Il punto debole dei compressori tipo UPX sta proprio nel loro modo di operare. Questi  tool comprimono/criptano il codice binario ed aggiungono al file uno stub che permette, in fase di esecuzione, di procedere all’operazione inversa in memoria. Una volta eseguito il file, lo stub verrà eseguito prima di ogni altra istruzione e provvederà a decomprimere/decriptare le successive istruzioni in memoria. Gli antivirus che verificano i dati presenti in RAM, confrontandoli con il database delle impronte virali, riconoscono in questo modo il file sospetto bloccandolo.

PE-Scrambler funziona in modo leggermente diverso. Il tool, dopo aver effettuato il disassembler del file binario, effettua lo scrambler dei dati e delle istruzioni presenti. All'interno del file viene aggiunta una funzione di 65-byte che effettua da dispatcher per tutte le altre chiamate a funzione. Il tool, infatti, provvede ad individuare tutte le chiamate a funzione, interne ed esterne, e le dirotta al dispatcher che provvede a richiamarle correttamente utilizzando una tabella di lookup contenente l’indirizzo di ritorno e quello target.

Gli antivirus hanno preso le contromisure adeguate e utilizzando questo tool non si ottengono risultati apprezzabili.



NTFS Alternate Data Streams 

Un altro metodo utilizzato per nascondere file sospetti dall’antivirus è quello di utilizzare NTFS Alternate Data Streams, ma nel nostro caso questa opzione è da scartare in quanto, per poter procedere alla creazione di un ADS, è necessario prima che il file binario sia presente sulla macchina target e per fare ciò è necessario aver già ingannato l’antivirus. Inoltre tale tecnica funzionerebbe solo su partizioni NTFS. Trasferendo il file su altri file system, ad es su file system FAT di una penna USB,  l’ADS verrebbe perso.


Cygwin

Ricompilare il file con Cygwin è un’altra ipotesi da scartare in quanto in questo caso dovremmo distribuire l’eseguibile con la libreria cygwin.dll, una cosa non molto conveniente.


Conclusioni

Come si può immaginare l’argomento è molto vasto e in continua evoluzione e trattarlo nella sua interezza richiede molto spazio e tempo. Con questo articolo ho trattato una minima parte dell'argomento utilizzando anche tool non più utilizzati ma spero di aver suscitato la curiosità di qualche lettore ad un approfondimento. Ritornerò comunque sull'argomento.