
Esploratore di traffico HTTP malevolo

CapTipper v0.3: http://www.omriher.com/2015/08/captipper-v03-is-out.html
CapTipper v0.2: http://www.omriher.com/2015/03/captipper-02-released.html
CapTipper v0.1: http://www.omriher.com/2015/01/captipper-malicious-http-traffic.html
CapTipper è uno strumento python per analizzare, esplorare e resuscitare il traffico HTTP dannoso.
CapTipper configura un server web che agisce esattamente come il server nel file PCAP,
e contiene strumenti interni, con una potente console interattiva, per l'analisi e l'ispezione degli host, degli oggetti e delle conversazioni trovate.
Lo strumento offre al ricercatore di sicurezza un facile accesso ai file e la comprensione del flusso di rete,
ed è utile quando si cercano exploit, pre-condizioni, versioni, offuscamenti, plugin e shellcode.
Alimentando CapTipper con una cattura di traffico drive-by (ad esempio di un exploit kit) mostra all'utente gli URI delle richieste inviate e i metadati delle risposte.
A questo punto l'utente può navigare su http://127.0.0.1/[host]/[URI] e ricevere la risposta nel browser.
Inoltre, viene avviata una shell interattiva per un'indagine più approfondita utilizzando vari comandi come: hosts, hexdump, info, ungzip, body, client, dump e altro...
Documentazione: http://captipper.readthedocs.org
Aggiornamento del 02-ott-2020:
CapTipper ora supporta Python3 e può essere trovato nel seguente branch: https://github.com/omriher/CapTipper/tree/python3_support

