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 interativo de manipulação de pacotes e biblioteca 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, correlacionar requisições e respostas, e muito mais. Ele foi projetado para permitir a prototipagem rápida de pacotes usando valores padrão que funcionam.
Ele consegue lidar facilmente com a maioria das tarefas clássicas, como varredura, traceroute, 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
tem um desempenho muito bom 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 (VLAN hopping + envenenamento de cache ARP, decodificação de VoIP em canal protegido por WEP,
...), etc.
O Scapy oferece suporte ao Python 3.9+. Ele foi projetado para ser multiplataforma e roda em diversas plataformas diferentes (Linux, OSX, *BSD e Windows).
O Scapy pode ser usado tanto como um shell quanto como uma biblioteca. Para mais detalhes, consulte Primeiros passos com o 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 ICMP Echo Request para
github.com e, em seguida, 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 quaisquer módulos externos do Python em sistemas operacionais Linux e BSD. No Windows, é necessário 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 usufruir de todos os recursos do Scapy, como a 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 a GPL v2.
A documentação (tudo, a menos que indicado 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!