seeseekey.net - Invictus Deus Ex Machina

Möchte man zu einer Domain die IP-Adresse und weitere DNS-Informationen ermitteln kann man unter Windows das Tool nslookup nutzen. Ein einfacher Aufruf sieht dabei so aus:

nslookup example.com

Hierbei wird der DNS-Server genutzt welcher an dem genutzten Rechner eingestellt ist. Allerdings kann auch ein abweichender Server definiert werden. Dazu muss nach der abzufragenden Domain der gewünschte DNS-Server angegeben werden:

nslookup example.com 8.8.8.8

In diesem Fall wird der Google eigene DNS-Server mit der IP 8.8.8.8 genutzt. Die Antwort auf diese Anfrage sieht exemplarisch so aus:

Nicht autorisierende Antwort:
Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Name:    example.com
Addresses:  2606:2800:220:1:248:1893:25c8:1946
          93.184.216.34

Vor einigen Tagen wollte ich auf die Schnelle überprüfen ob ein bestimmter Mailserver auf einer Spamblacklist steht. Genutzt habe ich dabei den Webdienst MXToolBox. Bei der MXToolBox handelt es sich um einen Webdienst, welcher unterschiedliche Tools für die Überprüfung und Diagnose von Mailservern bereitstellt.

mxtoolbox.com

mxtoolbox.com

Das fängt bei Werkzeugen für die Blacklist-Überprüfung an und erstreckt sich über Tests der Mailserverkonfiguration bis zur Überprüfung der DNS auf entsprechende Probleme. Der Dienst – welcher unter mxtoolbox.com zu finden ist – kann dabei frei genutzt werden. Für erweiterte Funktionen wie die regelmäßige Blacklistüberprüfung wird ein (je nach Anforderungen; kostenpflichtiger) Account benötigt.

Wenn man einen Server betreibt oder bei IT-Problemen zur Stelle ist wird man früher oder später mit dem Domain Name System, kurz DNS zu tun haben. Das DNS löst dabei Namen wie z.B. die Domain seeseekey.net zur passenden IP-Adresse (im aktuellen Fall: 138.201.85.250) auf. Unter Linux und Mac OS X gibt es für die Abfrage von DNS-Servern das Tool dig. Der domain information groper kann dabei im einfachsten Fall so genutzt werden:

dig seeseekey.net

Damit werden die DNS-Informationen der Domain ermittelt und ausgegeben. Die Anfrage richtet sich dabei an den lokalen DNS-Server. Möchte man die Informationen von einem anderen Server abrufen, so ist dies mit dig ebenfalls möglich:

dig @213.133.98.98 seeseekey.net

Die IP-Adresse 213.133.98.98 ist die Adresse des DNS Servers, welcher für die Abfrage genutzt wird. Die Antwort sieht für den Fall von seeseekey.net so aus:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> seeseekey.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15428
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;seeseekey.net.                 IN      A

;; ANSWER SECTION:
seeseekey.net.          59795   IN      A       138.201.85.250

;; AUTHORITY SECTION:
seeseekey.net.          59795   IN      NS      robotns3.second-ns.com.
seeseekey.net.          59795   IN      NS      ns1.first-ns.de.
seeseekey.net.          59795   IN      NS      robotns2.second-ns.de.

;; Query time: 3 msec
;; SERVER: 213.133.98.98#53(213.133.98.98)
;; WHEN: Tue Aug 30 09:12:35 CEST 2016
;; MSG SIZE  rcvd: 156

Viele Netzwerke, wie z.B. öffentliche WLAN-Zugänge lassen Verbindung ohne Authentifikation zu. Nachdem man sich mit dem Netzwerk verbunden hat, muss man sich meist auf einem sogenannten Captive Portal anmelden. Dabei handelt es sich um eine Vorschaltseite, welche einem beim Aufruf einer Webseite angezeigt wird und der Anmeldung bzw. Identifizierung dient. Bei vielen dieser Netzwerken funktioniert die Kommunikation über das DNS-Protokoll ohne weitere Probleme (trotz Captive Portal) und Authentifikation, so das man diese nutzen kann um einen Tunnel ins freie Internet zu errichten.

code.kryo.se/iodine/

code.kryo.se/iodine/

Eine Lösung um einen solchen DNS Tunnel einzurichten ist iodine. Mit iodine ist es möglich IPv4-Verkehr über DNS zu tunneln. Pro DNS-Request können dabei bis zu einem Kilobyte an Daten übertragen werden, was sich positiv auf die Performance und den Durchsatz auswirkt. iodine läuft dabei auf vielen unixodien Systemen, sowie unter Windows. Lizenziert ist iodine unter der ISCL und damit freie Software. Der Quelltext ist auf GitHub zu finden.

Wenn man einen XMPP-Server unter einer Subdomain wie “xmpp.example.org” betreibt, so sehen die Kontakte dementsprechend aus – in diesem Fall “kontakt@xmpp.example.org”. Möchte man Kontakte nach dem Schema “kontakt@example.org” anlegen, so muss der DNS Eintrag der Hauptdomain auf den XMPP-Server zeigen. Dies ist aber nicht immer möglich. So kann es vorkommen das der Webserver auf der Hauptdomain seinen Dienst verichtet, während der XMPP-Server auf einem anderen Server läuft. In einem solchen Fall kann man sich das ganze mit “SRV” Einträgen im DNS zurechtzubiegen.

_jabber._tcp             IN SRV     0 0 5269 xmpp.example.org.
_xmpp-client._tcp        IN SRV     0 0 5222 xmpp.example.org.
_xmpp-server._tcp        IN SRV     0 0 5269 xmpp.example.org.

Mit diesen Einträgen ist es dann möglich den XMPP Server unter “example.org” zu betreiben, obwohl der A-Record auf einen anderen Server zeigt, da der anfragende Client umgeleitet wird.

Neulich tauchten im Log DNS Zugriffe auf die URLs “blackhole-1.iana.org” und “blackhole-2.iana.org” auf. Da ich bisher immer davon ausging das die Schwarzen Löcher dieser Welt im CERN gelagert werden, machte mich das ganze natürlich etwas stutzig.

Laut der IANA handelt es sich bei den Blackhole Servern um einen obskuren Teil der Internet Infrastruktur. Die Server gehören dabei zum DNS System und beantworten “inverse queries” (auch bekannt als Reverse Lookup) der in der RFC 1918 definierten privaten IP Bereiche. Wieder ein Mysterium der Welt gelöst 😉

Weitere Informationen gibt es unter:
http://www.iana.org/abuse/answers
http://tools.ietf.org/html/rfc6305
http://www.nwlab.net/art/blackhole/blackhole-1.iana.org.html