
Explorateur de trafic HTTP malveillant

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 est un outil Python permettant d’analyser, explorer et faire revivre du trafic HTTP malveillant.
CapTipper met en place un serveur web qui agit exactement comme le serveur dans le fichier PCAP,
et contient des outils internes, avec une console interactive puissante, pour l’analyse et l’inspection des hôtes, objets et conversations trouvés.
L’outil offre au chercheur en sécurité un accès facile aux fichiers et une compréhension du flux réseau,
et est utile lors de la recherche d’exploits, préconditions, versions, obfuscations, plugins et shellcodes.
Alimenter CapTipper avec une capture de trafic « drive-by » (par exemple d’un kit d’exploitation) affiche à l’utilisateur les URI des requêtes envoyées et les métadonnées des réponses.
L’utilisateur peut alors naviguer vers http://127.0.0.1/[host]/[URI] et recevoir la réponse dans le navigateur.
De plus, un shell interactif est lancé pour une investigation plus approfondie grâce à diverses commandes telles que : hosts, hexdump, info, ungzip, body, client, dump et bien d’autres…
Documentation : http://captipper.readthedocs.org
Mise à jour du 02-Oct-2020 :
CapTipper prend désormais en charge Python3 et se trouve dans la branche suivante : https://github.com/omriher/CapTipper/tree/python3_support

Usage: ./CapTipper.py <PCAP_file> [-p] [web_server_port=80]
Analysons le PCAP d'infection drive-by Nuclear EK suivant [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'initialisation affiche les conversations trouvées entre le client et le serveur au format suivant :
[ID] : REQUEST URI -> SERVER RESPONSE TYPE (FILENAME) [SIZE IN BYTES]
ID : Un ID attribué à la conversation spécifique
REQUEST URI : L'URI envoyée au serveur dans la requête GET
SERVER RESPONSE TYPE : Le type de contenu retourné dans l'en-tête de réponse du serveur
FILENAME : Le nom de fichier peut correspondre à plusieurs choses :
SIZE IN BYTES : Taille du corps de la réponse
Après l'initialisation, 2 choses se produisent :
L'interpréteur contient des outils internes pour approfondir l'investigation des objets dans le pcap.
Ouvrir une URI dans le navigateur se fait simplement en tapant 'open' suivi de l'ID de l'objet```sh CT> open 0 CT> log [2015-01-09T18:01:28.878000] 127.0.0.1 : GET / HTTP/1.1
Aucune des commandes (sauf 'open') ne nécessite que le serveur soit en cours d'exécution.
Vous pouvez arrêter le serveur en tapant 'server off' ou en ajoutant -s lors de l'appel de CapTipper.
Voyons ce que nous pouvons découvrir sans utiliser le navigateur.
D'abord, nous allons prendre une vue d'ensemble du trafic en utilisant la commande '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]
Il semble que www.magmedia.com.au soit le site compromis.
En croisant ces informations et les types de fichiers obtenus dans la liste des conversations, il semble que grannityrektonaver.co.vu soit l'hôte infecteur.
Alors, qu'est-ce que pixeltouchstudios.tk ?
Eh bien, en sachant comment fonctionnent habituellement les kits d'exploitation, il s'agit probablement du serveur TDS (Traffic Distribution System).
Examinons cela de plus près.
Nous pouvons afficher l'en-tête et le corps de la page en tapant 'head' et '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.