Usage: ./CapTipper.py <PCAP_file> [-p] [web_server_port=80]
Analizziamo il seguente PCAP di infezione drive-by Nuclear EK [2014-11-06-Nuclear-EK-traffic.pcap](http://malware-traffic-analysis.net/2014/11/06/2014-11-06-Nuclear-EK-traffic.pcap.zip)```sh
C:\CapTipper> CapTipper.py "C:\NuclearFiles\2014-11-06-Nuclear-EK-traffic.pcap"
CapTipper v0.1 - Malicious HTTP traffic explorer tool
Copyright 2015 Omri Herscovici <[email protected]>
[A] Analyzing PCAP: C:\NuclearFiles\2014-11-06-Nuclear-EK-traffic.pcap
[+] Traffic Activity Time: Thu, 11/06/14 17:02:35
[+] Conversations Found:
0: / -> text/html (0.html) [5509 B]
1: /wp-includes/js/jquery/jquery.js?ver=1.7.2 -> application/javascript (jquery.js) [39562 B]
2: /seedadmin17.html -> text/html (seedadmin17.html) [354 B]
3: /15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html -> text/html (15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html) [113149 B]
4: /wp-content/uploads/2014/01/MetroWest_COVER_Issue2_Feb2014.jpg -> image/jpeg (MetroWest_COVER_Issue2_Feb2014.jpg) [350008 B]
5: /images/footer/3000melbourne.png -> image/png (3000melbourne.png) [2965 B]
6: /images/footer/3207portmelbourne.png -> image/png (3207portmelbourne.png) [3092 B]
7: /wp-content/uploads/2012/09/background1.jpg -> image/jpeg (background1.jpg) [33112 B]
8: /00015d76d9b2rr9f/1415286120 -> application/octet-stream (00015d76.swf) [31579 B]
9: /00015d766423rr9f/1415286120 -> application/pdf (XykpdWhZZ2.pdf) [9940 B]
10: /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6 -> application/octet-stream (5.exe) [139264 B]
11: /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6;1 -> application/octet-stream (5.exe) [139264 B]
12: /00015d76rr9f/1415286120/7 -> application/octet-stream (7.exe) [139264 B]
13: /00015d761709rr9f/1415286120 -> application/octet-stream (00015d76.swf) [8064 B]
14: /00015d76rr9f/1415286120/8 -> application/octet-stream (8.exe) [139264 B]
[+] Started Web Server on http://localhost:80
[+] Listening to requests...
CapTipper Interpreter
Type 'open <conversation id>' to open address in browser
type 'hosts' to view traffic flow
Type 'help' for more options
CT>
L'inizializzazione mostra le conversazioni trovate tra client e server nel seguente formato:
[ID] : URI RICHIESTA -> TIPO RISPOSTA SERVER (NOME FILE) [DIMENSIONE IN BYTE]
ID: Un ID assegnato alla specifica conversazione
URI RICHIESTA: L'URI che è stato inviato al server nella richiesta GET
TIPO RISPOSTA SERVER: Il content-type restituito nell'header della risposta del server
NOME FILE: Il nome file può essere una di queste cose:
DIMENSIONE IN BYTE: Dimensione del corpo della risposta
Dopo l'inizializzazione, si verificano 2 cose:
L'interprete contiene strumenti interni per un'ulteriore indagine degli oggetti nel pcap.
Aprire un URI nel browser è semplice, basta digitare 'open' insieme all'ID dell'oggetto```sh CT> open 0 CT> log [2015-01-09T18:01:28.878000] 127.0.0.1 : GET / HTTP/1.1
* Nessuno dei comandi (tranne 'open') richiede effettivamente che il server sia in esecuzione. Puoi spegnere il server digitando 'server off' o aggiungendo -s quando richiami CapTipper.
Vediamo cosa possiamo scoprire senza usare il browser.
Per prima cosa, diamo una visione d'insieme del traffico utilizzando il comando 'hosts'.```sh
CT> hosts
Found Hosts:
www.magmedia.com.au
├-- / [0]
├-- /wp-includes/js/jquery/jquery.js?ver=1.7.2 [1]
├-- /wp-content/uploads/2014/01/MetroWest_COVER_Issue2_Feb2014.jpg [4]
├-- /images/footer/3000melbourne.png [5]
├-- /images/footer/3207portmelbourne.png [6]
└-- /wp-content/uploads/2012/09/background1.jpg [7]
pixeltouchstudios.tk
└-- /seedadmin17.html [2]
grannityrektonaver.co.vu
├-- /15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html [3]
├-- /00015d76d9b2rr9f/1415286120 [8]
├-- /00015d766423rr9f/1415286120 [9]
├-- /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6 [10]
├-- /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6;1 [11]
├-- /00015d76rr9f/1415286120/7 [12]
├-- /00015d761709rr9f/1415286120 [13]
└-- /00015d76rr9f/1415286120/8 [14]
Sembra che www.magmedia.com.au sia il sito compromesso.
Incrociando queste informazioni con i tipi di file ottenuti nell'elenco delle conversazioni, sembra che grannityrektonaver.co.vu sia l'host infettante.
Allora, cos'è pixeltouchstudios.tk ?
Beh, sapendo come funzionano solitamente i kit di exploit, questo è probabilmente il server TDS (Sistema di Distribuzione del Traffico).
Diamo un'occhiata più da vicino.
Possiamo stampare l'intestazione e il corpo della pagina digitando 'head' e 'body':```sh CT> head 2 Displaying header of object 2 (seedadmin17.html):
HTTP/1.1 302 Found Server: nginx Date: Thu, 06 Nov 2014 15:02:38 GMT Content-Type: text/html; charset=iso-8859-1 Content-Length: 354 Connection: keep-alive Set-Cookie: ehihm=YocADE3AAIAAgCvjVtU_.vjVtUQAABAAAAr41bVAA-; expires=Fri, 06-Nov-2015 15:03:11 GMT; path=/; domain=pixeltouchstudios.tk Location: http://grannityrektonaver.co.vu/15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html
CT> body 2 Displaying body of object 2 (seedadmin17.html) [256 bytes]:
302 FoundThe document has moved here.
Vediamo che l'oggetto 2, restituisce un reindirizzamento 302 verso l'host infetto.
Quindi la nostra ipotesi era probabilmente vera.