Librería interactiva de manipulación de paquetes basada en Python para forjar, decodificar, enviar, capturar y analizar paquetes de red en una amplia gama de protocolos, compatible con escaneo, traceroute, ataques y descubrimiento de red.
ScapyScapy es un potente programa interactivo de manipulación de paquetes y biblioteca basado en Python.
Es capaz de forjar o decodificar paquetes de un amplio número de protocolos, enviarlos por la red, capturarlos, almacenarlos o leerlos usando archivos pcap, emparejar peticiones y respuestas, y mucho más. Está diseñado para permitir un prototipado rápido de paquetes usando valores predeterminados que funcionan.
Puede manejar fácilmente la mayoría de las tareas clásicas como escaneo, traceroute, sondeo,
pruebas unitarias, ataques o descubrimiento de red (puede reemplazar a hping, al 85% de nmap,
arpspoof, arp-sk, arping, tcpdump, wireshark, p0f, etc.). También
funciona muy bien en muchas otras tareas específicas que la mayoría de las demás herramientas no pueden
manejar, como enviar tramas inválidas, inyectar tus propias tramas 802.11, combinar
técnicas (VLAN hopping + envenenamiento de caché ARP, decodificación de VoIP en un canal
protegido con WEP, ...), etc.
Scapy es compatible con Python 3.9+. Está pensado para ser multiplataforma, y se ejecuta en muchas plataformas diferentes (Linux, OSX, *BSD y Windows).
Scapy se puede usar tanto como shell como biblioteca. Para más detalles, dirígete a Getting started with Scapy, que forma parte de la documentación.
Scapy se puede usar fácilmente como una shell interactiva para interactuar con la red.
El siguiente ejemplo muestra cómo enviar un mensaje ICMP Echo Request a
github.com, y luego mostrar la dirección IP de origen de la respuesta:
sudo ./run_scapy
Welcome to Scapy
>>> p = IP(dst="github.com")/ICMP()
>>> r = sr1(p)
Begin emission:
.Finished to send 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
>>> r[IP].src
'192.30.253.113'
La documentación contiene casos de uso más avanzados y ejemplos.
Otros recursos útiles:
Scapy funciona sin ningún módulo externo de Python en Linux y sistemas operativos tipo BSD. En Windows, es necesario instalar algunas dependencias obligatorias como se describe en la documentación.
En la mayoría de los sistemas, usar Scapy es tan simple como ejecutar los siguientes comandos:
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
Para beneficiarte de todas las funciones de Scapy, como el trazado de gráficos, es posible que quieras instalar
módulos de Python, como matplotlib o cryptography. Consulta la
documentación y
sigue las instrucciones para instalarlos.
El código, las pruebas y las herramientas de Scapy están licenciados bajo GPL v2.
La documentación (todo salvo lo que se indique lo contrario en doc/, y excepto el logotipo) está licenciada bajo CC BY-NC-SA 2.5.
¿Quieres contribuir? ¡Genial! Dedica unos minutos a leer esto.