
Explorador de tráfico HTTP malicioso

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 es una herramienta en Python para analizar, explorar y revivir tráfico HTTP malicioso.
CapTipper configura un servidor web que actúa exactamente como el servidor en el archivo PCAP,
y contiene herramientas internas, con una poderosa consola interactiva, para el análisis e inspección de los hosts, objetos y conversaciones encontrados.
La herramienta proporciona al investigador de seguridad un fácil acceso a los archivos y la comprensión del flujo de red,
y es útil al intentar investigar exploits, precondiciones, versiones, ofuscaciones, plugins y shellcodes.
Alimentar a CapTipper con una captura de tráfico drive-by (por ejemplo, de un kit de exploit) muestra al usuario las URI de las solicitudes enviadas y los metadatos de las respuestas.
El usuario en este punto puede navegar a http://127.0.0.1/[host]/[URI] y recibir la respuesta en el navegador.
Además, se inicia un shell interactivo para una investigación más profunda utilizando varios comandos como: hosts, hexdump, info, ungzip, body, client, dump y más...
Documentación: http://captipper.readthedocs.org
Actualización del 02-Oct-2020:
CapTipper ahora es compatible con Python3 y se puede encontrar en la siguiente rama: https://github.com/omriher/CapTipper/tree/python3_support

Usage: ./CapTipper.py <PCAP_file> [-p] [web_server_port=80]
Analicemos el siguiente PCAP de infección drive-by de 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>
La inicialización muestra las conversaciones encontradas entre el cliente y el servidor en el siguiente formato:
[ID] : URI DE SOLICITUD -> TIPO DE RESPUESTA DEL SERVIDOR (NOMBRE DE ARCHIVO) [TAMAÑO EN BYTES]
ID: Un ID asignado a la conversación específica
URI DE SOLICITUD: La URI que se envió al servidor en la solicitud GET
TIPO DE RESPUESTA DEL SERVIDOR: El tipo de contenido devuelto en el encabezado de respuesta del servidor
NOMBRE DE ARCHIVO: El nombre de archivo puede ser algunas cosas:
TAMAÑO EN BYTES: Tamaño del cuerpo de la respuesta
Después de la inicialización, ocurren 2 cosas:
El intérprete contiene herramientas internas para una investigación más profunda de los objetos en el pcap.
Abrir una URI en el navegador se hace simplemente escribiendo 'open' junto con el ID del objeto```sh CT> open 0 CT> log [2015-01-09T18:01:28.878000] 127.0.0.1 : GET / HTTP/1.1
Ninguno de los comandos (Excepto 'open') realmente requiere que el servidor esté en ejecución. Puedes apagar el servidor escribiendo 'server off' o añadiendo -s al llamar a CapTipper.
Veamos qué podemos descubrir sin usar el navegador.
Primero, tomaremos una vista general del tráfico usando el 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]
Parece que www.magmedia.com.au es el sitio comprometido.
Al cruzar esta información con los tipos de archivo que obtuvimos en la lista de conversaciones, parece que grannityrektonaver.co.vu es el host infectador.
Entonces, ¿qué es pixeltouchstudios.tk?
Bueno, sabiendo cómo suelen funcionar los exploit-kits, probablemente sea el servidor TDS (Sistema de Distribución de Tráfico).
Echemos un vistazo más de cerca.
Podemos imprimir el encabezado y el cuerpo de la página escribiendo 'head' y '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.