Black Hat Python Book - 4. Owning the Network with Scapy - Black Hat Python [Book]
4. Owning the Network with Scapy - Black Hat Python [Book]

O que esse livro realmente ensina

Black Hat Python do Justin Seitz é uma daquelas referências que aparecem em quase todo currículo de pentest, mas a maioria das pessoas lê de forma errada. O livro foca em construir ferramentas ofensivas com Python 3, cobrindo desde sniffers e keyloggers até técnicas de bypass de antivírus e exploração de infraestrutura. Não é um livro para iniciantes absolutos em programação, mas também não exige que você seja um engenheiro de software experiente. O equilíbrio está em saber ler o código e adaptá-lo ao seu ambiente. A coisa mais importante que o livro transmite é a mentalidade de construção. Em vez de mostrar exploits prontos para copiar e colar, ele ensina como montar cada peça do ataque do zero. Isso significa que você precisa entender o protocolo que está manipulando antes de escrever uma linha de código. Eu vi gente tentar rodar os exemplos sem entender o básico de sockets e terminar frustrada achando que o livro era ruim. O problema nunca era o livro.

black hat python book: por onde começar na prática

O segundo capítulo sobre sniffers é o ponto de partida mais sólido. O código funciona em Linux sem modificações, mas no Windows as coisas mudam porque a pilha de rede se comporta de forma diferente. A primeira vez que testei os exemplos, configurei um sniff simples em uma VM Windows 10 e o programa só capturava pacotes broadcasts. Perdi cerca de 40 minutos antes de perceber que o adaptador estava em modo promíscuo incorretamente configurado pelo VirtualBox. A solução foi ajustar a configuração da placa de rede virtual para modo puente e rodar o script com privilégios de administrador. Sem isso, você passa horas achando que o código está quebrado quando na verdade é a camada de virtualização que está no caminho. Depois dos sniffers, o capítulo sobre criação de trojans com DLL injection é onde o livro realmente brilha. O exemplo clássico de injetar código em um processo legítimo usando CreateRemoteThread é didático, mas tem uma armadilha que poucos mencionam. Se o processo alvo for de 64 bits e seu payload estiver compilado como 32 bits, a injeção falha silenciosamente. O livro não entra nesse detalhe porque pressupõe que você já sabe diferenciar arquiteturas. Na prática, eu compilei o shellcode várias vezes no sentido errado antes de perceber que o processo svchost.exe na minha máquina de teste era x64 e meu projeto no Visual Studio estava em x86. Mudar a plataforma de compilação resolveu em dois minutos.

Limitações que ninguém comenta

O livro tem deficiências reais que você precisa saber antes de depender dele. A versão mais recente usa Python 3.6 como base, mas muitas das APIs do Windows que ele demonstra já foram depreciadas ou têm comportamento diferente no Windows 10 e 11. O exemplo de Keylogger usando GetAsyncKeyState funciona, mas o sistema agora captura teclas em contextos protegidos de forma distinta, especialmente em apps UWP e janelas de segurança do navegador. Você vai precisar adaptar o código para lidar com essas diferenças. O capítulo sobre evasion de antivírus é o mais probleático. As técnicas mostram conceitos válidos de ofuscação e manipulação de memória, mas em 2024 e seguintes, EDRs como CrowdStrike, SentinelOne e Microsoft Defender analisam comportamento em tempo real de forma muito mais agressiva. Apenas ofuscar o shellcode com packing não basta mais. O livro também não aborda técnicas modernas como process injection via reflective DLL e API unhooking, que são padrão em operações reais hoje em dia. Para cobrir essas lacunas, você precisa complementar com materiais mais recentes e prática em ambientes isolados.

Outro ponto fraco: o livro não cobre Docker ou containers de forma significativa. Muitos dos cenários de teste que eu montava dependiam de contêineres isolados para desenvolver e validar as técnicas sem contaminar a rede. A falta dessa abordagem obriga você a criar VMs separadas, o que consome bastante recursos e tempo de setup.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Como tirar o máximo proveito

Eu recomendo clonar o repositório oficial do GitHub do autor e rodar cada exemplo em sequência, mas com uma mudança na metodologia. Em vez de apenas executar o código como está, desconstrua cada linha e tente reescrever a funcionalidade sem olhar o original. Isso leva mais tempo no início, mas acelera muito a compreensão no médio prazo. Um script que levaria 30 minutos para copiar e testar, leva cerca de 2 horas sendo desconstruído, mas a retenção do conhecimento é significativamente maior. Para o capítulo de redes, monte um laboratório mínimo com dois máquinas virtuais: uma como atacante rodando Kali Linux e outra como alvo com Windows ou Linux. Use uma rede interna isolada. Isso evita problemas legais e permite testar técnicas sem Impacto em produção. Configure regras específicas de firewall na máquina alvo para observar como o comportamento dos pacotes muda conforme as regras são aplicadas ou removidas.

No capítulo de malware, comece com técnicas mais simples como process hollowing antes de partir para injected code mais complexo. O hollowing é um conceito que aparece repetidamente em ferramentas profissionais, e dominá-lo primeiro cria uma base sólida. Use o CFF Explorer ou ferramentas similares para inspecionar o PE do processo e entender o que acontece durante a substituição do segmento de código.

Recursos complementares

O livro sozinho não cobre tudo. Para técnicas de evasion mais atuais, considere estudar arteigos sobre syscalls direto, que permitem chamar funções do kernel sem passar pelas APIs do Windows, contornando muitos hooks de EDR. Também vale a pena conferir o projeto donut do Cobalt Strike, que gera shellcodes ELF, Mach-O e PE a partir de payloads .NET, Java e outros formatos, útil para compreender como payloads modernos são empacotados. Para a parte de redes, o scapy é essencial. O livro usa principalmente sockets brutos, mas scapy oferece parsing e manipulação de pacotes muito mais eficiente para testes rápidos. Combine os dois: use sockets brutos para entender o funcionamento de baixo nível conforme o livro ensina, e scapy para automação e prototipagem acelerada.

A comunidade de segurança ofensiva no Brasil tem grupos ativos no Telegram e Discord onde discussões sobre as técnicas do livro acontecem regularmente. Participar desses espaços ajuda a validar se suas adaptações funcionam e a descobrir edge cases que o livro não aborda. Uma última observação: sempre opere dentro da lei. O conhecimento descrito é valioso para defesa e testes autorizados, mas aplicar técnicas em sistemas sem permissão é crime em praticamente todas as jurisdições.