VPN Betreiber Internet Verkehr mitlesen?

4 Antworten

auf einer TLS/HTTPS Seite kann der Datenverkehr nicht mitgelesen werden, auch nicht auf welcher Seite du gerade bist.

Es gibt zwar Mittel und Wege das herauszubekommen (z.B. welche Domain per DNS angefragt wurde) aber auch wenn ein mitlesen des Traffic technisch prinzipiell zwar möglich wäre (allerdings nur in der entsprechend präperierten Umgebung mit MITM) im privaten Umfeld eher unwahrscheinlich, in größeren Unternehmen aber durchaus nicht selten dass Corporate Proxy geschaltet sind.

Mark Berger  06.08.2022, 11:49

Nein - ich brauche dir nur meinen DNS anbieten und dann die Auflösung der Domains manipulieren. Dann biete ich dir meinen Server statt zB Gmail.com an, biete dir ein Let's Encrypt Zertifikat damit du gültiges SSL siehst und im Hintergrund kann ich alles mitlesen und an den eigentlichen Server schicken. (MITM-Angriff)

Das geht in jedem Netzwerk recht einfach.

Gut als gute alte SSLstrip war noch etwas einfacher aber das klappt heute nicht mehr. Die Grundidee ist aber gleich geblieben - nur die Umsetzung hat sich verändert!

Wenn es also einer darauf anlegt kann er das in jedem von ihm angebotenen WLAN oder VPN machen. (Wird eine seröse Firma aber sicher nicht machen!)

Daher ist zB automatische Konfiguration per DHCP mit Vorsicht zu genießen!

1
lordrvn  06.08.2022, 19:58
@Mark Berger

Das wäre allerdings ein Angriff von innerhalb des privaten Netzwerks, hier ging es um einen von extern.
Und du musst für das Let's encrypt Zertifikat noch irgendwie nachweisen dass du der rechtmäßige Domaininhaber bist damit du ein Zertifikat erhältst.

0

Theoretisch ja. Die Umsetzung ist nicht ganz trivial aber machbar wäre es. Eine seröse Firma würd dies aber nicht machen!

Wenn du einen kostenlosen russischen Anbieter nutzt, kann das aber durchaus sein ;-)

Eine mögliche Umsetzung wäre folgende:

Ich biete dir mit DHCP die automatische Konfiguration der IP, DNS, ... an. Der DNS-Server ist dazu da die Domain (zB gmail.com) zu einer IP-Adresse aufzulösen. Nutzt du meinen DNS-Server, kann ich bestimmen welche IP dir genannt wird.

Nun kann ich dich auf meinen Server leiten der sich als gmail.com ausgibt und im Hintergrund mit dem eigentlichen gmail.com Server in deinem Namen kommuniziert (MITM - Man in the middle).

Für gmail.com bin ich du und für dich bin ich gmail.com...

Sowas wäre aber über mindestens zwei Dinge zu erkennen:

  1. Das Zertifikat was ich dir anbiete würde nicht auf Google laufen und wahrscheinlich von Lets Encrypt stammen.
  2. Die IP-Adressen die dir genannt werden, würden nicht zum Google-Netzwerk gehören. Du würdest diese zB im DNS-Cache sehen.

Daher sind kostenlose WLAN-Hotspots auch nicht der geeignete Ort für Online-Banking obwohl die Bank-Webseite verschlüsselt wäre. Ein VPN ist da auch nicht anders...

Daher sollte man auch Zertifikate genauer ansehen, etc.

Woher ich das weiß:Berufserfahrung

Nein, sie lesen nur den TLS-Verkehr. Was da drin steht, das ist weiterhin geschützt.

Lamanini  06.08.2022, 13:17
@Mark Berger

Das steht und fällt ja alles mit dem, was du in einem Nebensatz erwähnst: Ob du ein Zertifikat für "gmail.com" bekommst, welches mein System als valide einschätzt. Sicher, wenn du eine der Stellen mit absolutem Vertrauen kontrollierst, geht das.

Aber wenn du das tust, hab ich ganz andere Probleme als mein VPN-System. Wenn du das nicht tust, gibt es in meinem System auch kein Problem.

Und letztendlich kriegst du halt einfach kein Zertifikat auf "gmail.com" ausgestellt. Wenn du jetzt sagst dass das doch geht, kann ich das und den privaten Schlüssel mal sehen?

