Scapy é um poderoso programa e biblioteca interativa de manipulação de pacotes baseada em Python.
Ele é capaz de falsificar ou decodificar pacotes de um amplo número de protocolos, enviá-los pela rede, capturá-los, armazená-los ou lê-los usando arquivos pcap, combinar solicitações e respostas e muito mais. Ele foi projetado para permitir a prototipagem rápida de pacotes usando valores padrão que funcionam.
Ele pode lidar facilmente com a maioria das tarefas clássicas, como varredura, rastreamento, sondagem, testes unitários, ataques ou descoberta de rede (pode substituir hping
, 85% do nmap
, arpspoof
, arp-sk
, arping
, tcpdump
, wireshark
, p0f
, etc.). Ele também funciona muito bem em muitas outras tarefas específicas que a maioria das outras ferramentas não consegue realizar, como enviar quadros inválidos, injetar seus próprios quadros 802.11, combinar técnicas (salto de VLAN + envenenamento de cache ARP, decodificação de VoIP em canal protegido WEP, . ..), etc
Scapy suporta Python 3.7+. Ele foi projetado para ser multiplataforma e roda em muitas plataformas diferentes (Linux, OSX, *BSD e Windows).
Scapy pode ser usado como shell ou como biblioteca . Para obter mais detalhes, acesse Introdução ao Scapy, que faz parte da documentação.
O Scapy pode ser facilmente usado como um shell interativo para interagir com a rede. O exemplo a seguir mostra como enviar uma mensagem de solicitação de eco ICMP para github.com
e, em seguida, exibir o endereço IP de origem da resposta:
sudo ./run_scapyBem-vindo ao Scapy>>> p = IP(dst="github.com")/ICMP()>>> r = sr1(p)Início da emissão: .Concluído o envio de 1 pacote.*Recebi 2 pacotes, obtive 1 resposta, restando 0 pacotes>>> r[IP].src'192.30.253.113'
A documentação contém casos de uso e exemplos mais avançados.
Outros recursos úteis:
Scapy em 20 minutos
Tutorial interativo (parte da documentação)
A demonstração rápida: uma sessão interativa (alguns exemplos podem estar desatualizados)
Bloco de notas HTTP/2
Cadernos TLS
Scapy funciona sem nenhum módulo Python externo em sistemas operacionais semelhantes a Linux e BSD. No Windows, você precisa instalar algumas dependências obrigatórias conforme descrito na documentação.
Na maioria dos sistemas, usar o Scapy é tão simples quanto executar os seguintes comandos:
clone do git https://github.com/secdev/scapycd scapy ./run_scapy
Para se beneficiar de todos os recursos do Scapy, como plotagem, você pode querer instalar módulos Python, como matplotlib
ou cryptography
. Consulte a documentação e siga as instruções para instalá-los.
O código, os testes e as ferramentas do Scapy são licenciados sob GPL v2. A documentação (tudo, salvo indicação em contrário no doc/
e exceto o logotipo) está licenciada sob CC BY-NC-SA 2.5.
Quer contribuir? Ótimo! Por favor, reserve alguns minutos para ler isso!