martedì 12 marzo 2019

PowerShell: Installazione/Disinstallazione di OpenSSH Client/Server in Windows 10

OpenSSH (Open Secure Shell) è un'insieme di strumenti utilizzato per connessioni da remoto cifrate tramite il protocollo SSH. Tutto il traffico viene cifrato consentendo una comunicazione sicura e immune da intercettazioni, dirottamenti e altri tipi di attacchi.

Microsoft ha integrato, come funzionalità facoltative, OpenSSH Client e OpenSSH Server all'interno del proprio sistema operativo. Le due funzionalità possono essere installate separatamente in Windows Server 2019 e Windows 10 1809 sia tramite interfaccia grafica (GUI) sia tramite PowerShell.


Installazione di OpenSSH Client/Server tramite GUI

  • Avviare l'app Impostazioni (WIN+I) quindi cliccare su App;
    Windows 10, Impostazioni
    FIG 1 - Windows 10, Impostazioni
  • Nella sezione App e funzionalità cliccare sul link Gestisci funzionalità facoltative;
    Windows 10, App e funzionalità
    FIG 2 - Windows 10, App e funzionalità
  • Cliccare su Aggiungi una funzionalità;
    Windows 10, Aggiungi una funzionalità
    FIG 3 - Windows 10, Aggiungi una funzionalità
  • Selezionare la funzionalità che si intende installare e cliccare sul pulsante Installa per procedere con l'installazione.
    Windows 10, Installa una nuova funzionalità
    FIG 4 - Windows 10, Installa una nuova funzionalità



Disinstallazione di OpenSSH Client/Server tramite GUI

I passaggi sono analoghi a quanto visto per l'installazione.
  • Avviare l'app Impostazioni (WIN+I) quindi cliccare su App;
  • Nella sezione App e funzionalità cliccare sul link Gestisci funzionalità facoltative;
  • Dall'elenco delle funzionalità installate selezionare quella che si intende disinstallare e cliccare sul pulsante Disinstalla per procedere con la rimozione.

    Windows 10, Disinstallazione funzionalità aggiuntive
    FIG 5 - Windows 10, Disinstallazione funzionalità aggiuntive



Installazione di OpenSSH Client/Server tramite PowerShell

  • Per accertarsi che le funzionalità OpenSSH siano disponibili per l'installazione utilizzare il comando
    Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
    PowerShell, Get-WindowsCapability
    FIG 6 - PowerShell, Get-WindowsCapability
  • Per installare il Client OpenSSH eseguire
    Add-WindowsCapability -Online -Name OpenSSH.Client*
  • Per installare il Server OpenSSH eseguire
    Add-WindowsCapability -Online -Name OpenSSH.Server*
    PowerShell, Add-WindowsCapability per installare nuove funzionalità
    FIG 7 - PowerShell, Add-WindowsCapability per installare nuove funzionalità
Terminata l'installazione sarà possibile utilizzare dal prompt dei comandi o da PowerShell i seguenti comandi SSH:
ssh.exe
scp.exe
sftp.exe
ssh-add.exe
ssh-agent.exe
ssh-keygen.exe
ssh-keyscan.exe

Gli eseguibili sopra riportarti si trovano all'interno della cartella
C:\Windows\System32\OpenSSH\ 
mentre i file di SSH relativi ai nomi host noti, alle chiavi generate ecc. si trovano nel seguente percorso
%USERPROFILE%\.ssh\ 





Disinstallazione OpenSSH Client/Server tramite PowerShell

La disinstallazione di OpenSSH Client/Server può essere eseguita tramite il cmdlet Remove-WindowsCapability 
  • Per disinstallare il client OpenSSH da PowerShell eseguire
    Remove-WindowsCapability -Online -Name OpenSSH.Client*
  • Per disinstallare il server OpenSSH  eseguire
    Remove-WindowsCapability -Online -Name OpenSSH.Server*




Configurazione iniziale di OpenSSH Server

