Biblioteca interativa de manipulação de pacotes baseada em Python para forjar, decodificar, enviar, capturar e analisar pacotes de rede em uma ampla gama de protocolos, com suporte a varredura, traceroute, ataques e descoberta de rede.
ScapyScapy é um poderoso programa e biblioteca de manipulação de pacotes interativos baseado em Python.
Ele é capaz de forjar ou decodificar pacotes de uma ampla variedade de protocolos, enviá-los pela rede, capturá-los, armazená-los ou lê-los usando arquivos pcap, combinar requisições e respostas, e muito mais. Foi projetado para permitir prototipagem rápida de pacotes utilizando valores padrão que funcionam.
Ele pode lidar facilmente com a maioria das tarefas clássicas, como varredura, traceroute, sondagem, testes de unidade, ataques ou descoberta de rede (pode substituir hping, 85% do nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f, etc.). Também tem um desempenho muito bom em várias outras tarefas específicas que a maioria das outras ferramentas não consegue lidar, como enviar quadros inválidos, injetar seus próprios quadros 802.11, combinar técnicas (VLAN hopping + envenenamento de cache ARP, decodificação de VoIP em canal protegido por WEP, ...), etc.
Scapy suporta Python 3.7+. Ele é projetado para ser multiplataforma e roda em muitos sistemas diferentes (Linux, OSX, *BSD e Windows).
Scapy pode ser usado tanto como um shell quanto como uma biblioteca. Para mais detalhes, consulte Começando com Scapy, que faz parte da documentação.
Scapy pode ser facilmente usado como um shell interativo para interagir com a rede.
O exemplo a seguir mostra como enviar uma mensagem ICMP Echo Request para
github.com e depois exibir o endereço IP de origem da resposta:
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'
A documentação contém casos de uso mais avançados e exemplos.
Outros recursos úteis:
O Scapy funciona sem módulos Python externos no Linux e sistemas operacionais tipo 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:
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
Para aproveitar todos os recursos do Scapy, como plotagem, talvez seja necessário instalar
módulos Python, como matplotlib ou cryptography. Consulte a
documentação e
siga as instruções para instalá-los.
O código, testes e ferramentas do Scapy são licenciados sob GPL v2.
A documentação (tudo o que não estiver marcado de outra forma em doc/, e exceto o logotipo) é licenciada sob CC BY-NC-SA 2.5.
Quer contribuir? Ótimo! Por favor, reserve alguns minutos para ler isto!