0
Mark Berger  06.08.2022, 13:28
@Lamanini
Ob du ein Zertifikat für "gmail.com" bekommst, welches mein System als valide einschätzt.

Natürlich nicht aber ich bekomme ein Let's Encrypt Zertifikat und wenn du nur auf das Bogenschloss achtest und nicht das Zertifikat genauer ansiehst dann klappt der Angriff...

Notfalls kann ich da auch noch eine Umleitung von www.gmail.com zu wwvv.gmail.com einbauen um HSTS zu umgehen, etc.

MITM ist in Zeiten von HSTS und flächendeckendem Einsatz von HTTPS nicht mehr so trivial aber auch nicht unmöglich. Darauf will ich hinaus.

Es gibt da versch. Ansätze die möglich sind.

Und letztendlich kriegst du halt einfach kein Zertifikat auf "gmail.com" ausgestellt.

Stimmt - und wie viele User schauen sich jedes Zertifikat jeder Webseite die sie besuchen an? Genau so ca. 0,1% wenn überhaupt ;-)

0
Lamanini  06.08.2022, 13:54
@Mark Berger

Nein, du kriegst auch keins von Lets Encrypt. Die vergeben die ja auch nicht zufällig an jeden der fragt, sondern du musst den Besitz dieser Domain durch Challanges nachweisen.

0
Mark Berger  06.08.2022, 14:03
@Lamanini

Ja klar - und? Eine Domain zu besitzen ist ja so schwer... Ja ich bekomme keines für gmail.com aber das brauche ich auch nicht!

Das Zertifikat ist das geringste Problem - dem Opfer das unterzuschieben ist das Problem...

Kannst dich gern per PM melden dann suche ich dir die Tage ein paar Artikel raus wenn ich Zeit habe. Wie gesagt ist nicht SSLstrip oder Bettercap sondern deutlich aufwendiger aber machbar.

Der einfachste Ansatz wäre eine Umleitung + random String der dann so lange ist, dass die eigentliche Domain gar nicht mehr in der URL-Ziele sichtbar wäre.

Dann gäbe es Domains mit russischem a statt deutschem a, usw.

0
Lamanini  06.08.2022, 14:30
@Mark Berger
Natürlich nicht aber ich bekomme ein Let's Encrypt Zertifikat

Darum geht es mir. Du kriegst keins. Nicht für eine valide andere Domain, die du nicht kontrollierst.

Ja ich bekomme keines für gmail.com aber das brauche ich auch nicht!

Doch. Alles was du schreibst baut auf dem Verfahren auf, dich zwischen beide Parteien zu stellen. Aber um dich dazwischenzustellen musst du dich beiden gegenüber identifizieren können. Und zwar als der jeweils andere.

Um das für einen Server zu erreichen musst du ein valides Zertifikat haben, was dich als dieser Server ausweist. Das kannst du nicht. Darauf baut die gesamte Infrastruktur auf.

Eine Domain zu besitzen ist ja so schwer...

Ich weiß nicht was du meinst. Du kannst dir natürlich eine andere Domain kaufen. Aber nicht eine schon exisitierende.

Der einfachste Ansatz wäre eine Umleitung

Aber dafür brauchst du doch bereits alles, was du bräuchtest, um eine Seite zu ersetzen.

0
Mark Berger  06.08.2022, 14:51
@Lamanini
mb@DDFORENSICS1:/mnt/d$ tail /etc/hosts
192.168.1.2     gmail.com

mb@DDFORENSICS1:/mnt/d$ curl -I gmail.com
HTTP/1.1 302 Found
Date: Sat, 06 Aug 2022 12:44:32 GMT
Server: Apache
Location: https://hackenlernen.com
Connection: close
Content-Type: text/html

Wo ist nun das Problem?

Habe die /etc/hosts anstatt eines DNS benutzt und dann kann ich natürlich auf alles weiterleiten was ich will - also auch auf entsprechend ähnlich klingende / aussehende Domains.

Und ja, ist nur ein POC und nicht sehr ausgefeilt. Wie gesagt es gibt viel elegantere Ansätze.

DNS + DHCP ist nicht zu unterschätzen!

Die wenigsten tippen https:// explizit ein aber auch da gibt es ein paar Kunstgriffe um da zumindest bei einigen Seiten herumzukommen...

0
Mark Berger  06.08.2022, 14:58
@Lamanini

Auf meiner Seite kann ich dann wieder alles mögliche tun von HTTP-Traffic einfach loggen, ev. umschreiben und weiterleiten (Python MITM) oder den empfangenen Quellcode zu verändern (Links- und dergleichen umschreiben).

Das kannst du dir als Softwareentwicklerin gern selber basteln. Sollte nicht allzuviel Aufwand sein. Der exzessive Einsatz von JS auf modernen Webseiten macht das nicht gerade leichter aber unschaffbar ist es auch nicht :-)

0
Lamanini  06.08.2022, 15:02
@Mark Berger

Ich glaub wir reden einfach aneinander vorbei. Ich versuch nochmal genau zu spezifizieren, was ich sagen möchte.

Es ist absolut möglich durch Kontrolle eines DNS-Servers falsche IPs zu liefern, ja. Wenn du ein System kontrollierst, und der Angegriffene deine DNS-Vorgaben akzeptiert, kannst du ihn ohne Probleme auf eine gefälschte "http://gmail.com"-Seite leiten. Nur das war nicht die Frage. Es geht explizit um TLS.

Worauf ich mich beziehe, ist deine Aussage, mal kurz ein valides TLS-Zertifikat zu erschaffen. Und mit valide meine ich eins, welches mein Browser akzeptiert, da sein Ursprung bei einer der großen Autoritäten liegt.

Ich sage, dass du von beispielsweise von Lets Encrypt kein Zertifikat bekommst, welches dich als "gmail.com" ausweist.

  • Du kannst mir entweder ein selbst signiertes Zertifikat vorlegen (das mein Browser ablehnen wird),
  • gar kein Zertifikat (was nicht die Frage war),
  • oder eines, was nicht mit der besuchten Domain übereinstimmt (was mein Browser ablehnen wird).

Aber du kannst mir kein valides Zertifikat vorzeigen, auch keins von lets Encrypt, indem du als Besitzer von gmail.com ausgewiesen wirst.

Daraus schließe ich, dass wenn der Browser dein Zertifikat als valide signiert ansieht (das grüne Glöckchen) ich auf der Seite bin, die den passenden privaten Schlüssel besitzt.

0
Mark Berger  06.08.2022, 15:27
@Lamanini
Nur das war nicht die Frage. Es geht explizit um TLS.

Nein - ich sagte ich kann dir ein Lets Encrypt Zertifikat vorsetzen...

Eventuell unglücklich formuliert aber ich habe mit keinem Wort gesagt ein Lets Encrypt Zertifikat für gmail.com sondern:

Dann biete ich dir meinen Server statt zB Gmail.com an, biete dir ein Let's Encrypt Zertifikat damit du gültiges SSL siehst und im Hintergrund kann ich alles mitlesen und an den eigentlichen Server schicken. (MITM-Angriff)

Das war als irgendein Lets Encrypt Zertifikat gemeint.

Den MITM-Part übernimmt dann die Webseite oder der Serverdienst den man dazu nutzt... Das kann ich sein, ein gehackter VPS oder ein gehackter Webhost. So oder so ist das wieder ein von mir kontrolliertes Gerät.

Um die URL glaubhafter zu verkaufen gibt es alle möglichen Tricks wie zB gmaii.com in der Webseite als gmaiI.com (großes I) in Links darzustellen oder russisches a statt dem westlichen a, etc.

All das hängt aber auch zum Teil von den Browserversionen, etc. ab. Und die sehe ich so ja einfach und dann kann ich entsprechend reagieren. So kann ich bestimmten Browserversionen trotz HSTS eine Umleitung per HTTP unterschieben da Header zumindest ausgewertet wurden. Ob das noch immer klappt müsste ich testen.

0
Lamanini  06.08.2022, 15:53
@Mark Berger
biete dir ein Let's Encrypt Zertifikat

Wenn du mir ein Zertifikat gibst, welches eine andere eingetragene Domain besitzt, als die, die ich gerade besuche, wird mein Browser das ablehnen. Gibt dann so ne fette Fehlermeldung ala "Seite ist unsicher". Und das auch bei allen Browsern die so genutzt werden.

Um die URL glaubhafter zu verkaufen gibt es alle möglichen Tricks

