Scapy es un potente programa y biblioteca de manipulación de paquetes interactivos basado en Python.
Es capaz de falsificar o decodificar paquetes de una amplia cantidad de protocolos, enviarlos por cable, capturarlos, almacenarlos o leerlos usando archivos pcap, hacer coincidir 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, rastreo de rutas, sondeo, pruebas unitarias, ataques o descubrimiento de redes (puede reemplazar hping
, 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 otras herramientas no pueden manejar, como enviar tramas no válidas, inyectar sus propias tramas 802.11, combinar técnicas (salto de VLAN + envenenamiento de caché ARP, decodificación de VoIP en un canal protegido WEP, . ..), etc.
Scapy es compatible con Python 3.7+. Está pensado para ser multiplataforma y se ejecuta en muchas plataformas diferentes (Linux, OSX, *BSD y Windows).
Scapy se puede utilizar como shell o como biblioteca . Para obtener más detalles, dirígete a Primeros pasos con Scapy, que forma parte de la documentación.
Scapy se puede utilizar 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_scapyBienvenido a Scapy>>> p = IP(dst="github.com")/ICMP()>>> r = sr1(p)Comienza la emisión: .Terminó de enviar 1 paquete.*Recibido 2 paquetes, obtuve 1 respuesta, quedan 0 paquetes>>> r[IP].src'192.30.253.113'
La documentación contiene casos de uso más avanzados y ejemplos.
Otros recursos útiles:
Aterrador en 20 minutos
Tutorial interactivo (parte de la documentación)
La demostración rápida: una sesión interactiva (algunos ejemplos pueden estar desactualizados)
Cuaderno HTTP/2
Cuadernos TLS
Scapy funciona sin ningún módulo Python externo en sistemas operativos tipo Linux y BSD. En Windows, necesitas 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:
clon de git https://github.com/secdev/scapycd ./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
. Consulta la documentación y sigue las instrucciones para instalarlos.
El código, las pruebas y las herramientas de Scapy tienen licencia GPL v2. La documentación (todo, a menos que se indique lo contrario en doc/
, y excepto el logotipo) tiene licencia CC BY-NC-SA 2.5.
¿Quieres contribuir? ¡Excelente! ¡Tómate unos minutos para leer esto!