Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
iodine — Tunnel IPv4-Daten über DNS-Server, um Firewall-Beschränkungen zu umgehen und verdeckten Netzwerkzugriff für Penetrationstests zu ermöglichen. | Kitploit
Tools/GitHubGitHub/yarrick/iodine
IDS/IPS-UmgehungDatenexfiltrationNetzwerksicherheitPenetrationstestsCommand and ControlRed TeamingRemote-Access-ToolTop in Datenexfiltration Nr.2Top in IDS/IPS-Umgehung Nr.13
8.0k598106vor 2 TagenVon Kitploit geprüft
GitHub
yarrick/iodine

iodine

Tunnel IPv4-Daten über DNS-Server, um Firewall-Beschränkungen zu umgehen und verdeckten Netzwerkzugriff für Penetrationstests zu ermöglichen.

Repository anzeigenWebseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

iodine - https://code.kryo.se/iodine

Dies ist eine Software, mit der Sie IPv4-Daten durch einen DNS-Server tunneln können. Dies kann in verschiedenen Situationen nützlich sein, in denen der Internetzugang durch eine Firewall blockiert ist, DNS-Abfragen jedoch erlaubt sind.

KOMPILIEREN

Um iodine zu kompilieren, benötigen Sie meson. Führen Sie die folgenden Befehle aus, um im Verzeichnis build zu kompilieren:

meson setup build
cd build
ninja

Um die Tests zu erstellen und auszuführen, benötigen Sie die check-Bibliothek. Starten Sie sie mit ninja test im Build-Verzeichnis.

SCHNELLSTART

Probieren Sie es in Ihrem eigenen LAN aus! Befolgen Sie diese einfachen Schritte:

  • Führen Sie auf Ihrem Server aus: ./iodined -f 10.0.0.1 test.com. Wenn Sie bereits das Netzwerk 10.0.0.0 verwenden, nutzen Sie ein anderes internes Netz wie 172.16.0.0.
  • Geben Sie ein Passwort ein.
  • Führen Sie auf dem Client aus: ./iodine -f -r 192.168.0.1 test.com. Ersetzen Sie 192.168.0.1 durch die IP-Adresse Ihres Servers.
  • Geben Sie dasselbe Passwort ein.
  • Nun hat der Client die Tunnel-IP 10.0.0.2 und der Server hat 10.0.0.1.
  • Versuchen Sie, sich gegenseitig durch den Tunnel anzupingen.
  • Fertig! :)

Um es tatsächlich über einen weiterleitenden Nameserver zu nutzen, siehe unten.

VERWENDUNG

Hinweis: Server und Client müssen exakt dasselbe Protokoll sprechen. In den meisten Fällen bedeutet dies, dass dieselbe iodine-Version ausgeführt werden muss. Leider ist die Implementierung von Abwärts- und Vorwärtskompatibilität des Protokolls normalerweise nicht machbar.

Serverseite

Um diesen Tunnel zu nutzen, benötigen Sie die Kontrolle über eine echte Domain (wie mydomain.com) und einen Server mit einer öffentlichen IP-Adresse, auf dem iodined ausgeführt wird. Wenn dieser Server bereits ein DNS-Programm ausführt, ändern Sie dessen Listening-Port und verwenden Sie dann die -b-Option von iodined, damit iodined die DNS-Anfragen weiterleitet. (Beachten Sie, dass dieses Verfahren in Produktionsumgebungen nicht empfohlen wird, da die DNS-Weiterleitung von iodined nicht vollständig transparent ist, zum Beispiel funktionieren Zonentransfers nicht.) Alternativ können Sie die Subdomain von Ihrem DNS-Server an iodined weiterleiten, der dann auf einem anderen Port (-p) laufen muss.

Delegieren Sie dann eine Subdomain (sagen wir, t1.mydomain.com) an den iodined-Server. Wenn Sie BIND für Ihre Domain verwenden, fügen Sie zwei Zeilen wie diese zur Zonendatei hinzu:

t1		IN	NS	t1ns.mydomain.com.		; note the dot!
t1ns		IN	A	10.15.213.99

Die NS-Zeile ist alles, was benötigt wird, um Abfragen für die t1-Subdomain an den t1ns-Server zu leiten. Wir verwenden einen kurzen Namen für die Subdomain, um so viel Platz wie möglich für den Datenverkehr verfügbar zu halten. Am Ende der NS-Zeile steht der Name Ihres iodined-Servers. Dies kann ein beliebiger Name sein, der irgendwohin zeigt, aber in diesem Fall wird er einfach in derselben Zonendatei gehalten. Es muss ein Name (keine IP-Adresse) sein, und dieser Name selbst muss einen A-Record haben (keinen CNAME).

Wenn Ihr iodined-Server eine dynamische IP hat, verwenden Sie einen dynamischen DNS-Anbieter. Richten Sie einfach die NS-Zeile darauf aus und lassen Sie die A-Zeile weg:

t1		IN	NS	myname.mydyndnsprovider.com.	; note the dot!

Laden Sie dann Ihr Nameserver-Programm neu oder starten Sie es neu. Nun werden alle DNS-Abfragen für Domains, die auf t1.mydomain.com enden, an Ihren iodined-Server gesendet.