Aber das hat ja absolut nix mehr mit der eigentlichen Frage zu tun. Ja, wenn du auf pmail.com anstatt gmail.com gehst, kriegt da jemand anderes den Traffic. Aber dann ist das Problem nicht, dass der VPN-Anbieter deinen Traffic belauschen kann. Das geht genauso komplett ohne VPN wie mit VPN.

Die Frage war ja:

Können die VPN Betreiber Internetverkehr komplett mitlesen wenn ich auch einer https Seite bin?

Und die einfache Antwort darauf ist "Nein". Kann er nicht. Nur der Besitzer des passenden privaten Zertifikates kann die Kommunikation entschlüsseln. Wenn du auf pmail.com anstatt gmail.com bist, dann kann pmail.com deinen Traffic lesen. Aber das heißt nicht, dass ein VPN-Betreiber meinen Internetverkehr komplett mitlesen kann. Das ist einfach nur ein Problem, welches komplett losgelöst von VPNs existiert.

Wenn ich auf gmail.com bin, und da ein grünes Schlösslein (Anzeigeart in meinem Browser) ist, dann ist das auch gmail.com.

0
Mark Berger  06.08.2022, 16:26
@Lamanini
Aber das hat ja absolut nix mehr mit der eigentlichen Frage zu tun. Ja, wenn du auf pmail.com anstatt gmail.com gehst, kriegt da jemand anderes den Traffic.

Doch!

Einen betrügerischen Anbieter interessieren die Nachrichten von orf.at nicht und auch nicht die Inhalte von lustigekatzenbilder.de!

Ob da jemand mitbekommt was ich lese ist aber auch egal...

Als betrügerischer Anbieter eines WLAN oder VPN kann ich aber für die Seiten mit denen ich Geld machen kann (Google, Amazon, Ebay, PayPal, etc.) entsprechende MITM-Webseiten aufsetzen und dann über DHCP meinen DNS und über meinen DNS die MITM-Seiten den Leuten unterschieben.

Neben Lets Encrypt kann ich dazu auch CPanel-Zertifikate auf einem entsprechend eingerichteten Hosting-Server nutzen oder sonst was.

Dann richte ich da die entsprechenden Seiten ein und fertig. Das wäre ein Ansatz.

Wenn ich auf gmail.com bin, und da ein grünes Schlösslein (Anzeigeart in meinem Browser) ist, dann ist das auch gmail.com.

Nein! Bogenschloss + gmail.com im Browser muss nicht gmail.com sein! Genau darauf will ich ja hinaus!

Das kann genausogut xn--gmil-63d.com mit LetsEncypt oder CPanel-Zertifikat sein!

Aber dann ist das Problem nicht, dass der VPN-Anbieter deinen Traffic belauschen kann. Das geht genauso komplett ohne VPN wie mit VPN.

Richtig aber bei deinem Internetanbieter wird das eher nicht vorkommen. Beim gehackten WLAN eines Restaurants oder bei einem dubiosen VPN-Anbieter würde ich darauf nicht vertrauen. Siehe meine Antwort:

Theoretisch ja. Die Umsetzung ist nicht ganz trivial aber machbar wäre es. Eine seröse Firma würd dies aber nicht machen! Wenn du einen kostenlosen russischen Anbieter nutzt, kann das aber durchaus sein ;-)

In den Sinn kann ein VPN-Anbieter oder jeder der ein Netzwerk administriert wenn er es darauf anlegt den Netzwerkverkehr jeder Seite die er möchte über die genannten und einige andere Umwege komplett mitlesen.

Wenn du auf pmail.com anstatt gmail.com bist, dann kann pmail.com deinen Traffic lesen.

Richtig! Und ob du auf gmail.com oder pmail.com landest kann der Administrator des Netzwerkes bestimmen wenn er das möchte.

Aber egal - ich habe keine Lust mich 20x zu wiederholen. Ich bin mal raus hier - muss heute noch was sinnvolles machen...

0

Bei HTTPS sollte das nicht der Fall sein. Bei HTTP (und allem anderem unverschlüsselten) können sie das schon, wenn sie das wollen. Bei HTTPS kann man auch als MITM (Man in the middle) nicht mitlesen. Da ein VPN de facto auch ein MITM ist, kann der Betreiber auch nicht mitlesen. Das liegt daran, dass HTTPS bzw. SSL genau dafür gemacht worden ist.