Exploit-Code mit DNS-Tunnel

Ein Hacker hat Exploit-Code gebaut, der eine Verbindung zu einer Shell via DNS durch Firewalls tunneln kann.

In Pocket speichern vorlesen Druckansicht 16 Kommentare lesen
Lesezeit: 2 Min.

Der Hacker Ron Bowes hat diverse Payloads veröffentlicht, die Standardeingabe und -ausgabe einer Shell via DNS mit einer passenden Gegenstelle im Netz verbinden. Auf diesem Weg lassen sich viele Firewalls umgehen und sogar Systeme attackieren, die selbst gar keine Internet-Verbindung haben.

Für einen DNS-Tunnel muss der Rechner lediglich externe Host-Namen wie www.heise.de auflösen können. Dann kann er seinen Netzwerkverkehr über geschickte DNS-Anfragen und -Antworten abwickeln. Das Konzept demonstrierten Julien Oster und Florian Heinz bereits im Jahr 2000 in c't mit dem Namen "Server Transfer-Protokoll NSTX", das komplette IP-Verbindungen über DNS tunnelt.

Dazu muss eine passende Server-Software auf dem DNS-Server laufen, der für eine bestimmte Domain wie mytunnel.de zuständig ist. Etwas vereinfacht stellt der Host dann Anfragen nach Hosts wie

U2NobGF1bWVpZXIK.mytunnel.de

wobei der Hostname die passend kodierten Paketdaten enthält. Diese Anfrage landet bei seinem lokalen DNS-Server, der sie aber letztlich an den zuständigen Server dns.mytunnel.de weiterreicht. Seine Antwort kann der Server etwa in das TXT-Resource-Record-Feld packen, das zusammen mit der IP-Adresse wieder beim anfragenden Rechner landet. Während NSTX auf diesem Weg eine komplette PPP-Verbindung tunnelt, transportiert DNScat analog zu netcat nur einen rohen, bidirektionalen Datenkanal übers Netz.

Ron Bowes hat das nun für Linux und Windows mit einer Kommandozeilen-Shell kombiniert und diesen Shellcode so verpackt, dass man ihn komfortabel in Exploits einbauen kann. Selbst eine Metasploit-Payload hat er gebastelt. Allerdings hat heise Security den Code bislang nicht ausprobiert – falls jemand seine Funktionstüchtigkeit bestätigen kann, freuen wir uns über einen Hinweis an red@heisec.de

Siehe dazu auch

(ju)