IPv6 Leak - Erklaerung[solved]

#1
Hi!

Ich bin beim Einrichten meine Machine auf ein IPv6 Leak in meiner VPN-configuration gestolpert.

Google wusste genau welche Zeitzone anzugeigen war als ich die aktuelle Zeit haben wollte.
Genauso auch www.wieistmeineip.de(fuer IPv6).

Ich habe dann IPv6-IPtables konfiguriert.

Code:
 ip6tables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all      localhost            anywhere           
ACCEPT     all      anywhere             anywhere             state RELATED,ESTABLISHED
LOGREJECT  tcp      anywhere             anywhere           

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all      localhost            anywhere           
ACCEPT     all      anywhere             anywhere             state RELATED,ESTABLISHED
LOGREJECT  tcp      anywhere             anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Das verhindert aber nicht das ich nach draussen telefonieren kann, aber die IP-Seite und Google wussten dann nicht mehr meine aktuelle Seite.
(Ich hab auch nicht DNS-umgeaendert d.h. koennte man darueber nach was herausfinden aber das vergessen wir mal, da das Resultat schon ein anderes ist).

Wenn das also schon alles aendert dann frag ich mich wie meine IPv6Adresse ueberhaupt in deren Haende gelangt ist, um eine Anfrage zu stellen.
Es kann natuerlich auch sein, das weil keine Verbindung von deren Seite moeglich ist die erhaltene IP nicht zuverlaessig ist.

Kurzum: gibt es ausfuehrliches Material dazu, ich finde nur Wischi-Waschi erklaerungen und Diagramme wo man wie drauf zu klicken hat um das abzuschalten, aber keine Erklaerung wiso das hilft oder wie der Angriff genau funktioniert, den JS Code von der Seite sollte eigentlich nicht in der Lage sein die IP-Version zu diktieren, oder geht es darum eine Ressource abzufragen welche nur per IPv6 verfuegbar ist und das OS versucht dann, wenn IPv6 verfuegbar ist, die Resource zu holen, und da VPN software IPv6 zZ noch ignoriert wird ueber die Defaultroute rausgegangen?

LG
Fluffy
 
#2
Hallo Fluffy,

das sieht nach einer schlechten Konfiguration deines VPNs für IPv6 aus. Bei meinem VPN ist das genau das selbe: Es werden nur Routen für IP4 Pakete definiert, nicht jedoch für IPv6. Deswegen werden alle Internet Resourcen, die auch eine IPv6 Verbindung anbieten unter Umgehung des VPNs direkt abgefragt! Sehr nervig - Ich muss Firefox so konfigurieren, dass er explizit nur IP4 benutzt, um sicherzugehen: about:config -> network.dns.disableIPv6 muss auf true gesetzt werden.
Post doch mal die Ausgabe von
Code:
ip route
und
Code:
ip -6 route
. Dann kommen wir der Sache vielleicht näher.

Viele Grüße,
🂩
 
#3
Ja,
dachte ich mir fast.
Man kann sich heutzutage nicht auf das was die VPN-betreiber sagen verlassen, laut derem Artikel von 2017 sollten 0-Routen fuer IPv6 eingesetzt werden.

Sind aber nicht da

Code:
nosuchsystem# ip -6 route
::1 dev lo proto kernel metric 256 pref medium
fe80::/64 dev wlo1 proto kernel metric 256 pref medium
fe80::/64 dev tun0 proto kernel metric 256 pref medium
nosuchsystem# ip route
0.0.0.0/1 via 10.7.0.1 dev tun0
default via 192.168.0.1 dev wlo1 proto dhcp src 192.168.0.16 metric 303
10.7.0.0/24 dev tun0 proto kernel scope link src 10.7.0.4
82.221.112.211 via 192.168.0.1 dev wlo1
128.0.0.0/1 via 10.7.0.1 dev tun0
192.168.0.0/24 dev wlo1 proto dhcp scope link src 192.168.0.16 metric 303
Aber, ich hab jetzt in den IP6tables einfach ausgehenden Traffic auf DROP gesetzt.
Der Router meines Vermieters ist offensichtlich IPv4 und 6 faehig.

