Rastreo de paquetes usando Scapy

Scapy es una poderosa y versátil herramienta de manipulación de paquetes escrita en python. Usando scapy, un usuario podrá enviar, olfatear, diseccionar y falsificar paquetes de red. Scapy también tiene la capacidad de almacenar los paquetes rastreados en un archivo pcap. Usando scapy, podremos manejar tareas como enrutamiento de rastreo, sondeo, escaneo, pruebas unitarias y descubrimiento de redes con facilidad. Todas estas propiedades hacen que Scapy sea útil para los ataques basados ​​en la red.

Como se mencionó antes, scapy realiza una amplia gama de tareas de red y una de ellas es la detección de paquetes. La detección de paquetes es el proceso de capturar todos los paquetes que fluyen a través de una red informática. Los paquetes rastreados brindan mucha información, como qué sitio web visita un usuario, qué contenido ve el usuario, qué descarga el usuario y casi todo. Los paquetes capturados generalmente se almacenan para futuros análisis.

En este artículo, aprenderemos a rastrear paquetes usando scapy y almacenar los paquetes rastreados en un archivo pcap.

Para trabajar en scapy, necesitamos tener scapy instalado en nuestra computadora.

sudo apt-get install python3-scapy

Ahora que tenemos instalado scapy, abra el shell de scapy escribiendo » scapy » en su terminal.

Olfateando paquetes usando scapy:

Para olfatear los paquetes, use la función sniff() . La función sniff() devuelve información sobre todos los paquetes que se han rastreado.

capture = sniff()

Para ver el resumen de las respuestas de los paquetes, utilice summary().

capture.summary()

La función sniff() escucha durante un período de tiempo infinito hasta que el usuario interrumpe.

Para restringir el número de paquetes a capturar, sniff() permite un parámetro de conteo . Al especificar un valor para el conteo, la captura de paquetes se restringirá al número especificado.  

capture = sniff(count=5)

También puede filtrar paquetes mientras rastrea utilizando el parámetro de filtro . Utiliza una sintaxis de filtro de paquetes de Berkeley (BPF).

El siguiente comando capturará solo paquetes TCP:

sniff(filter="tcp", count=5)

Del mismo modo, puede filtrar cualquier paquete en función de la dirección IP de origen/destino, el número de puerto, el protocolo y mucho más utilizando la sintaxis BPF .

Cuando scapy detecta paquetes, generalmente detecta todas las interfaces de red. Sin embargo, podemos mencionar explícitamente las interfaces que nos gustaría olfatear usando el parámetro iface . El iface puede ser un elemento o una lista de elementos.

sniff(iface="eth0", count=5)

La función sniff() tiene otro parámetro interesante llamado prn que le permite pasar una función que se ejecuta con cada paquete olfateado. Esto nos permite realizar algunas acciones personalizadas con cada paquete rastreado.

sniff(prn=lambda x:x.summary(), count=5)

Scapy también nos permite almacenar los paquetes rastreados en un archivo pcap . Ejecutar el siguiente comando escribirá los paquetes detectados en un pcap:

wrpcap("<file name>", capture)

donde capture es la lista de paquetes rastreados.

Los archivos pcap almacenados se pueden analizar con Wireshark, tcpdump, WinDump, Packet Square, etc.

Abriendo GfG.pcap usando Wireshark:

Análisis de paquetes scapy olfateados en Wireshark

También podemos rastrear paquetes sin conexión desde archivos pcap ejecutando el siguiente comando:

sniff(offline="<file name>")

Publicación traducida automáticamente

Artículo escrito por laxmanbalaraman y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *