Der Angreifer im eigenen Netz – Man In The Middle

In meinem Studium beschäftige ich mich unter Anderem mit dem Themen Netzwerke und Sicherheit. Zum Verständnis und auch zum entwickeln und testen von Abwehrmethoden ist es wichtig, auch die „böse“ Seite zu beherrschen. Meine Beiträge zu diesem Thema sollen dazu dienen, aufzuzeigen, wie einfach es ist, abgehört oder „gehackt“ zu werden, wenn man sich nicht richtig schützt. Ich lege jedem Leser wärmstens ans Herz, dass es sich bei den hier beschriebenen Methoden um Straftaten handelt, sollte man sie ohne Einverständnis des Abgehörten anwenden. Das erste Thema hierzu wird der sog. Man-in-the-middle-Angriff sein.

Bei einem MITM-Angriff schaltet sich der Angreifer zwischen die beiden Kommunikationspartner Alice und Bob (das sind zwei typische Namen, wenn es um die Kommunikation zweier Compuer geht, die hab ich mir nicht ausgedacht 😀 ) und gibt vor, der jeweils Andere sein. In der hier beschriebenen Form kann der Angriff im eigenen LAN sehr leicht nachgestellt werden. Dabei wird die Schwäche des ARP-Protokolls (Address Resolution Protocoll) ausgenutzt, dass bei der Lernphase, welche IP zu welcher MAC-Adresse ghehört, keine Authentizität der Kommunikationspartner überprüft wird. So kann sich der Angreifer Alice gegenüber einfach als Bob ausgeben und umgekehrt. Unter Linux gibt es dafür das Programm „arpspoof“. Es broadcastet einfach die eigene MAC-Adresse mit der eingegebenen IP in das Netzwerk und alle anderen Rechner nehmen diese neue Verknüpfung in ihre interne ARP-Tabelle auf.

In unserem Beispiel hat Alice die IP 192.168.42.10 und Bob 192.168.42.11, der Angreifer sitzt im selben LAN mit der IP 192.168.42.12. Der Angreifer führt folgende Befehle aus:

arpspoof -i eth0 -t 192.168.42.10 192.168.42.11
arpspoof -i eth0 -t 192.168.42.11 192.168.42.10

Jetzt senden beide ihre Pakete an den Angreifer, statt den eigentlichen Kommunikationspartner. Damit die Pakete richtig zugestellt werden und die Datenumleitung nicht auffällt, muss der Angreifer die Pakete auch weiterleiten bzw. routen. Dafür muss ip.forward auf 1 gesetzt werden. Im einfachsten Fall geht das mit folgendem Befehl (gilt für Ubuntu/Debian, bei anderen Derivaten ggf. abweichend):

ip_forward 1 zB: echo '1' > /proc/sys/net/ipv4/ip_forward

Damit sitzen wir zwischen den zwei Opfern und sämtlicher Datenverkehr läuft durch unseren Computer und kann analysiert werden. An dieser Stelle ergeben sich verschiedene weitere Vorgehensweisen. Eine Möglichkeit ist es, einfach sämtlichen Datenverkehr aufzuzeichnen, um ihn später auszuwerten. Dies ist einfach mit dem Netzwerk-tool tcpdump möglich:

tcpdump -p -s0 -w tcpdump.cap -i eth0

Die so erzeugte Datei tcpdump.cap kann später mit anderen Programmen analysiert werden. Dies kann aber auch gleich geschehen. Dafür stelle ich kurz ein paar Programme aus der dsniff-suite vor.

Driftnet

Driftnet fischt aus dem Datenstrom Grafiken, wie *.jpg oder *.gif und zeigt diese in einem Fenster auf dem Desktop des Angreifers an. Für die Ausführung werden (wie auch alle folgenden Programme) root-Rechte benötigt:

driftnet -i eth0

Ein weiterer Blick in die Man-Files zeigt, dass auch unser aufgezeichneter Traffic damit analysiert und die Grafiken abgespeichert werden können. Dieses Vorgehen gilt auch für alle anderen Programme der dsniff-suite.

Dsniff