Per eseguire la configurazione iniziale di OpenSSH Server, lanciare una sessione PowerShell come amministratore ed eseguire i seguenti comandi
  • Avviare il servizio sshd con il comando
    Start-Service sshd
  • Impostare l'avvio Automatico del servizio eseguendo
    Set-Service -Name sshd -StartupType 'Automatic'
  • Durante l'installazione di OpenSSH Server viene creata e abilitata una regola sul firewall (OpenSSH-Server-In-TCP) per consentire le connessioni in SSH in ingresso. Verificare la presenza della regola sul firewall con il comando
    Get-NetFirewallRule -Name *ssh*
PowerShell, Configurazione iniziale di OpenSSH Server
FIG 8 - PowerShell, Configurazione iniziale di OpenSSH Server



Connessione al server SSH

Sulle postazioni dove è installato il client OpenSSH è possibile connettersi al server eseguendo il comando
ssh username@servername

Al primo accesso al server verrà mostrato un messaggio come quello in FIG 9.
PowerShell, Connessione al server OpenSSH
FIG 9 - PowerShell, Connessione al server OpenSSH

Rispondendo yes si prosegue con la connessione e verrà richiesto l'inserimento della password di accesso.

A connessione avvenuta il server verrà aggiunto all'elenco locale degli host noti e  verrà mostrato un prompt del tipo
domain\username@SERVERNAME C:\Users\username>





lunedì 11 marzo 2019

PowerShell: Creazione di un documento Excel contenente l'elenco dei processi in esecuzione

Lo script PowerShell presentato in quest'articolo consente di creare un documento MS Excel in cui vengono elencati i processi in esecuzione sulla postazione con relative informazioni su Nome del processo, ID, tempo di CPU ed eventuale percorso del file eseguibile. Un prerequisito per l'esecuzione di tale script è che sulla postazione sia installato MS Excel.
Se eseguendo lo script si riceve errore relativo a restrizioni impostate sulla postazione, eseguire il comando
set-executionpolicy unrestricted

Analizziamo lo script nel dettaglio.
Nella variabile $path andiamo ad inserire il nome, comprensivo di percorso, da assegnare al documento MS Excel una volta creato.
$path = "c:\ElencoProcessi.xlsx"
Con le successive tre istruzioni viene avviato MS Excel, creata una nuova cartella di lavoro e all'interno di quest'ultima ci si posiziona sul foglio di lavoro che andrà a contenere le informazioni sui processi.
$objExcel = new-object -comobject excel.application 
$objWorkbook = $objExcel.Workbooks.Add() 
$objWorksheet = $objWorkbook.Worksheets.Item(1)