Habe das Dingen nie gesehen, aber wenn ich mich mit meinem alten System anmelde kriege ich eine IPv4 Adresse mit meinem neuen System(beim letzten mal, jetzt nicht mehr, und mit meinem Handy kriege ich eine IPv6-Adresse und da kann man ausgehen Traffic nicht mal eben droppen.

Aber routen konfigurieren ist immer so eine Sache, mach ich zu selten als das es mir leicht von der Hand geht -.-'

//edit
Du hast nicht mal zufaellig ein Paper zur Hand das diesen Angriff mal etwas detaillierter behandelt?
 
#4
Aber, ich hab jetzt in den IP6tables einfach ausgehenden Traffic auf DROP gesetzt.
Da kenne ich eine einfachere Lösung.

Du hast nicht mal zufaellig ein Paper zur Hand das diesen Angriff mal etwas detaillierter behandelt?
Ich weiß zwar nicht genau, was du damit meinst, aber ich habe ein Shell-Script zur Hand, welches IPv6 vorübergehend ausschaltet, solange dein VPN aktiv ist.

Bash:
#!/usr/bin/env sh

PIDFILE="/var/run/OVPN.pid"
if [ $(whoami) = "root" ]; then
  if [ -e "$PIDFILE" ]; then
    # Read the openvpn pid from file and terminate it.
    read PID < "$PIDFILE"
    kill $PID
    rm -rf "$PIDFILE"
    # Re-enable IPv6.
    echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6
    echo "Disconnected from VPN"
  else
    # Start openvpn as daemon and save the daemon's pid in $PIDFILE
    openvpn --daemon --writepid "$PIDFILE" <Your custom VPN config>
    # Temporarily disable IPv6.
    echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
    echo "Connected to VPN"
  fi
else
  sudo $0
fi
Mit diesem Script habe ich mir beholfen.

Viele Grüße,
🂩
 
#5
Vielen Dank fuer das Skript.
Hab es ein bischen angepasst,da ich WiFi nicht gerne im Hintergrund laufen habe.
Ctrl+c ist schneller und unkomplizierter als den Daemon zu killen.


Was ich meine ist ein erklaerung wie das im Detail funktioniert.
Frei nach dem Motto: "Hallo Snoop, du wolltest schon immer mal besucher deiner Seite und Nutzer deines Services Demaskieren? Hier ist wie.
Heute nehmen wir mal IPv6 Leaks durch...Schritt 1.... hier passiert... schritt 2 .... weil und nun muessen sie nur noch xxxxxxxx und schon haben sie die IPv6 Adresse"
 
#6
Vielen Dank fuer das Skript.
Hab es ein bischen angepasst,da ich WiFi nicht gerne im Hintergrund laufen habe.
Ctrl+c ist schneller und unkomplizierter als den Daemon zu killen.


Was ich meine ist ein erklaerung wie das im Detail funktioniert.
Frei nach dem Motto: "Hallo Snoop, du wolltest schon immer mal besucher deiner Seite und Nutzer deines Services Demaskieren? Hier ist wie.
Heute nehmen wir mal IPv6 Leaks durch...Schritt 1.... hier passiert... schritt 2 .... weil und nun muessen sie nur noch xxxxxxxx und schon haben sie die IPv6 Adresse"
Du musst einen Dienst bereitstellen, der sowohl über eine IP4, als auch eine IPv6 Adresse zu erreichen ist und es muss ein entsprechender AAAA DNS Eintrag vorhanden sein. Es ist wirklich so einfach!
Wann immer bei irgendjemandem die VPN Einstellungen bzgl. IPv6 schlampig eingerichtet sind (so wie bei uns beiden) und das Betriebssystem IPv6 Verbindungen bevorzugt (was die meisten Linux Distributionen tun), wird der Dienst über die IPv6 Adresse deines Opfers unter Umgehung des VPNs aufgerufen. Dort kannst du die eingehenden IPv6 Verbindungen einfach protokollieren. Das ist nicht wirklich ein Angriff.

Falls das VPN gut konfiguriert ist, oder sogar IPv6 tunnelt, oder IPv6 ganz deaktiviert ist, kommt ein Angreifer auch nicht an die Adresse.

Viele Grüße,
🂩
 
Oben