beebright - stock.adobe.com
Was ist eigentlich DNS-Tunneling?
Beim DNS-Tunneling nutzen Angreifer das DNS-Protokoll, um heimlich mit dem Zielrechner zu kommunizieren. Wie groß ist die Bedrohung und wie kann man die Anfälligkeit erkennen?
Das Domain Name System (DNS) ist einer der wichtigsten Dienste in vielen IP-basierten Netzwerken und stellt eine Art Telefonbuch für das Internet dar. DNS verfügt auch über ein einfaches Protokoll, mit dem Administratoren die Datenbank eines DNS-Servers abfragen können.
Irgendwann kamen Hacker auf die Idee, dass sie heimlich mit einem Zielrechner kommunizieren könnten, indem sie Befehle und Daten in das DNS-Protokoll einbrächten. Diese Idee ist das Herzstück von DNS-Tunneling und verwandelt das Domain Name System in ein wirkungsvolles Hacking-Instrument.
Wie arbeitet DNS-Tunneling?
Im Internet gibt es für alles ein Protokoll, und DNS unterstützt ein ziemlich einfaches Abfrage-Antwort-Protokoll. Um zu sehen, wie das funktioniert, kann man beispielsweise nslookup nutzen und auf diese Weise eine bestimmte Adresse nachschlagen, indem man einfach den Domainnamen eingibt.
Wir sehen, dass das Protokoll geantwortet hat, in diesem Fall mit der IP-Adresse der Domain. In der Sprache des DNS-Protokolls wurde hier eine Adresse oder eine „A“-Abfrage durchgeführt.
Es gibt noch weitere Abfragen, bei denen das DNS-Protokoll mit verschiedenen Datenfeldern antwortet, die, wie wir bald sehen werden, von Hackern ausgenutzt werden können. Das DNS-Protokoll überträgt also die Anfrage an den Server und die Antwort an den Client.
Was passiert nun aber, wenn ein Hacker eine Nachricht in eine DNS-Abfrage schreibt? Anstatt beispielsweise eine legitime URL einzugeben, könnte man Daten eingeben, die man exfiltrieren will. Das könnte dann so aussehen wie in Abbildung 2.
Wenn nun Angreifer die Kontrolle über den DNS-Server haben, können sie auf diese Weise Daten abfließen lassen, ohne dass sie dabei unbedingt entdeckt werden, denn in aller Regel wird davon ausgegangen, dass DNS-Anfragen legitim sind.
Hacker können auch Antworten fälschen und Daten an das Zielsystem zurücksenden. Dies ermöglicht es ihnen, Nachrichten, die in verschiedenen DNS-Antwortfeldern versteckt sind, an die Malware zu übermitteln, die sie auf den Computer des Opfers geladen haben – etwa in bestimmten Ordner zu suchen.
Das „Tunneling“ besteht darin, die Daten und Befehle zu verschleiern, um eine Erkennung durch die Überwachungssoftware zu vermeiden. Hacker können base32, base64 oder andere Zeichensätze verwenden oder sogar die Daten verschlüsseln. Diese Kodierung würde an einer einfachen Erkennungssoftware vorbeikommen, die nur nach Klartextmustern sucht.
Welche Bedrohungen ergeben sich nun aus dieser Technik?
Datenexfiltration: Hacker schleusen sensible Daten über DNS aus. Es ist sicherlich nicht der effizienteste Weg, Daten vom Computer eines Opfers zu erhalten, da es einigen zusätzlichen Aufwands und Codierung bedarf, aber es kann funktionieren und ist sehr unauffällig.
Command and Control (C2): Hacker verwenden das DNS-Protokoll, um einfache Befehle an einen Remote Access Trojaner (RAT) zu senden.
IP-Over-DNS Tunneling: Auch wenn die Idee absurd klingen mag, gibt es Dienstprogramme, die den IP-Stack auf dem DNS-Abfrageantwortprotokoll implementiert haben. Das macht den Datentransfer mit Standard-Kommunikationssoftware wie FTP, Netcat, SSH, etc. relativ einfach und gibt Angreifern ein sehr wirkungsvolles Tool in die Hand.
„Angreifer, die DNS-Tunneling nutzen, erzeugen in aller Regel zusätzlichen Traffic auf dem Server, der nachgewiesen werden kann.“
Klaus Nemelka, Varonis
---
Der DNS-Missbrauch lässt sich im Wesentlichen auf zwei Arten erkennen. Zum einen durch die Payload-Analyse: Hier untersuchen die Sicherheitsteams, ob ungewöhnliche Daten hin und her geschickt werden, seltsame Hostnamen, ein DNS-Datensatz, der nicht allzu oft verwendet wird, oder ungewöhnliche Zeichensätze, die durch statistische Techniken erkannt werden können.
Zum anderen durch die Analyse des Traffics: Hier wird die Anzahl der Anfragen an eine DNS-Domain mit der durchschnittlichen Nutzung verglichen. Angreifer, die DNS-Tunneling nutzen, erzeugen in aller Regel zusätzlichen Traffic auf dem Server, der nachgewiesen werden kann.
Nützliche Tools
Um herauszufinden, wie das eigene Unternehmen gegen DNS-Tunneling gewappnet ist, kann man mit den folgenden Tools eigene Penetrationstests durchführen
- Iodine ist auf vielen Plattformen verfügbar (Linux, Mac OS, FreeBSD und Windows). Mit der Software kann man eine SSH-Shell zwischen dem Ziel und dem Route-Computer einrichten.
- OzymanDNS: Dan Kaminskys DNS-Tunneling-Projekt, geschrieben in Perl.
- DNSCat2: Erstellt einen verschlüsselten C2-Kanal, über den man unter anderem Dateien hoch- und herunterladen oder eine Shell ausführen kann.
Und für den Fall, dass – je nach Sichtweise – der Penetrationstest erfolgreich war und die eigenen Systeme die DNS-Aktivitäten nicht aufspüren konnten, hier noch zwei Erkennungs-Tools:
- dnsHunter: Ein Python-Modul geschrieben für das Mercenary Hunt Framework und Mercenary-Linux, welches pcap-Dateien liest, um DNS-Abfragen zu extrahieren. Zudem führt es Geo-Lookups durch, was bei Analysen hilft.
- reassemble_dns: Liest pcap-Dateien, extrahiert DNS-Nachrichten und schreibt sie in eine Datei. IP-Fragmente und TCP-Streams können so wieder zusammengesetzt werden.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.