Per non visualizzare a video la finestra di MS Excel in fase di creazione del file, nello script viene utilizzata l'istruzione
$objExcel.Visible = $False
All'interno del foglio di lavoro utilizziamo la prima riga come riga di intestazione assegnando un nome a ciascuna colonna in base al contenuto che andremo successivamente ad inserire.
$objWorksheet.Cells.Item(1, 1) = "Process"
$objWorksheet.Cells.Item(1, 2) = "ID"
$objWorksheet.Cells.Item(1, 3) = "CPU"
$objWorksheet.Cells.Item(1, 4) = "Path"
Il cuore dello script è rappresentato dalle seguenti istruzioni. 
$row=2
Get-Process | Sort-Object ProcessName | Select ID, ProcessName,CPU, Path | foreach-object{ 
 $objWorksheet.Cells.Item($row,1) = $_.processname;
 $objWorksheet.Cells.Item($row,2) = $_.id;
 $objWorksheet.Cells.Item($row,3) = $_.cpu;
 $objWorksheet.Cells.Item($row,4) = $_.path;
 $row++
}
La variabile $row viene inizializzata a 2 (nella prima riga del foglio di lavoro abbiamo inserito l'intestazione) e verrà utilizzata per spostarci alla riga successiva man mano che verranno trovati e inseriti i processi all'interno del foglio. Tramite il cmdlet Get-Process otteniamo i processi in esecuzione che vengono ordinati per nome  con Sort-Object ProcessName e inseriti all'interno del foglio di lavoro.
Al termine non resta che salvare il documento creato e chiudere MS Excel. Nel caso in cui il nome del file risulti già presente, apparirà una finestra di dialogo in cui viene richiesto all'utente se intende sovrascriverlo.
$objWorkbook.SaveAs($path)
$objWorkbook.Close()
$objExcel.Quit()
PowerShell, Script ElencoProcessi.ps1
FIG 1 - PowerShell, Script ElencoProcessi.ps1

Lo script può essere scaricato dal seguente link
DOWNLOAD
All'interno dello script è presente la funzione Use-RunAs che forza l'esecuzione con i privilegi amministrativi (PowerShell: Forzare l'esecuzione di uno script con privilegi elevati). L'utilizzo di tale funzione non è strettamente necessaria ma può essere utile se si tenta di salvare il file in path che richiedono privilegi elevati.

MS Excel, Elenco Processi
FIG 2 - MS Excel, Elenco Processi





giovedì 7 marzo 2019

Kali Linux: Utilizzare Sandsifter per il fuzzing dei processori x86

Il fuzzing è una tecnica automatica per testare i software. La tecnica consiste nel fornire dati causali, non validi o imprevisti come input di un programma per computer e analizzarne il suo comportamento al fine di individuare errori o falle di sicurezza. 
Sandsifter applica tale tecnica nella verifica dei processori x86 generando sistematicamente codice macchina attingendo dal set di istruzioni del processore e monitorando l'esecuzione di tale codice alla ricerca di istruzioni nascoste e bug hardware. Grazie a Sandsifter sono state scoperte istruzioni segrete sui processori dei principali produttori inoltre è stato possibile scoprire bug software negli assemblatori/disassemblatori, emulatori, negli hypervisor e persino bug hardware in alcuni modelli di processori x86.

In questo articolo verranno illustrati i passaggi per installare ed eseguire Sandsifter sul proprio sistema utilizzando Kali Linux. Prima di proseguire con l'installazione ed esecuzione di Sandsifter è opportuno aggiornare i pacchetti installati e la propria distribuzione di Kali Linux eseguendo da terminale il seguente comando

apt-get update && apt-get upgrade

Aggiornamento Kali Linux
FIG 1 - Aggiornamento Kali Linux



Installazione Sandsifter

Per poter installare e utilizzare Sandsifter è necessario prima installare Capstone, un Framework necessario per disassemblare. Da terminale digitare i seguenti comandi
apt-get install libcapstone3 libcapstone-dev
pip install capstone
Eseguire il download di Sandsifter con il comando
git clone https://github.com/xoreaxeaxeax/sandsifter.git
Download di sandsifter
FIG 2 - Download di sandsifter

Accedere alla cartella di sandsifter
cd sandsifter
Prima di poter compilare è necessario andare a modificare il file Makefile. Digitare il comando
leafpad Makefile
Bisogna aggiungere la stringa -no-pie in modo che il contenuto del file diventi
all: injector

injector: injector.o
 $(CC) $(CFLAGS) $< -O3 -Wall -no-pie -l:libcapstone.a -o $@ -pthread

%.o: %.c
 $(CC) $(CFLAGS) -c $< -o $@ -Wall

clean:
rm *.o injector
Sandsifter makefile
FIG 3 - Sandsifter makefile

Salvare il file quindi compilare il codice eseguendo il comando
make


Esecuzione di Sandsifter

Per eseguire una verifica di base del proprio processore lanciare il comando
./sifter.py --unk --dis --len --sync --tick -- -P1 -t
Sandsifter
FIG 4 - Sandsifter

La schermata della verifica presenta 2 sezioni: in quella superiore viene mostrata l'istruzione che Sandsifter sta verificando mentre in quella inferiore vengono riportati gli errori/bug trovati. La scansione può richiedere da poche ore a più giorni per essere portata a termine a seconda della velocità e della complessità del processore che si sta analizzando è può trovare milioni di istruzioni non documentate.

Quando la scansione è completa sarà possibile riassumere i risultati tramite il comando
./summarize.py data/log

il comando provvede anche ad assegnare una categoria e un livello di importanza al problema trovato. Le categorie principali sono 3:
  • Bug Software
  • Bug Hardware
  • Istruzioni non documentate

Premendo 'Q' si esce dall'applicazione e viene prodotto un resoconto in formato testo della scansione del sistema.
Premendo 'M' durante l'esecuzione di Sandsifter viene modificata la modalità di ricerca (brute force, randomized fuzzing e tunneled fuzzing) mentre premendo il tasto 'P' è possibile mettere in pausa (o riprendere dalla pausa) il processo di ricerca.



Flag utilizzabili in Sandsifter


--len
Cerca le differenze di lunghezza in tutte le istruzioni. Ricerca istruzioni che si comportano in maniera diversa da quanto si aspetta il disassembler o che non esistono.

--dis
Come per il flag --len ma la ricerca viene eseguita solo per le istruzioni valide.

--unk
Ricerca le istruzioni sconosciute, istruzioni che anche se non riconosciute dal disassembler vengono eseguite con successo.

--ill
E' l'opposto del flag --unk. Ricerca istruzioni che non vengono eseguite correttamente ma riconosciute dal disassembler

--tick
Scrive periodicamente l'istruzione corrente sul disco.

--save
Salva i progressi della ricerca in uscita.

--resume
Riprende la ricerca dall'ultimo stato salvato.

--sync
Scrive i risultati della ricerca sul disco man mano che vengono trovati.

--low-mem
Non memorizza i risultati in memoria.




Injector utilizzabili in Sandsifter


-b
Mode: brute force. In tale modalità la ricerca prova le istruzioni in modo incrementale, fino a una lunghezza specificata dall'utente. Generalmente è più lenta ricerca casuale.

-r
Mode: randomized fuzzing.

-t
Mode: tunneled fuzzing.

-d
Mode: externally directed fuzzing.

-R
Raw output mode.

-T
Text output mode.

-x
Scrive periodicamente i progressi su stderr.

-0
Consente dereferenza nulla.

-D
Consente prefissi duplicati.

-N
Non consente nx bit.

-s seed
Nella ricerca random, il valore del seed.

-B brute_depth
Nella modalità brute force specifica la massima profondità della ricerca.

-P max_prefix
Numero massimo di prefissi da ricercare.

-i instruction
Istruzione da cui partire per la ricerca (inclusiva).

-e instruction
Istruzione a cui terminare la ricerca.

-c core
Core su cui eseguire la ricerca.

-X blacklist
Mette in blacklist l'istruzione specificata.

-j jobs
Numero simultaneo di job eseguiti contemporaneamente.

-l range_bytes
Numero di byte di istruzione di base in ogni sottogruppo.





martedì 5 marzo 2019

Tor Browser: Verificare la sicurezza tramite TorCheck

TOR (The Onion Router) è un sistema di comunicazione anonima per Internet basato sul protocollo di rete onion routing. Fu sviluppato a metà degli anni 90 per la US Naval Research Laboratory da Paul Syverson e da Micheal Reed al fine di proteggere le comunicazioni dei servizi segreti statunitensi. Nel 2004 il codice sorgente del progetto fu rilasciato con una licenza libera e nel 2006 alcuni collaboratori che lavoravano al progetto iniziale fondarono The Tor Project, un'associazione senza scopo di lucro che si occupa tuttora dello sviluppo di TOR e di altri progetti correlati.
Tra i progetti più noti del Tor Project c'è Tor Browser: un browser basato su Firefox ESR che consente una navigazione anonima collegandosi al proxy server SOCKS interno di TOR (127.0.0.1:9150). Tor Browser è disponibile sia in versione con installer sia nella versione portable per tutti i sistemi operativi e include, oltre al browser Firefox ESR, anche il plugin HTTPS Everywhere (per forzare l'utilizzo del protocollo HTTPS), il plugin NoScript (che previene l'esecuzione di codice Javascript che può minare l'anonimato), TorButton (che gestisce la sicurezza e la privacy all'interno del browser disabilitando gran parte dei contenuti attivi) e l'addon TorLauncher (che permette la gestione e la configurazione di Tor Browser).
Tor Browser
FIG 1 - Tor Browser

Tor Browser (scaricabile da https://www.torproject.org/projects/torbrowser.html.enforza l'utilizzo del protocollo HTTPS tramite HTTPS EveryWhere garantendo una connessione cifrata tra il proprio PC e il primo nodo della rete TOR. Sulla rete TOR il traffico cifrato rende estremamente difficile risalire alla sorgente, tuttavia non sempre è garantito l'anonimato nell'ultimo tratto della comunicazione quello, cioè, tra l'Exit Node e il sito destinatario presente su Internet. Tale connessione potrebbe non essere cifrata e se la comunicazione contiene dati/informazioni sul mittente è possibile risalire alla sorgente.

Proprio per questo motivo TOR Browser non va considerato come la panacea di  tutti i mali ma è necessario sempre il buon senso da parte dell'utente. Ad esempio, i file scaricati come documenti di Office o di altre applicazioni, PDF, file eseguibili, ecc. vanno aperti quando non connessi ad Internet in quanto possono contenere componenti attivi (come macro) o collegamenti a siti esterni e rilevare informazioni personali. Quando si è connessi a TOR inoltre è sconsigliabile utilizzare client torrent o altri software che possono collegarsi all'esterno fornendo informazioni sulla propria identità.



Verificare la configurazione e la sicurezza di Tor Browser tramite TorCheck

Per testare la configurazione di Tor Browser è possibile utilizzare TorCheck di Xenobite: basta accedere alla pagina https://torcheck.xenobite.eu/index.php utilizzando Tor Browser per avere, in pochi istanti, un report dettagliato come quello mostrato in FIG 2. 
TorCheck di Xenobite
FIG 2 - TorCheck di Xenobite

I campi evidenziati in verde chiaro indicano una buona protezione/configurazione mentre in rosso vengono riportati i campi potenzialmente problematici e che richiedono l'attenzione dell'utente. 
Le voci visualizzate dal report sono:
  • Your real IP
    Rappresenta l'indirizzo IP reale. Se visualizzato vuol dire che non si sta navigando in maniera anonima;
  • Your current IP
    Si tratta dell'indirizzo IP rilevato dai siti che si visita. Se Tor Browser è configurato correttamente verrà visualizzato un indirizzo diverso dall'IP reale (indirizzo dell'Exit Node);
  • Your current FQDN 
    FQDN (Fully Qualified Domain Name) è un nome di dominio non ambiguo che specifica la posizione assoluta di un nodo all'interno della gerarchia dell'albero DNS. Se il campo è valorizzato allora il nostro indirizzo IP viene ancora loggato dall'ISP tramite i DNS;
  • Your Geolocation
    Indica la posizione geografica in base all'IP rilevato;
  • TorDNSEL
    Questo campo indica se l'indirizzo IP di uscita fa parte della lista degli Exit Node;
  • Local Tor Consensus
    Indica se e quando l'indirizzo IP è stato trovato nel consenso locale di Tor;
  • Your HTTP-Referer 
    L'HTTP Referer è un campo all'interno del header HTTP che identifica l'indirizzo della pagina web di origine che richiama la risorsa richiesta. Tramite tale campo un sito web può verificare da quale pagina arriva un visitatore (ad es. da una ricerca su Google, da una mail, da un particolare sito, ecc);
  • Your HTTP-Via
    Il valore indica al server il tipo di richiesta che viene effettuata tramite il proxy di Tor;
  • Your HTTP-User-Agent
    Il campo indica l'User-Agent del browser e il sistema operativo. L'User-Agent del browser può essere modificato;
  • Your HTTP-ACCEPT
    Il campo mostra i valori accettati dal browser come la lingua, la codifica, il tipo di caratteri, cookies ecc.;
  • Your HTTP-CONNECTION
    Valore della HTTP-CONNECTION. Generalmente il valore è keep-alive;






lunedì 4 marzo 2019

Outlook Quick Tip: Inoltrare un messaggio senza aggiungere il prefisso I: all'oggetto

Quando si inoltra un'email da Outlook viene automaticamente aggiunto il prefisso I: all'oggetto. Ci possono essere casi in cui si intende eseguire un inoltro senza che venga aggiunto il prefisso I:. Per pochi messaggi si può procedere manualmente eliminando il prefisso ogni volta ma quando le email da inoltrare diventano numerose può essere utile automatizzare tale processo.

Tramite i seguenti passaggi andremo a creare una nuova azione rapida che ci consente di inoltrare il messaggio senza l'aggiunta del prefisso:
  • Da Outlook, selezionare la scheda Home;
  • Nella sezione Azioni rapide cliccare su Crea nuova;
    Outlook, Creazione nuova azione rapida
    FIG 1 - Outlook, Creazione nuova azione rapida
  • Nell'apposita casella digitare un nome significativo da assegnare alla nuova azione rapida (ad es. Inoltra senza I:);
    Outlook, assegnazione nome alla nuova azione rapida
    FIG 2 - Outlook, assegnazione nome alla nuova azione rapida
  • Nella casella elenco a discesa selezionare l'azione Inoltra quindi cliccare su Mostra opzioni;
    Outlook, Scegli azione e visualizzazione opzioni
    FIG 3 - Outlook, Scegli azione e visualizzazione opzioni
  • Nella casella Oggetto rimuovere I: in modo che sia visualizzata solo la stringa <oggetto> come mostrato in FIG 4 e cliccare su Fine;
    Outlook, Azione rapida e rimozione prefisso dall'oggetto
    FIG 4 - Outlook, Azione rapida e rimozione prefisso dall'oggetto

Per inoltrare un'email senza l'aggiunta del prefisso I: all'oggetto, basterà utilizzare la nuova azione rapida appena creata
Outlook, inoltrare un messaggio senza l'aggiunta del prefisso I: all'oggetto
FIG 5 - Outlook, inoltrare un messaggio senza l'aggiunta del prefisso I: all'oggetto
In maniera analoga è possibile creare una nuova Azione rapida per rimuovere il prefisso R: quando si risponde ad un messaggio.





sabato 2 marzo 2019

VPN: Verifica dell'IP mostrato dal client Torrent

Una VPN (Virtual Private Network) è un tunnel sicuro tra due o più dispositivi che utilizzano un canale di trasmissione pubblico e condiviso, come ad esempio Internet. La VPN, oltre ad essere utilizzata per proteggere la propria connessione e il traffico da interferenze e monitoraggio dall'esterno, consente anche di camuffare il proprio indirizzo IP.

Quando connessi alla VPN è possibile effettuare una verifica veloce sull'indirizzo IP mostrato ai siti aprendo la pagina whatismyipaddress.com dal browser.
WhatIsMyIPAddress.com
FIG 1 - WhatIsMyIPAddress.com

Anche se nella normale navigazione il nostro indirizzo IP reale risulta nascosto dalla VPN, questo non ci garantisce che non venga esposto utilizzando altre applicazioni/protocolli come ad esempio i protocolli P2P, in particolare BitTorrent.

Appositi servizi online consentono di verificare se il nostro client Torrent rivela l' indirizzo IP reale all'esterno. Tra i servizi più noti troviamo:


Tutti funzionano all'incirca allo stesso modo: all'interno della pagina web mostrano un link/pulsante che l'utente dovrà cliccare per scaricare un torrent/magnet link fittizio attivando il client Torrent installato sul PC. Dopo qualche secondo, sulla stessa pagina web, verrà mostrato l'indirizzo IP rilevato. Nel caso in cui l'IP visualizzato sia quello assegnato alla VPN, allora il nostro indirizzo IP reale è nascosto, in caso contrario faremmo meglio a verificare la configurazione della nostra VPN e quella del client Torrent.


TorGuard verifica IP mostrato dal client BitTorrent
FIG 2 - TorGuard verifica IP mostrato dal client BitTorrent





martedì 26 febbraio 2019

Ransomware GandCrab: Recupero dei dati

GandCrab, le cui prime segnalazioni risalgono a gennaio 2018, è attualmente una delle famiglie di ransomware più diffuse sul mercato. Il ransomware, di probabile origine russa, viene distribuito nel Dark Web secondo la formula RaaS (Ransomware as a Service) e gli sviluppatori sono molto attivi continuando a rilasciare nuove versioni. La famiglia di GandCrab è composta da numerose varianti del ransomware come GDCB, KRAB, CRAB virus, GandCrab 2, GandCrab 3, GandCrab 4 e GandCrab 5. Le prime le versioni hanno in comune gli algoritmi RSA 2048 e AES 256 per cifrare i dati e dalla versione 5 viene utilizzato anche l'algoritmo SALSA20. Tutte le varianti aggiungono al file cifrato, un'estensione unica. 


GandCrab Ransomware
FIG 1 - GandCrab Ransomware


Come si diffonde il malware
Il ransomware utilizza diversi vettori per l'infezione tra cui gli exploit kit RIG, GradSoft, Magnitude, Fallout, ALPC Task Scheduler Zero-day inoltre viene distribuito anche tramite email, siti web contenenti malware, crack, keygen e update fasulli e sfruttando le vulnerabilità del sistema. 
Una volta infettato il sistema, il ransomware raccoglie informazioni sulla vittima come il nome utente, il nome del pc, il sistema operativo installato, ecc, quindi provvede alla creazione di un ID univoco e procede a cifrare i file presenti nel sistema. Ai file cifrati viene aggiunta una nuova estensione e la chiave per decriptarli viene salvata, almeno nelle prime versioni, sui server C&C (Command and Control). Al termine del processo l'utente non riuscirà più ad accedere e a visualizzare i propri file e, in ogni cartella, sarà presente un file del tipo GDCB-DECRYPT.txt, KRAB-DECRYPT.txt o [codice ID]-DECRYPT.txt contenente le istruzioni per il pagamento del riscatto (FIG 2). 
GandCrab, file Decrypt con le istruzioni per il pagamento del riscatto
FIG 2 - GandCrab, file Decrypt con le istruzioni per il pagamento del riscatto



Versione Data Estensione Note
GandCrab 01/2018 .GDCB Diffuso prevalentemente tramite email con allegato alla cui apertura viene eseguito il payload che provvede a cifrare i dati dell'utente e a creare il file GDCB-DECRYPT.txt, contenente informazioni per il pagamento del riscatto, sul desktop della vittima. L'entità del riscatto aumenta con il passare del tempo.
GandCrab v2 03/2018 .CRAB La seconda versione del ransomware è stata rilasciata dopo che un team di esperti di cybersecurity ha rilasciato un tool in grado di decriptare i file cifrati con la prima versione. La nuova versione provvede a cifrare i file utilizzando gli algoritmi AES-256 (CBC mode) e RSA-2048. Il ransomware è stato distribuito attraverso la campagna di malvertising Seamless che porta le vittime ad essere infettate attraverso il kit RIG exploit. Sul desktop viene creato il file CRAB-DECRYPT.txt contenente informazioni per il riscatto.
GandCrab v2.1 04/2018 .CRAB Il funzionamento è analogo a quello visto per la versione precedente
GandCrab v3 04/2018 .CRAB Nella sua terza versione il ransomware mantiene le stesse caratteristiche della versione precedente. L'estensione aggiunta ai file cifrati rimane .CRAB e anche il nome del file creato sul desktop rimane invariato (CRAB-DECRYPT.txt). L'unica differenza rilevante è che da questa versione il ransomware non consente più il pagamento del riscatto mediante la criptovaluta DASH ma solo in Bitcoin.
GandCrab v4 07/2018 .KRAB La quarta versione del ransomware continua ad utilizzare gli algoritmi AES-256 (CBC mode) e RSA-2048 per cifrare i dati della vittima. L'estensione aggiunta ai file cifrati diventa .KRAB. Il file creato sul desktop prende il nome di KRAB-DECRYPT.txt e contiene maggiori informazioni sull'attacco e sulle istruzioni per procedere alla creazione di un wallet per le criptovalute.
GandCrab v4.1 07/2018 .krab Rilasciata subito dopo la versione 4 apporta alcune modifiche al proprio funzionamento. Da tale versione il ransomware non utilizza più i server di C&C (Command and Control) e l'infezione può avvenire anche senza la connessione ad Internet. Per la sua diffusione il ransomware utilizza l'exploit SMB. La patch MS17-010 previene l'infezione rimediando alla vulnerabilità individuata su SMB e sfruttata da diversi ransomware.
GandCrab v5.0 e v5.0.1 09/2018 5 caratteri casuali L'estensione aggiunta ai file cifrati è composta da 5 caratteri casuali. Lo stesso dicasi per il file creato sul desktop il cui nome ora è del tipo estensione-DECRYPT.html. A partire dalla versione 5 gli algoritmi utilizzati per cifrare i dati dell'utente sono SALSA20 e RSA-2048.
GandCrab v5.0.2 10/2018 10 caratteri casuali Questa versione del ransomware è stata distribuita il 1° ottobre 2018. Ai file cifrati viene aggiunta un'estensione di 10 caratteri casuali e il file contenente le istruzioni per il riscatto è del tipo estensione-DECRYPT.htm. L'infezione viene portata a termine tramite il kit Fallout exploit.
GandCrab v5.0.3 10/2018 5 caratteri casuali L'estensione aggiunta ai file cifrati è composta da 5 caratteri casuali. Lo stesso dicasi per il file creato sul desktop il cui nome ora è del tipo estensione-DECRYPT.html. il ransomware viene distribuito prevalentemente tramite un allegato ad un'email di spam. Nascosto all'interno dell'allegato è presente un file JavaScript (il dropper) chiamato GandCrab 5.0.3 downloader.js che una volta eseguito lancia altri 2 eseguibili dsoyaltj.exe e Wermgr.exe che forniscono al malware privilegi amministrativi e avviano la cifratura dei dati.
GandCrab v5.0.4, v5.0.5 e v5.0.9 10/2018 numero variabile caratteri casuali Queste versioni del ransomware sono state rilasciate tutte ad ottobre 2018. L'estensione aggiunta ai file cifrati è composta da un numero variabile di caratteri casuali. Il comportamento e i metodi di diffusione sono analoghi a quelli già visti per le versioni precedenti.
GandCrab v5.1 01/2019 caratteri casuali In questa versione del ransomware viene utilizzato l'algoritmo Salsa20 per cifare i dati.




Come rimuovere il ransomware
Prima di tentare il recupero dei dati è necessario rimuovere il ransomware. Per rimuoverlo è possibile eseguire la scansione del sistema con un antivirus o antimalware aggiornato. Un buon prodotto gratuito e utile in questi casi è  Kaspersky Rescue Disk scaricabile 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
Pochi giorni fa Bitdefender ha rilasciato una nuova versione del suo tool per decriptare i file cifrati dal ransomware GandCrab fino alla versione 5.1. Il tool può essere scaricato dal seguente link
DOWNLOAD
Il suo utilizzo è molto semplice e non richiede l'installazione: 
  • Avviare l'eseguibile come amministratore quindi accettare i termini di utilizzo e proseguire cliccando su Continue;
    Bitdefender Decryption Utility for GandCrab, licenza
    FIG 3 - Bitdefender Decryption Utility for GandCrab, licenza
  • Una finestra di dialogo ci avvisa che il tool funziona con le versioni 1, 4 e 5 di GandCrab e che per il suo funzionamento è necessario una connessione ad Internet. Cliccare su OK;
    Bitdefender Decryption Utility for GandCrab, richiesta connessione ad Internet
    FIG 4 - Bitdefender Decryption Utility for GandCrab, richiesta connessione ad Internet
  • A questo punto possiamo decidere se eseguire una scansione dell'intero sistema alla ricerca di file cifrati dal ransomware (selezionando la casella Scan entire system) oppure indicare noi una specifica cartella contenente i dati da recuperare (cliccando sul pulsante Browse e selezionando la cartella di nostro interesse). Una volta impostato cosa fare cliccare su Start tool;
    Bitdefender Decryption Utility for GandCrab, Impostazioni scansione
    FIG 5 - Bitdefender Decryption Utility for GandCrab, Impostazioni scansione
  • Verrà eseguita la scansione alla ricerca dei file cifrati da GandCrab. I file trovati verranno automaticamente decriptati dal tool.

    Bitdefender Decryption Utility for GandCrab - scansione
    FIG 6 - Bitdefender Decryption Utility for GandCrab - scansione

Purtroppo subito dopo il rilascio del nuovo tool da parte di Bitdefender è stata annunciata sul Dark Web la distribuzione della nuova versione di GandCrab v5.2. Per quest'ultima versione al momento non c'è possibilità di recuperare i dati cifrati.