Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
iptable_evil — Backdoor iptables a nível de kernel que aceita todos os pacotes com o evil bit RFC 3514 definido, desviando das regras do firewall. Inclui builds in-tree e out-of-tree para Linux. | Kitploit
Ferramentas/GitHubGitHub/flamingspork/iptable_evil
ExploraçãoEvasão de IDS/IPSSegurança de RedeAprendizado e EducaçãoRed Teaming
GitHubflamingspork/iptable_evil

iptable_evil

Backdoor iptables a nível de kernel que aceita todos os pacotes com o evil bit RFC 3514 definido, desviando das regras do firewall. Inclui builds in-tree e out-of-tree para Linux.

Ver Repositório
5413há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

iptable_evil

iptable_evil é um backdoor muito específico para iptables que permite todos os pacotes com o evil bit ativado, independentemente das regras do firewall.

A implementação inicial está em iptable_evil.c, que adiciona uma tabela ao iptables e requer a modificação de um cabeçalho do kernel para inserir um local para ela. A segunda implementação é uma versão modificada do módulo central ip_tables e seus dependentes para permitir todos os pacotes Evil.

Testei no kernel Linux versão 5.8.0-48, mas isso deve ser aplicável a praticamente qualquer versão do kernel com uma implementação completa do iptables.

Explicação do Evil Bit

RFC3514, publicado em 1º de abril de 2003, define o bit de ordem superior anteriormente não utilizado do campo de offset de fragmento IP como um sinalizador de segurança. Para sistemas compatíveis com RFC, um 1 nessa posição do bit indica intenção maligna e fará com que o pacote seja bloqueado.

Por padrão, esse bit está desligado, mas pode ser ativado no seu software se você estiver montando a totalidade do seu pacote IP (como algumas ferramentas de hacking fazem), ou no kernel Linux usando este patch (espelhado neste repositório aqui).

Como funciona o backdoor?

Quando um pacote é recebido pelo kernel Linux, ele é processado pelo iptables e enviado para o espaço do usuário, rejeitado ou modificado com base nas regras configuradas.

Em particular, cada tabela iptables usa a função ipt_do_table em ip_tables.c para decidir se aceita um determinado pacote. Eu modifiquei isso para aceitar automaticamente qualquer pacote com o evil bit ativado e pular todo o processamento adicional.

Também tentei adicionar outra tabela (iptable_evil.c) que aceitaria todos os pacotes evil e passaria os outros para as tabelas padrão para processamento, mas nunca descobri como passar os pacotes para a próxima tabela e decidi que o backdoor ipt_do_table era suficiente como prova de conceito.

Por que você fez isso?

Precisava fazer e documentar um projeto razoavelmente grande em segurança da computação para uma das minhas aulas, e isso pareceu uma ideia legal. Isso provavelmente é mais trabalho do que ele esperava para isso, mas ¯\_(ツ)_/¯.

Compilação

Compilação na Árvore do Kernel

A tabela evil requer modificação dos cabeçalhos do kernel, portanto, instalá-la requer executar um kernel produzido através da compilação completa da árvore.

  • Copie o conteúdo de replace-existing para a árvore de fontes do kernel, sobrescrevendo os arquivos existentes.
  • Copie iptable_evil.c para linux-X.Y.Z/net/ipv4/netfilter
  • (opcional) copie ip_tables.c para linux-X.Y.Z/net/ipv4/netfilter
  • Compile o kernel de acordo com o processo da sua distribuição (deve produzir um pacote)
  • Instale o arquivo do pacote
  • Reinicie no seu novo kernel
  • iptables -t filter -L
  • iptables -t evil -L (isso terá uma saída confusa, mas carregará o módulo)

Compilação Fora da Árvore (Out-of-Tree)

Isso é significativamente mais fácil e rápido, mas não suporta a tabela evil e marca o kernel como "tainted". Deve ser possível copiar os arquivos ko produzidos por isso para outro computador com exatamente a mesma versão do kernel, mas não testei.

  • Execute make
  • rmmod iptable_*
  • rmmod ip_tables
  • insmod ip_tables.ko
  • insmod iptable_filter.ko

Teste/Demonstração

Para testar isso, você precisa reconstruir todo o seu kernel com este patch ou criar seus próprios pacotes usando uma ferramenta como Scapy. Optei pela primeira opção porque já estava compilando o kernel para a tabela evil.

Na primeira captura de tela, bloquei todo o tráfego para esta VM no iptables, mas ainda consigo conectar via SSH porque meus pacotes têm o evil bit ativado, como mostra a segunda captura de tela. captura de tela de uma conexão SSH que deveria ter sido bloqueada captura de tela do Wireshark mostrando o bit reservado ativado

Ao conectar na VM com backdoor a partir de uma VM que não define o evil bit, a conexão SSH eventualmente expirará. captura de tela de uma conexão SSH expirando captura de tela do Wireshark mostrando o bit reservado não ativado

Capturas de pacotes de conexões SSH com e sem backdoor estão na pasta docs/ deste repositório para sua consulta.

Versão do Kernel

  • 5.8.0-48-generic (Ubuntu 20.04)

Informações Adicionais e Recursos

  • RFC 3514 inventando o evil bit: https://tools.ietf.org/html/rfc3514
  • Introdução de Ben Cox ao evil bit: https://blog.benjojo.co.uk/post/evil-bit-RFC3514-real-world-usage
  • iptables_uwu de Ben Cox (principalmente para dar nomes de coisas para pesquisar): https://github.com/benjojo/iptables-uwu
  • Uma explicação um tanto desatualizada, mas muito detalhada de como o iptables funciona e como adicionar alvos e módulos a ele: https://inai.de/documents/Netfilter_Modules.pdf
  • https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
  • A pesquisa Elixir da Bootlin é significativamente mais fácil de usar para encontrar identificadores no kernel do que grep: https://elixir.bootlin.com/linux/v5.8/source/net/ipv4/netfilter/ip_tables.c#L225
  • A documentação do Ubuntu explica como compilar o kernel: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
Baixar ferramenta