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 y biblioteca de manipulación interactiva de paquetes basado en Python.
Es capaz de forjar o decodificar paquetes de una amplia variedad de protocolos, enviarlos por la red, capturarlos, almacenarlos o leerlos usando archivos pcap, emparejar solicitudes y respuestas, y mucho más. Está diseñado para permitir la creación rápida de prototipos de paquetes mediante el uso de 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 hping, el 85% de nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f, etc.). También se desempeña muy bien en muchas otras tareas específicas que la mayoría de las otras 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 VoIP en canal protegido con WEP, ...), etc.
Scapy es compatible con Python 3.7+. Está diseñado para ser multiplataforma y se ejecuta en muchas plataformas diferentes (Linux, OSX, *BSD y Windows).
Scapy se puede usar como un shell o como una biblioteca. Para más detalles, diríjase a Primeros pasos con Scapy, que es parte de la documentación.
Scapy se puede usar fácilmente como un shell interactivo para interactuar con la red. El siguiente ejemplo muestra cómo enviar un mensaje de solicitud de eco ICMP 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 módulos externos de Python en Linux y sistemas operativos similares a BSD. En Windows, necesita 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 beneficiarse de todas las funciones de Scapy, como el trazado, es posible que desee instalar módulos de Python, como matplotlib o cryptography. Consulte la documentación y siga las instrucciones para instalarlos.
El código, las pruebas y las herramientas de Scapy están bajo licencia GPL v2. La documentación (todo a menos que se indique lo contrario en doc/, y excepto el logotipo) está bajo licencia CC BY-NC-SA 2.5.
¿Quieres contribuir? ¡Genial! Por favor, tómate unos minutos para leer esto.