Rogue Proxies - Die unterschätzte Gefahr
Workshop: SSL Stripping erkennen und bekämpfen - Teil 1: Grundlagen und Hintergründe
Der MITM-Angriff auf ungesicherte Verbindungen
Das frühe Ethernet war ein Paradies für unbefugte Zuhörer: Die damaligen Hubs versandten jedes Paket blind an jedes Interface im Netzwerk. So konnten alle Teilnehmer völlig unbemerkt mitschneiden, was gesendet wurde. Wollte man die Kommunikation jedoch manipulieren, war ein direkter Zugriff erforderlich - der MITM-Angriff war geboren. Mit dem Umstieg der meisten Netze auf geswitchte Verbindungen, die Pakete nur noch selektiv weiterreichen, gewann er weiter an Bedeutung.
Wie der Name schon sagt, begibt sich der Angreifer bei MITM-Attacken als Zwischenstelle in die Verbindung zweier Interfaces. Dies kann auf verschiedenen Wegen erfolgen. Sieht man von Vor-Ort-Methoden ab - man könnte den Rechner schlicht mit zwei Netzwerkkarten ausstatten und ihn im abzuhörenden Kabel einbauen -, ist ARP Spoofing oder Poisoning sicherlich die einfachste und bekannteste Methode, diese Position zu erreichen.
Das ARP ist für die Auflösung von Adressen des OSI Layer 3 (IP-Adressen) auf solche des Layer 2a (MAC-Adressen) zuständig. Da Letztere theoretisch eineindeutig sind, ermöglichen sie den beteiligten Interfaces, einander zweifelsfrei zu erkennen. Weil ARP diese Auflösung allerdings mit Broadcasting erreicht, kann jeder Empfänger der Nachricht antworten - auch mit gefälschten Informationen. Selbst das ungefragte Versenden von Antworten ist möglich, denn die eingehenden Zuordnungsdaten werden von vielen Systemen akzeptiert.
- Opfer: Unvergifteter ARP Cache
Hier ist alles noch in Ordnung: Die MAC des Routers liegt beim Opfer. In dessen ARP Cache werden die IP-Adressen der einzelnen Rechner den komplexeren MACs zugeordnet. Das ändern wir nun. - Spoofer: Aktivierung des Forwarding
Zunächst aktiviert der Angreifer Forwarding, um alle Pakete transparent an ihr eigentliches Ziel weiterzugeben. Der erste Befehl wäre mit ettercap eigentlich nicht nötig, andere Tools brauchen ihn aber. - Spoofer: Start von Ettercap
Der MITM-Angriff wird mit ettercap eingeleitet, nötigenfalls als root. Der Switch -G aktiviert die GTK-Oberfläche. Auch eine textbasierte Variante existiert. Für einfache Angriffe wie unseren würde übrigens auch das Kommandozeilentool arpspoof reichen. - Spoofer: Einrichtung des Sniffing
Der Sniffer wird angewiesen, unsere Netzwerkkarte abzuhören. Da nur ein Interface verbaut ist, bleibt nur "Unified Sniffing". Hätten wir eine zweite Karte, könnte auch das viel unauffälligere "Bridged Sniffing" gewählt werden. - Spoofer: Nach Computern im lokalen Netz suchen
Per Scan macht sich das Programm mit dem lokalen Netz vertraut. Alternativ kann man die Ziele auch manuell eingeben. - Spoofer: Gefundene Rechner
Wie zu erwarten war, sind die beiden anderen Rechner schnell gefunden. Sie werden nun Zielgruppen zugewiesen. - Spoofer: Rechner auf Liste der Ziele
Üblicherweise landet der Router in einer, die wirklichen Opfer in der anderen Gruppe. Hier fällt die Auswahl leicht. - Spoofer: MITM-Angriff initiieren
ARP Poisoning ist die einfachste Methode, sich in eine Verbindung einzuhängen. In ungesicherten Netzen wie unserem Testnetz reicht sie völlig aus. - Opfer: Vergifteter ARP Cache
Ein voller Erfolg: Der ARP Cache des Opfer hält nun die MAC des Angreifers statt die des Routers vor. Sämtliche Pakete werden umgeleitet. Beim Angreifer übernimmt ettercap das Paket und schickt es an seine Zieladresse weiter. - Spoofer: Wireshark starten
Die Verbindung kann beispielsweise mit Wireshark abgehört werden. Den bekannten Paketsniffer lassen wir auf der Netzwerkkarte des Angreifers lauschen. Im Normalbetrieb greift er alles ab, was hier abläuft. Dies wäre auch mit ettercap möglich, Wireshark ist allerdings um Welten umfangreicher. - Spoofer: Ungefragte ARP Replies
Hier wird das Prinzip schnell deutlich: Niemand fragt nach der MAC der beiden Rechner - und wir senden trotzdem eine Broadcast-"Antwort" mit unserer Adresse. Fast alle Systeme übernehmen diese unkritisch. - Spoofer: Echte Replies überschreiben
Auch Antworten, mit denen die tatsächlichen Inhaber der IP auf eine Anfrage reagieren, überschreiben wir schnell wieder mit der falschen MAC. So gehen uns maximal einige wenige Pakete verloren. - Spoofer: Normaler Traffic
Das Opfer bekommt von alledem nichts mit. Hier installiert es gerade einige Softwarepakete - und der Angreifer liest jedes Bit mit. Der größte Teil des Internetverkehrs läuft in diese Weise ab - entsprechend viele Informationen können Angreifer so gewinnen. - Opfer: Einleitung von AUTH PLAIN
Gefährlich wird dies allerdings erst, wenn sensible Daten in Gefahr geraten. Hier loggt sich das Opfer unverschlüsselt auf einem Dummy-Mailserver ein. Dieser akzeptiert jedes achtstellige Passwort und richtet Mailadressen automatisch ein, wir haben die metaphorischen Hosen also anbehalten. - Spoofer: AUTH PLAIN in Wireshark
Der Angreifer hat keine Probleme, das Login auszulesen. Das Opfer weiß davon nichts - ändert es sein Passwort also nicht regelmäßig, hat der Angreifer unbegrenzten Zugriff auf alle Mails. Wird das Kennwort zudem noch bei anderen Diensten verwendet - etwa gar mit der hier abgehörten Mailadresse -, steht der Abgehörte vor großen Problemen. - Spoofer: AUTH PLAIN in Ettercap
Wem das noch zu kompliziert ist, für den bringt ettercap selbst unter Start -> Start Sniffing einen komfortablen Login-Filter mit. Das Programm bietet noch eine große Menge von weiteren Funktionen und Plugins dieser Art. Deren Anwendung würde allerdings den Rahmen dieses Workshops sprengen. - Opfer: Facebook-Login
Hier stoßen wir mit dieser Methode allerdings an unsere Grenzen: Das Facebook-Login erfolgt verschlüsselt. Bei diesem speziellen Account wurde zudem noch aktiviert, dass die restliche Verbindung kodiert werden soll. Dies kann beispielsweise durch Browser-Plugins wie "HTTPS Everywhere" erzwungen werden. - Spoofer: SSL-Verbindung mit Facebook
Der Angreifer kann nur beobachten, wie die Verbindung von einem Moment auf den anderen vom lesbaren HTTP ins verschlüsselte HTTPS wechselt. Hier ist nichts mehr zu holen. - Opfer: Facebook entsichern
Normalerweise erfolgt nur das Login verschlüsselt - und das im Hintergrund. Der Nutzer sieht also wie bei vielen Webseiten gar nicht, wenn Sicherheitsmaßnahmen brechen. Die SSL-Verbindung für die restliche Datenübertragen schalten wir hier kurz für einen Exkurs ab und loggen uns neu als Opfer ein. - Spoofer: Session Cookie abgreifen
Nach dem verschlüsselten Login muss das Opfer noch für den Server erkennbar sein. Dafür erhält es einen "Session Cookie". Den stiehlt der Angreifer hier, indem er den Datenstrom nach dem entsprechenden Text durchsucht und schlicht den unverschlüsselten Cookie-Text kopiert. - Spoofer: Session Cookie injizieren
Ein kleines Greasemonkey-Skript reicht aus, und der Cookie ist im Browser des Angreifers injiziert. - Spoofer: Facebook-Session gestohlen
Noch ein Druck auf F5, und wir sind angemeldet - ohne Login. Dies nennt sich "Session Stealing", und die Methode funktioniert auch bei ernstzunehmenden Seiten. Ein weiterer, guter Grund für SSL.
Überflutet man also das Netz mit gefälschten ARP-Anworten, so erreicht man, dass statt der MAC-Adresse des eigentlichen Inhabers der IP die des angreifenden PCs angesprochen wird. Auf der Seite des ursprünglichen Gegenübers erfolgt das Gleiche, sodass nun beide Rechner an den Angreifer senden statt an ihren Partner. Dieser braucht die Pakete nur noch jeweils durchzustellen - nachdem er sie gründlich betrachtet oder abgeändert hat. So fängt man beispielsweise eine Verbindung zwischen Desktop und Internet-Gateway ab, um nicht verschlüsselte Passwörter oder auch Session Cookies unauffällig abzugreifen.