Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
iptable_evil — Porte dérobée au niveau du noyau pour iptables qui accepte tous les paquets avec le RFC 3514 evil bit activé, contournant les règles du pare-feu. Inclut des constructions in-tree et out-of-tree pour Linux. | Kitploit
Outils/GitHubGitHub/flamingspork/iptable_evil
ExploitationÉvasion IDS/IPSSécurité RéseauApprentissage et ÉducationRed Teaming
GitHubflamingspork/iptable_evil

iptable_evil

Porte dérobée au niveau du noyau pour iptables qui accepte tous les paquets avec le RFC 3514 evil bit activé, contournant les règles du pare-feu. Inclut des constructions in-tree et out-of-tree pour Linux.

Voir le dépôt
5413il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

iptable_evil

iptable_evil est une backdoor très spécifique pour iptables qui autorise tous les paquets avec le bit maléfique activé, quelles que soient les règles du pare-feu.

L'implémentation initiale se trouve dans iptable_evil.c, qui ajoute une table à iptables et nécessite la modification d'un en-tête du noyau pour y insérer un emplacement. La seconde implémentation est une version modifiée du module central ip_tables et de ses dépendants pour autoriser tous les paquets maléfiques.

Je l'ai testé sur la version 5.8.0-48 du noyau Linux, mais cela devrait s'appliquer à presque toutes les versions du noyau avec une implémentation complète d'iptables.

Explication du Bit Maléfique

RFC3514, publié le 1er avril 2003, définit le bit de poids fort précédemment inutilisé du champ de décalage de fragment IP comme un indicateur de sécurité. Pour les systèmes conformes à la RFC, un 1 dans cette position de bit indique une intention malveillante et entraînera le blocage du paquet.

Par défaut, ce bit est désactivé, mais peut être activé dans votre logiciel si vous assemblez l'intégralité de votre paquet IP (comme le font certains outils de piratage), ou dans le noyau Linux en utilisant ce correctif (miroir dans ce dépôt ici).

Comment fonctionne la backdoor ?

Lorsqu'un paquet est reçu par le noyau Linux, il est traité par iptables et soit envoyé vers l'espace utilisateur, rejeté ou modifié selon les règles configurées. En particulier, chaque table iptables utilise la fonction ipt_do_table dans ip_tables.c pour décider d'accepter ou non un paquet donné. Je l'ai modifiée pour qu'elle accepte automatiquement tout paquet avec le bit maléfique activé et ignore tout traitement ultérieur.

J'ai également essayé d'ajouter une autre table (iptable_evil.c) qui accepterait tous les paquets maléfiques et transmettrait les autres aux tables standard pour traitement, mais je n'ai jamais compris comment passer les paquets à la table suivante et j'ai décidé que la backdoor ipt_do_table suffisait comme preuve de concept.

Pourquoi avez-vous fait cela ?

J'avais besoin de réaliser et de rédiger un projet assez conséquent en sécurité informatique pour l'un de mes cours, et cela m'a semblé une idée intéressante. C'est probablement plus de travail que ce qu'il attendait pour cela, mais ¯\_(ツ)_/¯.

Construction

Construction dans l'arborescence

La table evil nécessite la modification des en-têtes du noyau, donc son installation nécessite de fonctionner avec un noyau produit par la construction complète de l'arborescence.

  • Copiez le contenu de replace-existing dans votre arborescence source du noyau, en écrasant les fichiers existants.
  • Copiez iptable_evil.c vers linux-X.Y.Z/net/ipv4/netfilter
  • (facultatif) copiez ip_tables.c vers linux-X.Y.Z/net/ipv4/netfilter
  • Compilez le noyau selon le processus de votre distribution (devrait produire un paquet)
  • Installez le fichier du paquet
  • Redémarrez avec votre nouveau noyau
  • iptables -t filter -L
  • iptables -t evil -L (la sortie sera confuse, mais le module sera chargé)

Construction hors de l'arborescence

C'est beaucoup plus simple et rapide, mais ne prend pas en charge la table evil et marque le noyau comme 'contaminé'. Il devrait être possible de copier les fichiers ko produits par cette méthode vers un autre ordinateur avec exactement la même version du noyau, mais je ne l'ai pas testé.

  • Exécutez make
  • rmmod iptable_*
  • rmmod ip_tables
  • insmod ip_tables.ko
  • insmod iptable_filter.ko

Test/Démonstration

Pour tester cela, vous devez soit reconstruire l'intégralité de votre noyau avec ce correctif, soit créer vos propres paquets à l'aide d'un outil comme Scapy. J'ai choisi la première option car je construisais déjà le noyau pour la table evil.

Sur la première capture d'écran, j'ai bloqué tout le trafic vers cette VM dans iptables, mais je peux toujours me connecter via SSH car mes paquets ont le bit maléfique activé, comme le montre la deuxième capture d'écran. capture d'écran d'une connexion SSH qui aurait dû être bloquée capture d'écran de Wireshark montrant que le bit réservé est activé

Lors de la connexion à la VM backdoorée depuis une VM qui ne définit pas le bit maléfique, la connexion SSH finira par expirer. capture d'écran d'une connexion SSH expirant capture d'écran de Wireshark montrant que le bit réservé n'est pas activé

Les captures de paquets des connexions SSH avec et sans backdoor se trouvent dans le dossier docs/ de ce dépôt pour votre consultation.

Version du noyau

  • 5.8.0-48-generic (Ubuntu 20.04)

Informations complémentaires et ressources

  • RFC 3514 inventant le bit maléfique : https://tools.ietf.org/html/rfc3514
  • Introduction de Ben Cox au bit maléfique : https://blog.benjojo.co.uk/post/evil-bit-RFC3514-real-world-usage
  • iptables_uwu de Ben Cox (principalement pour donner les noms des choses à rechercher) : https://github.com/benjojo/iptables-uwu
  • Une explication quelque peu obsolète mais très détaillée du fonctionnement d'iptables et de la façon d'ajouter des cibles et des modules : https://inai.de/documents/Netfilter_Modules.pdf
  • https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
  • La recherche Elixir de Bootlin est nettement plus facile à utiliser pour trouver des identifiants dans le noyau que grep : https://elixir.bootlin.com/linux/v5.8/source/net/ipv4/netfilter/ip_tables.c#L225
  • La documentation d'Ubuntu explique comment construire le noyau : https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
Télécharger l’outil