Starten Sie schließlich iodined auf Ihrem Server. Das erste Argument ist die IP-Adresse innerhalb des Tunnels, die aus einem beliebigen Bereich stammen kann, den Sie noch nicht verwenden (zum Beispiel 192.168.99.1), und das zweite Argument ist die zugewiesene Domain (in diesem Fall t1.mydomain.com). Die Verwendung der -f-Option hält iodined im Vordergrund, was beim Testen hilft. iodined öffnet ein virtuelles Interface ("tun device") und beginnt auch, auf UDP-Port 53 auf DNS-Abfragen zu lauschen. Geben Sie entweder ein Passwort auf der Kommandozeile ein (-P pass) oder nachdem der Server gestartet ist. Nun ist alles für den Client bereit.

Wenn die Möglichkeit besteht, dass Sie einen iodine-Tunnel aus unerwarteten Umgebungen verwenden, starten Sie iodined mit einer -c-Option. Resultierende Kommandozeile in dieser Beispielsituation:

./iodined -f -c -P secretpassword 192.168.99.1 t1.mydomain.com

Clientseite

Die gesamte Einrichtung ist erledigt, starten Sie einfach iodine. Es nimmt ein oder zwei Argumente, das erste ist der lokale weiterleitende DNS-Server (optional) und das zweite ist die Domain, die Sie verwendet haben (t1.mydomain.com). Wenn Sie das erste Argument nicht angeben, wird die aktuelle DNS-Einstellung des Systems herangezogen.

Wenn DNS-Abfragen an jeden Computer erlaubt sind, können Sie direkt die Adresse des iodined- Servers als erstes Argument angeben (im Beispiel: t1ns.mydomain.com oder 10.15.213.99). In diesem Fall kann es auch vorkommen, dass jeglicher Verkehr zum DNS-Port (53 UDP) jedes Computers erlaubt ist. Iodine wird dies erkennen und wenn möglich auf rohes UDP-Tunneling umschalten. Um in jedem Fall DNS-Tunneling zu erzwingen, verwenden Sie die -r-Option (besonders nützlich beim Testen innerhalb Ihres eigenen Netzwerks).

Das Tunnel-Interface des Clients erhält eine IP nahe der des Servers (in diesem Fall 192.168.99.2 oder .3 usw.) und eine passende MTU. Geben Sie dasselbe Passwort wie auf dem Server ein, entweder als Kommandozeilenoption oder nachdem der Client gestartet ist. Die Verwendung der -f-Option hält den iodine-Client im Vordergrund.

Resultierende Kommandozeile in dieser Beispielsituation, wobei das Hinzufügen von -r DNS-Tunneling erzwingt, selbst wenn rohes UDP-Tunneling möglich wäre:

./iodine -f -P secretpassword t1.mydomain.com

Von beiden Seiten sollten Sie nun in der Lage sein, die IP-Adresse am anderen Ende des Tunnels anzupingen. In diesem Fall ping 192.168.99.1 vom iodine-Client und 192.168.99.2 vom iodine-Server.

SONSTIGE INFO

IPv6

Die Daten innerhalb des Tunnels sind ausschließlich IPv4.

Der Server lauscht standardmäßig sowohl auf IPv4 als auch auf IPv6 für eingehende Anfragen. Verwenden Sie die Optionen -4 oder -6, um nur auf einem Protokoll zu lauschen. Der Raw-Modus wird auf demselben Protokoll versucht, das für den Login verwendet wurde.

Der Client kann IPv4- oder IPv6-Nameserver verwenden, um sich mit iodined zu verbinden. Die Relay- Nameserver übersetzen bei Bedarf automatisch zwischen den Protokollen. Verwenden Sie die Optionen -4 oder -6, um den Client zu zwingen, eine bestimmte IP-Version für seine DNS- Abfragen zu verwenden.

Wenn Ihr Server auf IPv6 lauscht und erreichbar ist, fügen Sie einen AAAA-Record dafür zu Ihrer DNS-Einrichtung hinzu. Die Erweiterung des obigen Beispiels würde so aussehen:

t1		IN	NS	t1ns.mydomain.com.		; note the dot!
t1ns		IN	A	10.15.213.99
t1ns		IN	AAAA	2001:db8::1001:99

Routing

Es ist möglich, den gesamten Verkehr durch den DNS-Tunnel zu leiten. Fügen Sie dazu zunächst eine Host-Route zum von iodine verwendeten Nameserver über das kabelgebundene/drahtlose Interface mit dem Standard-Gateway als Gateway hinzu. Ersetzen Sie dann das Standard- Gateway durch die IP-Adresse des iodined-Servers innerhalb des DNS-Tunnels und konfigurieren Sie den Server für NAT.

Beachten Sie jedoch, dass der getunnelte Datenverkehr überhaupt nicht verschlüsselt ist und von externen Parteien relativ leicht gelesen und verändert werden kann. Für maximale Sicherheit führen Sie ein VPN durch den DNS-Tunnel aus (=doppeltes Tunneling) oder verwenden Sie Secure Shell (SSH)-Zugriff, möglicherweise mit Port-Weiterleitung. Letzteres kann auch für Web-Browsing verwendet werden, wenn Sie einen Web-Proxy (zum Beispiel Privoxy) auf Ihrem Server ausführen.

Tool herunterladen