Trazado de Rutas en Paralelo utilizando Scapy

  • Posted on: 9 December 2014
  • By: ReYDeS

Scapy es un poderoso programa interactivo para la manipulación de paquetes. Es capaz de falsificar o decodificar paquetes de un amplio número de protocolos, enviarlos por el cable, capturarlos, emparejar peticiones y respuestas, y mucho más. Puede fácilmente manejar las más clásicas tareas como escaneo, traza de ruta, pruebas, evaluación de unidades, ataques o descubrimiento de red (puede reemplazar a hping, 85% a nmap, arspoof, arp-sk arping, tcpump, ethereal, p0f, etc.) También realizar muy buen muchas otras tareas específicas inmanejables para otras herramientas, como enviar tramas inválidas, inyectar tramas propias 802.11, combinar técnicas (VLAN Hopping+ Envenamiento del cache ARP, Decodificación VOIP sobre un canal WEP cifrado,...), etc.

Para el siguiente ejemplo se utilizarán cuatro subdominios de un objetivo de evaluación. Hacia todas ellas se tratará de realizar un trazado de rutas en paralelo utilizando paquetes TCP.

Iniciar Scapy.

# scapy

El mensaje expuesto se debe a la imposibilidad de importar gnuplot. Se procede a instalar en paquete respectivo en Kali Linux.

# apt-get install python-gnuplot

Se inicia nuevamente Scapy

traceroute permite realizar un trazado de ruta instantáneo. Scapy define un conjunto de paquetes, los envía, recibe las respuestas, corresponde las peticiones con las respuestas, y devuelve una lista de parejas de paquetes (petición y respuesta), y una lista de paquetes sin correspondencia. Los puertos destino hacia los cuales se enviarán los paquetes son el TCP 80 y TCP 443, el TTL (Time To Live) Máximo se define a 30, y el número reintentos a -2, este valor implica el reenvío de los paquetes sin respuesta hasta no obtener ninguna respuesta para el mismo conjunto de paquetes sin respuesta 2 veces en una fila.

>>> res,unans=traceroute(["developer.sony.com","mediago.sony.com", "sonywondertechlab.sony.com","wondertechlab.sony.com"],dport=[80,443],maxttl=30,retry=-2)

Finalizado el proceso, Scapy expondrá los resultados en la consola.

Scapy también permite crear una representación gráfica de los resultados obtenidos.

>>> res.graph()

También es factible guardar este gráfico en un archivo.

>>> res.graph(target="> /tmp/grafico.svg")

Para visualizar el archivo creado, se utilizar un visor de imágenes como "eog".

# eog /tmp/grafico.svg

Fuentes:

http://www.secdev.org/projects/scapy/
http://www.secdev.org/projects/scapy/doc/usage.html
http://www.secdev.org/projects/scapy/doc/installation.html#optional-soft...

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Curso de Informática Forense