Imparare ad analizzare il traffico di rete con Malware-Traffic

Tempo di lettura: 8 minuti

Sapere leggere il traffico internet è una capacità fondamentale per riuscire ad analizzare al meglio i malware, per debuggare software o anche solo per capire come funziona fisicamente e concettualmente l’architettura ISO/OSI.

Nell’articolo articolo andremo a scoprire alcuni dei passi fondamentali per analizzare il traffico grazie a questo esercizio.

Il primo set di domande è:

  1. What is the IP address of the Windows VM that gets infected?
  2. What is the host name of the Windows VM that gets infected?
  3. What is the MAC address of the infected VM?
  4. What is the IP address of the compromised web site?
  5. What is the domain name of the compromised web site?
  6. What is the IP address and domain name that delivered the exploit kit and malware?
  7. What is the domain name that delivered the exploit kit and malware?

Tutte le informazioni si trovano chiaramente nel file .pcap (la password è: infected), che andremo ad visionare con Wireshark, estrapolando di volta in volta le informazioni utili.

1) Quale è l’indirizzo IP della macchina infettata?

L’indirizzo IP vittima è solitamente chi esegue le richieste HTTP/S e chi ha il maggior numero di pacchetti ricevuti o inviati. Per trovarlo basta selezionare Statistic->Conversation ed osservare le comunicazioni http tra gli host

Pacchetti scambiati e ricevuti
Pacchetti scambiati e ricevuti

Una volta trovato, impostiamo il filtro ip.addr == 172.16.165.165, in modo da avere solo le conversazioni tra lui e le altre macchine.

Wireshark dispone anche di un filtro, denominato http.request, che permette di vedere le richieste HTTP eseguite dagli host.

2) Quale è il nome dell’host della macchina infettata?

Per ricavare l’host name della vittima, il protocollo che permette di saperlo con certezza è DHCP, in quanto vengono scambiate diverse informazioni nella rete locale, tra cui il nome dell’host

Pacchetto DHCP
Pacchetto DHCP

L’indirizzo MAC è ora immediato, trovandosi poco sopra (f0:19:af:02:9b:f1)

4) Quale è l’indirizzo IP del sito compromesso?

Per trovarlo dobbiamo capire come è strutturato il traffico, iniziare a trovare una logica in tutti questi pacchetti ed entrare nel vivo dell’analisi.

Come prima azione, osserviamo le conversazioni, dove possiamo osservare tutte le connessioni eseguite. Visto che dagli indirizzi IP si capisce poco o nulla,Statistic->Show address resolution ci permette di convertire gli IP in nomi di dominio e possiamo iniziare a comprendere le azioni eseguite dell’utente vittima.

Risoluzione indirizzi IP
Risoluzione indirizzi IP

Mentre il primo indirizzo è riferito a bing.com (che escludo, ipotizzando non sia lui il server infettato), il secondo è un certo ciniholland.nl. Non conoscendolo, vado ad applicare il filtro ed osservare la conversazione specifica con la vittima

ip.addr==82.150.140.30

Visto che la conversazione si svolge con un server web senza ssl, tener traccia delle richieste è semplicissimo. Basta andare sul primo pacchetto, tasto destro->Follow TCP Stream.

Traffico HTTP generato da cinholland.nl
Traffico HTTP generato da cinholland.nl

Dopo aver capito i comandi eseguiti sul sito, torniamo al filtro ip.addr == 172.16.165.165 ed analizziamo i passi subito successivi all’ultima richiesta della vittima.

Al pacchetto 981 scopriamo che la vittima ha cliccato su un link esterno, il quale lo ha poi redirezionato su un altro sito. La sequenza è stata:

  1. al pacchetto 981 clicca su un link esterno (verso l’indirizzo IP 188.225.73.100) che lo ha portato al sito 24corp-shop.com;
  2. 24corp-shop.com conteneva uno script malevolo redirezionando l’utente sull’host http://stand.trustandprobaterealty.com/ (pacchetto 1079);
  3. Quest’ultimo ha iniziato a scaricare un malware sul dispositivo della vittima (dal pacchetto 1212 al 1566).
Cuore della comunicazione
Cuore della comunicazione

Con questi passaggi abbiamo quindi risolto le restanti domande, ossia:

  • Quale è l’indirizzo IP e l’host name del sito compromesso? 82.150.140.30 e www.ciniholland.nl
  • Quale è l’indirizzo IP e l’host name del sito che ha inviato il malware? 37.200.69.143 e stand.trustandprobaterealty.com.

Per rispodere a quest’ultima, sarebbe bastato andare in Statistic->Conversation, selezionare Ipv4 ed ordinare per numero di bytes inviati alla vittima. Molto probabilmente il malware peserà più di ogni altra conversazione.

Il secondo set di domande è:

  1. What is the redirect URL that points to the exploit kit (EK) landing page?
  2. Besided the landing page (which contains the CVE-2013-2551 IE exploit), what other exploit(s) sent by the EK?
  3. How many times was the payload delivered?
  4. Submit the pcap to VirusTotal and find out what snort alerts triggered. What are the EK names are shown in the Suricata alerts?

Per la prima abbiamo già risposto, da 24corp-shop.com è stato redirezionato a_ http://stand.trustandprobaterealty.com/?PHPSSESID=njrMNruDMhvJFIPGKuXDSKVbM07PThnJko2ahe6JVg|ZDJiZjZiZjI5Yzc5OTg3MzE1MzJkMmExN2M4NmJiOTM'_

Per scoprire se sono stati inviati altri exploits, si deve solo continuare ad osservare il traffico dopo che è stato completato il trasferimento del primo malware (pacchetto 1569).

Numero di exploits inviati
Numero di exploits inviati

Dall’immagine possiamo notare che sono stati inviati anche un file java (pacchetto 2489) e un file flash (2394).

Il numero di GET per il payload precedente è di 3, basta contare le richieste dell’applicazione x-msdownload.

5) Invia il file a VirusTotal e cerca gli allarmi. Quali sono i nomi EK che vengono stampati?

 Analisi di VirusTotal
Analisi di VirusTotal

Gli altri nomi possono essere trovati nei dettagli del file, e sono

ET CURRENT_EVENTS Goon/Infinity URI Struct EK Landing May 05 2014 (A Network Trojan was Detected) [2018441]
ET CURRENT_EVENTS Exploit Kit Delivering JAR Archive to Client (Potentially Bad Traffic) [2014526]
ET CURRENT_EVENTS RIG EK Landing URI Struct (A Network Trojan was Detected) [2019072]
ET CURRENT_EVENTS GoonEK encrypted binary (3) (A Network Trojan was Detected) [2018297]

Conclusioni

Visto che le restanti domande sono decisamente semplici e ovvie, ho preferito evitarle, in quanto non utili ai fini dell’esempio qui descritto. Spero di aver catturato la vostra curiosità, altri esercizi si possono trovare a questa pagina (che sicuramente vedremo in altri articoli).