Der Namensgeber der Programmsammlung ist ein mächtiger Datenschnüffler, der aus dem Datenstrom sämtliche unverschlüsselten Login-Daten herauspickt. Beispiele dafür sind FTP, Telnet, SMTP, HTTP, POP, IMAP, SNMP, LDAP,  Rlogin,  PPTP  MS-CHAP, NFS, Microsoft SMB oder Microsoft SQL protocols. Spätestens an dieser Stelle sollte einem bewusst werden, wie sehr auch schon im eigenen Netz auf Sicherheit und verschlüsselte Verbindungen wie HTTPS geachtet werden sollte.

dsniff -i eth0

URLsnarf

Wie der Name schon vermuten lässt, analysiert dieses Programm durchlaufenden Traffic oder cap-Files auf URL-Adressen und gibt diese aus. In Ergänzung mit driftnet kann man sich so ein sehr gutes Bild machen, auf welchen Seiten das Opfer surft und mit Hilfe von dsniff können Login-Daten solcher Webseiten abgegriffen werden.

urlsnarf -i eth0

MailSnarf

Verschickt das Opfer eine Mail über einen unverschlüsselten Kanal mit Programmen, wie Outlook oder Thunderbird, kann diese einfach mit dem Programm MailSnarf abgefangen und gespeichert werden.

mailsnarf -i eth0

Doch auch gesicherte Verbindungen wie HTTPS alleine reichen nicht aus. Mit etwas mehr Aufwand können auch hier HTTPS-Proxies aufgesetzt werden, welche die Verschlüsselung unbrauchbar machen. Hierfür stellt dsniff das Tool webmitm zur Verfügung. Für ssh-Verbindungen gibt es das Programm sshmitm.

Wie kann ich mich schützen?

Wie immer gilt: einen 100 prozentigen Schutz wird es nie geben. Grundsätzlich sollte man als Betreiber seines eigenen Heimnetzes zu Hause jedoch immer im Auge behalten, wer im eigenen Netz online ist. Für Gäste lässt sich z.B. in einer Fritz-Box sowohl ein Gast-LAN als auch extra WLAN für Gäste einrichten, das getrennt vom einen Netz ist. Beim Stichwort WLAN sollte jedem klar sein, dass ein unverschlüsseltes WLAN grob fahrlässig ist und auch die WEP-Verschlüsselung in Minuten geknackt werden kann (dazu später ein anderes Tutorial). Einzig und allein WPA2 sollte mit einem Passwort verwendet werden, das länger als 10 Stellen ist und nicht aus einfachen Wörtern wie „MeinHeimnetz“ zusammengesetzt wird.

Zur Erkennung von MITM-Angriffen im eigenen Netz kann man einen einfachen Test machen. Unter Windows klickt man auf Start und gibt im Suchfenster „cmd“ ohne Anführungszeichen ein und bestätigt. In der folgenden Konsole genügt der Befehl „arp -a“ um die ARP-Tabelle des Computers anzuzeigen. Die MAC-Adresse besteht aus 6 Hex-Blöcken (zB 1c:4b:d6:20:11:24). Jeder MAC-Adresse ist im Normalfall nur eine IP zugeordnet. Sollte eine MAC-Adresse 2x vorkommen, ist dieser PC mit hoher Wahrscheinlichkeit ein MITM-Angreifer.

Desweiteren sollte man, sofern möglich, verschlüsselte Verbindungen nutzen. Das gilt für Mail-Programme (fast jeder Anbieter bietet SSL-Verschlüsselte Verbindungen für den Zugriff an), Webseiten (HTTPS statt HTTP bei einem login, wenn möglich) oder Dateiserver (FTP ist leider häufig die einzige Methode, es gibt aber vermehrt auch die Möglichkeit, sich über FTPS einzuloggen).

Für größere Netze gibt es zusätzlich noch die Möglichkeit, mit Hilfe von Subnetting und ACLs Regeln im Netz zu definieren, damit Angreifer gar nicht erst an andere PCs oder zumindest sicherheitskritische Netzteile gelangen können.

Sicherlich gibt es noch weitere Möglichkeiten, aber dies sind erstmal ein paar Grundsätze. Wenn Ihr meint, dass ich noch ein paar wichtige Methoden zum Schutz vergessen habe, die unbedingt erwähnt werden müssten, schreibt mir einfach ein Kommentar oder Mail 😉

Stay Tuned – Støertebeker

Veröffentlicht unter Linux, Netzwerk, Security/Hacking

Schreibe einen Kommentar