Construir uma ferramenta revela decisões ocultas em scanners maduros: entradas, timeouts, concorrência, campos de protocolo, erros e filtros. Este curso prático usa Python para desenvolver ferramentas de reconhecimento e encadear resultados.
Você criará um scanner TCP multithread, montará pacotes ICMP/TCP com Scapy e desenvolverá um enumerador web concorrente. O desafio final verifica portas web locais, testa caminhos de uma wordlist em cada serviço aberto e escreve um relatório combinado.
O que você aprenderá
- Criar uma CLI com
argparsepara alvo e faixa de portas - Detectar portas TCP com
socket.connect_ex, timeouts e exceções - Comparar varredura sequencial com concorrência por threads
- Empilhar camadas IP, ICMP e TCP no Scapy e inspecionar campos
- Enviar uma sonda ICMP com
sr1e tratar resposta ou timeout - Ler caminhos de uma wordlist e executar HTTP concorrentemente
- Filtrar endpoints por códigos HTTP e tratar erros
- Encadear scanner e descoberta em uma ferramenta local de relatório
Para quem é este curso
Este curso intermediário é indicado para estudantes de segurança, engenheiros de rede e desenvolvedores Python que desejam entender scanners e enumeradores. Ele ensina implementação e testes seguros, não substitui Nmap ou ffuf.
Pré-requisitos: Funções Python, módulos, coleções, exceções e arquivos, além de portas TCP, códigos HTTP, cabeçalhos IP/ICMP/TCP e terminal Linux.
Ambiente de aprendizagem: Ubuntu 22.04 com Python 3, Scapy, requests, servidores web locais e wordlists. Scans usam 127.0.0.1; o laboratório de pacotes envia um ICMP Echo a 8.8.8.8, sujeito à política de rede.
Perguntas frequentes
Posso apontar as ferramentas para qualquer host?
Somente sistemas próprios ou explicitamente autorizados. Os scans usam 127.0.0.1; o Scapy envia um ICMP Echo padrão ao Google Public DNS para praticar respostas.
E se o Scapy não receber resposta?
É normal se ICMP ou pacotes raw forem bloqueados. O script usa timeout de dois segundos e trata a ausência; conectividade garantida não é o objetivo.
As ferramentas estão prontas para produção?
Não. Ferramentas maduras adicionam concorrência limitada, rate limiting, detecção de serviços, tentativas, respostas wildcard, TLS, validação, saída determinística e testes.
“Fuzzer” significa enviar payloads malformados?
Não. Ele enumera caminhos de uma wordlist com GET comuns e filtros de status HTTP. Não há mutação de protocolo, injeção de payloads ou testes de corrupção de memória.



