Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
iptable_evil — Kernel-Level-iptables-Backdoor, die alle Pakete mit gesetztem RFC-3514-Evil-Bit akzeptiert und dabei Firewall-Regeln umgeht. Enthält In-Tree- und Out-of-Tree-Builds für Linux. | Kitploit
Tools/GitHubGitHub/flamingspork/iptable_evil
ExploitationIDS/IPS-UmgehungNetzwerksicherheitLernen & BildungRed Teaming
GitHubflamingspork/iptable_evil

iptable_evil

Kernel-Level-iptables-Backdoor, die alle Pakete mit gesetztem RFC-3514-Evil-Bit akzeptiert und dabei Firewall-Regeln umgeht. Enthält In-Tree- und Out-of-Tree-Builds für Linux.

Repository anzeigen
5413vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

iptable_evil

iptable_evil ist eine sehr spezifische Hintertür für iptables, die alle Pakete mit gesetztem Evil Bit durchlässt, unabhängig von den Firewall-Regeln.

Die erste Implementierung befindet sich in iptable_evil.c, die eine Tabelle zu iptables hinzufügt und eine Modifikation eines Kernel-Headers erfordert, um Platz dafür zu schaffen. Die zweite Implementierung ist eine modifizierte Version des ip_tables-Kernmoduls und seiner Abhängigkeiten, die alle Evil-Pakete durchlässt.

Ich habe es mit Linux-Kernel Version 5.8.0-48 getestet, aber es sollte auf so ziemlich jeder Kernel-Version mit einer vollständigen Implementierung von iptables anwendbar sein.

Erklärung des Evil Bits

RFC3514, veröffentlicht am 1. April 2003, definiert das zuvor ungenutzte höchstwertige Bit des IP-Fragment-Offset-Feldes als Sicherheitsflag. Für RFC-konforme Systeme zeigt eine 1 an dieser Bitposition böswillige Absicht an und bewirkt, dass das Paket blockiert wird.

Standardmäßig ist dieses Bit ausgeschaltet, kann aber in Ihrer Software eingeschaltet werden, wenn Sie das vollständige IP-Paket zusammenbauen (wie es einige Hacking-Tools tun), oder im Linux-Kernel mithilfe dieses Patches (gespiegelt in diesem Repository hier).

Wie funktioniert die Hintertür?

Wenn ein Paket vom Linux-Kernel empfangen wird, wird es von iptables verarbeitet und je nach konfigurierten Regeln entweder an den Userspace gesendet, abgelehnt oder modifiziert.

Insbesondere verwendet jede iptables-Tabelle die Funktion ipt_do_table in ip_tables.c, um zu entscheiden, ob ein bestimmtes Paket akzeptiert wird. Ich habe dies modifiziert, um automatisch jedes Paket mit gesetztem Evil Bit zu akzeptieren und die gesamte weitere Verarbeitung zu überspringen.

Ich habe auch versucht, eine weitere Tabelle (iptable_evil.c) hinzuzufügen, die alle Evil-Pakete akzeptiert und andere zur Verarbeitung an die Standardtabellen weitergibt, aber ich habe nie herausgefunden, wie man die Pakete an die nächste Tabelle übergibt, und entschied, dass die ipt_do_table-Hintertür als Machbarkeitsnachweis ausreicht.

Warum haben Sie das getan?

Ich musste für einen meiner Kurse ein ziemlich großes Projekt in Computersicherheit durchführen und dokumentieren, und das schien eine coole Idee zu sein. Das ist wahrscheinlich mehr Arbeit, als er dafür erwartet hatte, aber ¯\_(ツ)_/¯.

Build

In-Tree-Build

Die evil-Tabelle erfordert eine Modifikation der Kernel-Header, daher erfordert die Installation die Verwendung eines Kernels, der durch einen vollständigen Tree-Build erzeugt wurde.

  • Kopieren Sie den Inhalt von replace-existing in Ihren Kernel-Quellbaum und überschreiben Sie vorhandene Dateien.
  • Kopieren Sie iptable_evil.c nach linux-X.Y.Z/net/ipv4/netfilter
  • (optional) Kopieren Sie ip_tables.c nach linux-X.Y.Z/net/ipv4/netfilter
  • Kompilieren Sie den Kernel gemäß dem Prozess Ihrer Distribution (sollte ein Paket erzeugen)
  • Installieren Sie die Paketdatei
  • Starten Sie Ihren neuen Kernel neu
  • iptables -t filter -L
  • iptables -t evil -L (dies wird eine verwirrende Ausgabe haben, aber lädt das Modul)

Out-of-Tree-Build

Dies ist deutlich einfacher und schneller, unterstützt aber die evil-Tabelle nicht und markiert den Kernel als "befleckt" (tainted). Es sollte möglich sein, die so erzeugten ko-Dateien auf einen anderen Computer mit exakt derselben Kernel-Version zu kopieren, aber ich habe es nicht getestet.

  • Führen Sie make aus
  • rmmod iptable_*
  • rmmod ip_tables
  • insmod ip_tables.ko
  • insmod iptable_filter.ko

Testen/Demo

Um dies zu testen, müssen Sie entweder Ihren gesamten Kernel mit diesem Patch neu erstellen oder Ihre eigenen Pakete mit einem Tool wie Scapy erzeugen. Ich habe die erste Option gewählt, weil ich den Kernel bereits für die evil-Tabelle baute.

Im ersten Screenshot habe ich den gesamten Datenverkehr zu dieser VM in iptables blockiert, kann aber trotzdem per SSH verbinden, weil meine Pakete das Evil Bit gesetzt haben, wie der zweite Screenshot zeigt. screenshot of a SSH connection that should have been blocked screenshot of Wireshark showing the reserved bit is set

Wenn Sie von einer VM, die das Evil Bit nicht setzt, eine Verbindung zur Hintertür-VM herstellen, wird die SSH-Verbindung schließlich eine Zeitüberschreitung (Timeout) verursachen. screenshot of a SSH connection timing out screenshot of Wireshark showing the reserved bit is not set

Paketmitschnitte der SSH-Verbindungen mit und ohne Hintertür befinden sich im Ordner docs/ in diesem Repository zur Ansicht.

Kernel-Version

  • 5.8.0-48-generic (Ubuntu 20.04)

Weitere Informationen und Ressourcen

  • RFC 3514, das das Evil Bit erfindet: https://tools.ietf.org/html/rfc3514
  • Ben Cox' Einführung in das Evil Bit: https://blog.benjojo.co.uk/post/evil-bit-RFC3514-real-world-usage
  • Ben Cox' iptables_uwu (hauptsächlich um die Namen der Dinge zu nennen, die man recherchieren sollte): https://github.com/benjojo/iptables-uwu
  • Eine etwas veraltete, aber sehr detaillierte Erklärung, wie iptables funktioniert und wie man Ziele und Module hinzufügt: https://inai.de/documents/Netfilter_Modules.pdf
  • https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
  • Bootlins Elixir-Suche ist deutlich einfacher zu verwenden, um Bezeichner im Kernel zu finden als grep: https://elixir.bootlin.com/linux/v5.8/source/net/ipv4/netfilter/ip_tables.c#L225
  • Die Ubuntu-Dokumentation erklärt, wie man den Kernel baut: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
Tool herunterladen