1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. ooo, 27.11.2014 #1
    ooo

    ooo Threadstarter Moderator Team-Mitglied

    Ausgehend von einer Analyse zum Verhalten der(Google-)Kontakte habe ich zwei andere Dinge gefunden, die mich (an der von mir verwendeten CM11 KK 4.4.4 ROM) stören.
    (Anmerkung: Der folgende Teil des dortigen Original-Beitrags wurde am Do., 27.11.2014 um 09:49 Uhr von @Fight4Music hierher verschoben.)


    1. Lücke: Captive Portal Checker geht immer zu einer Google-Adresse

    Bei jedem Start überprüft die ROM, ob sich das Phone mit dem Internet verbinden kann.

    "Im Internet" bedeutet hierbei nicht nur, dass es in einem W-LAN eingebucht ist, sondern auch wirklich Server ansteuern kann (Web, Mail etc.).

    Dazu wird ein Captive Portal Check durchgeführt. - Ein Captive Portal befindet sich z. B. oft in Hotels (offenes W-LAN, aber zum Surfen ins Internet muss man sich erst freischalten lassen).

    Der (Google-)Code, der auch in allen ROMs steckt, versucht dabei immer, eine Verbindung zu h t t p : / /clients3.google.com aufzubauen (bei jedem Start und egal, ob man die GApps hat oder nicht). - Gelingt dies, "weiß" das Phone anhand der Antwort-Seite (HTTP Response-Code 204), dass es ins Internet kann.

    Und Google weiß, wer wann von wo mit welchem Browser mit welchem Androiden ins Internet gegangen ist. - Nochmal: es ist im AOSP-/CM-Code. - Ganz großes Tracking-Kino!

    Noch besser: Ich habe die Funktion trotz Firewall nicht daran hindern können, "nach Hause zu telefonieren".
    Edit 2015-01-03: Nachtests haben ergeben, dass AFWall+ dies unterbindet, wenn die Firewall korrekt eingerichtet und explizit aktiviert wurde. In "Netzwerk Log" sollte in den Einstellungen "Hinter Firewall protokollieren" aktiviert sein, um nur den wirklich abfließenden Traffic zu sehen. - Das grundsätzliche Problem existiert aber dennoch weiter und muss - wie unten beschrieben - bearbeitet werden, falls die Firewall deaktiviert wird (Crash, ROM-Updates etc.)

    Hier findet man alle IPs, die Google dafür vorgesehen hat (ohne Anspruch auf Vollständigkeit):

    clients3.google.com


    Wie stellt man das jetzt ab (mit und ohne Google Apps):

    Dazu z. B. adb shell oder Android Terminal Emulator öffnen

    Eingabe:
    Code:
    su
    settings put global captive_portal_detection_enabled 0
    settings put global captive_portal_server localhost
    reboot
    _____


    2. Lücke: Das Phone holt sich die konkrete Zeit bei z. B. 2.android.pool.ntp.org via NTP (Port 123)

    Das passiert ebenfalls bei jedem Start des Phones (mit und ohne Google Apps) und selbst dann, wenn man die automatische Zeitaktualisierung in den Einstellungen deaktiviert. - Hallooo?!

    Überprüfung mit dig auf einer Linux Box:
    Code:
    root@dev:~# [B]dig 2.android.pool.ntp.org[/B]
    
    ; <<>> DiG 9.8.1-P1 <<>> 2.android.pool.ntp.org
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4419
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;2.android.pool.ntp.org.        IN    A
    
    ;; ANSWER SECTION:
    2.android.pool.ntp.org.    86    IN    A    [B]5.9.39.5[/B]
    2.android.pool.ntp.org.    86    IN    A    [B]131.188.3.220[/B]
    2.android.pool.ntp.org.    86    IN    A    [B]85.10.246.226[/B]
    2.android.pool.ntp.org.    86    IN    A    [B]5.9.80.114[/B]
    
    ;; Query time: 41 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Wed Nov 26 23:26:24 2014
    ;; MSG SIZE  rcvd: 104
    
    Die IPs sind u. a. von Hetzner und auch Privat-Personen, die offene Zeit-Server betreiben und zur Verfügung stellen. Die IPs wechseln, die dahinter stehenden Leute/Firmen auch. - Will ich, dass registriert wird, wann und von wo (meine IP-Adresse/meine MAC-Adresse) ich das Phone starte?

    Wenn nein, dann ist hier die Lösung, um auch das abzustellen:

    adb shell oder Android Terminal Emulator öffnen

    Eingabe:
    Code:
    su
    settings put global ntp_server 127.0.0.1
    _____


    Wer hat Lust, seine MAC in unsicheren Umgebungen zu ändern, um sich so vor Tracking besser zu schützen?

    (ACHTUNG: Nur für die Kombination 1. Motorola Defy(+) (MB525, MB526) und 2. CyanogenMod CM 11 KitKat 4.4.4 ROMs von Quarx)

    Ich habe mir hierzu ein Shell-Script geschrieben und als flashbare ZIPs angehängt, die Ihr gerne mal ausprobieren könnt. - Kaputt gehen kann nichts dabei.

    Der FakeMAC Randomizer ändert eure MAC-Adresse automatisch bei jedem Start des Phones, wenn er aktiviert ist. - Die originale MAC wird nicht zerstört und kann wieder benutzt werden. - Durch einfaches Umbenennen einer Datei (siehe Screenshots) kann die Funktion ein- oder ausgeschaltet werden oder die aktuelle MAC-Adresse "eingefroren".

    fakemac-v3-flashable.zip installiert und aktiviert FakeMAC.

    fakemac-v3-uninstall-flashable.zip stellt den Ausgangszustand wieder her.

    Viel Spaß beim Testen!

    Hinweise:

    Edit 28.11.2014:
    Neue Version v3 angehängt. - Bug fix: Wenn man in der v2 das Verzeichnis /data/local/userinit.d nicht bereits hatte, dann wurde immer nur die originale MAC benutzt. - Das wurde jetzt bereinigt.

    Edit 27.11.2014:
    In der Version v2 bleibt bei der Deinstallation evtl. die automatisch generierte Datei /data/local/userinit.d/98-fakemac übrig, tut aber nichts weiter aktiv. - Bitte manuell löschen.


    Allgemeiner Tipp: Wenn das W-LAN nicht tun sollte, was sehr selten vorkommt, einfach ein Wipe Dalvik Cache und Wipe Cache durchführen.
     

    Anhänge:

    Zuletzt bearbeitet: 01.03.2015
    Oebbler, email.filtering, mratix und 8 andere haben sich bedankt.
  2. ooo, 28.11.2014 #2
    ooo

    ooo Threadstarter Moderator Team-Mitglied

    mratix, Fight4Music und starbright haben sich bedankt.
  3. starbright, 11.12.2014 #3
    starbright

    starbright Android-Experte

  4. ooo, 11.12.2014 #4
    ooo

    ooo Threadstarter Moderator Team-Mitglied

    Könnte man da mit reinhängen.

    Guter Stil ist aber, die einzelnen "Tweaks" (thematisch) jeweils getrennt in eigenen init.d-Start-Scripts unterzubringen (in /data/local/userinit.d/).

    Wenn jeder Tweak ein eigenes Script hat, dann werden bei einem Fehler in einem der Scripte (das dann abbricht), die anderen Tweaks trotzdem noch ausgeführt.

    Professioneller ist es, das LTO-Script extra zu halten.

    Alle Dateien, die im Verzeichnis /data/local/userinit.d/ sind und ausführbar, werden beim Start in alphabetischer Reihenfolge aufgerufen. - Ist das Verzeichnis nicht da, kann man es sich selbst anlegen (als "root"). - Die Scripte müssen root:root und -rwxr-xr-x haben. - Wie sie heißen, ist egal.
     
  5. starbright, 11.12.2014 #5
    starbright

    starbright Android-Experte

    Da ist was dran. Allerdings ist das glaube ich auch die falsche Stelle - ein Denkfehler von mir.
    Das FakeMAC wird beim Booten aufgerufen, das LTO Script idealerweise beim Einschalten einer WLAN Verbindung. Du hast dir das schon genauer angeschaut, gibts da eine Position wo das sinnvoll wäre?
    Ok, hier geraten wir OT ...
     
  6. ooo, 11.12.2014 #6
    ooo

    ooo Threadstarter Moderator Team-Mitglied

    LTO automatisieren

    Die benutzen deren Datei /init.aries.rc was bei uns /init.mapphone_umts.rc ist, um einen Service einzurichten, der das alles automatisiert. - Die .rc-Datei ist aber nach einem ROM-Update wieder zurückgesetzt.

    Ich habe das noch nicht probiert, weil mich GPS nicht interessiert. - Manuell hatte das bei mir auch keinerlei Auswirkungen auf den Fix als ich das mal ausprobiert hatte.
     
    starbright bedankt sich.
  7. ooo, 29.03.2015 #7
    ooo

    ooo Threadstarter Moderator Team-Mitglied

    Hi, josef2,

    nein, das macht zunächst keine Probleme, da es den falschen Namen "captive_detection_enabled" nicht gibt. - Ein Problem wäre es gewesen, wenn es diesen Namen ebenfalls gibt, da ja dann dessen echter Wert überschrieben worden wäre.

    Allerdings gibt es jetzt in den Settings "deine" neue Variable "captive_detection_enabled".

    Das kannst du im Terminal wieder löschen mit:

    Code:
    su 
    settings put global captive_detection_enabled null 
    
    ___

     
  8. anonymousdark, 10.11.2015 #8
    anonymousdark

    anonymousdark Erfahrener Benutzer

    Hallo, ich habe zu Punkt 2. eine blöde Frage.

    Mit Xprivacy kann man sich auch ID, IP, MAC- Adresse etc generieren lassen und auch beim Start des Phones generieren. Funktioniert diese Funktion dieser App nicht richtig, oder warum geiftst du auf ein eigenes Skrip zurück?

    Oder liegt es am dem Motorla Phone?

     
  9. ooo, 10.11.2015 #9
    ooo

    ooo Threadstarter Moderator Team-Mitglied

    Nimm Xposed. - Ich hatte damals nach einer Lösung (NUR für das Motorola Defy!) gesucht, die mit möglichst null Fremd-Apps bzw. Tweaks auskommt. - Ich bin absolut kein Freund von XPosed, weil es massive Änderungen an einer ROM vornimmt und die Module aus unsicheren Quellen unkontrollierte Änderungen vornehmen *könnten*. Deswegen verwende ich es nicht (mehr) und kenne mich deswegen auch nicht (mehr) damit aus.

    Mit dem Custom Script von AFWall+ kannst du übrigens auch die Zeit-Server-Anfragen über eine Regel auf einen ganz bestimmten NTP-Server einstellen (erzwingen).

    Quelle:
    CustomScripts · ukanth/afwall Wiki · GitHub

     
    Zuletzt bearbeitet: 10.11.2015
  10. anonymousdark, 10.11.2015 #10
    anonymousdark

    anonymousdark Erfahrener Benutzer

    Find ich ehrlich gesagt, nicht verkehrt. Da hast du auch recht, das Problem ist das nicht nicht jeder sogut auskennt wie du und den meisten die Zeit & Lust fehlt. Wie machst du das denn dann mit den Berechtigungn deiner Apps?
    Nutzt du nur die Datenschutzfunktion von der ROM?

    Bin halt leider nicht so versiert in diesem Thema, nutze auch nur dieses eine Modul.
    Ob es aktuell so sicher ist weiss ich leider auch nicht.

    Danke für den Tipp mit dem Zeitserver.
     
  11. ooo

    ooo Threadstarter Moderator Team-Mitglied

    Ja, nur die Datenschutz-Funktion. Apps kommen erstmal nicht ins Internet (AFWall). Apps, die ins Internet müssen, aber sich nicht "benehmen" (Daten) fliegen raus. Keine Google Apps, keine Mainstream-Apps (Facebook, WhatsApp & friends). - F-Droid als App Store (Quell-Code bei Bedarf einsehbar).
    Tipp: Einfach immer weiter am Thema bleiben und dazulernen.
     
  12. anonymousdark, 19.11.2015 #12
    anonymousdark

    anonymousdark Erfahrener Benutzer

    Kommt nach der Eingabe in das Terminal, nicht auch immer eine Ausgabe? (Bei 1. & 2.)
    Wenn ja, wäre es schön wenn das auch noch mit aufgefhührt werden würde =).
     
  13. ooo

    ooo Threadstarter Moderator Team-Mitglied

    Wenn die Befehle ohne Fehler angenommen wurden, kommt keine weitere Ausgabe (das ist oft so bei unixoiden Betriebssystemen). - Wenn etwas falsch läuft, gibt es auch etwas zu melden - dann kommt eine Ausgabe.
     
    anonymousdark bedankt sich.
  14. mratix, 30.11.2015 #14
    mratix

    mratix Android-Experte

    Bin am Überlegen, wie am besten die disable captive portal geschichte unterzubringen bzw. wasserdicht zu halten.

    Code:
    # check system reflashed
    if [ -f /system/etc/init.d/98-blabla ] exists; then ; else cp /data/local/userinit.d/98-blabla /system/etc/init.d/ ; echo 'CP script wurde wiederhergestellt' ; fi
    
    # check value
    if settings get global captive_portal_server == "localhost"; then echo 'CP inaktiv'; else settings put global captive_portal_server localhost; echo 'localhost wurde gesetzt' ; fi
    
    # check is active
    if settings get global captive_portal_detection_enabled == "0"; then exit; else settings put global captive_portal_detection_enabled 0; echo 'CP wurde deaktiviert, restart'  && wait 5; reboot ; fi
    
    # data wiped
    echo 'disable CP script nicht gefunden! Bitte zip wieder flashen'; pause; fi
    ...so ungefähr, Kopfkino

    was haltet ihr davon?
     
    Zuletzt bearbeitet: 30.11.2015
  15. ooo

    ooo Threadstarter Moderator Team-Mitglied

    Ein init.d-Script kann das nicht (automatisieren), weil Android noch nicht gestartet ist. - Die Init.d-Scripte werden zwar ausgeführt, aber die settings binary (reinschauen, es ist nur Text ...) und die settings.jar stehen (m. M. n.) noch nicht zur Verfügung, um die captive portal Werte zu checken bzw. zu setzen. - Jedenfalls kenne ich bis jetzt noch keine automatisierte Lösung. - Evtl. geht es mit der sqlite3 binary und einem Script, um low-level bei jedem Start in die settings.db via SQL-commands zu schreiben. - Warum überprüfen? - Einfach "brutal" immer wieder überschreiben ... (getestet habe ich das aber noch nicht. - Ich mache das bisher manuell).

    (Wenn die ROM ein /system/addon.d/ Verzeichnis hat, kann man sich ein Survival-Script für normale (OTA-)Updates einrichten, das dann die "captive portal deactivation"-Script-Datei in /system/etc/nit.d/ wegsichert. - Analog z. B. zu /system/addon.d/50-cm.sh bei einer CM-ROM für die Datei /system/etc/hosts)

    Edit:
    Außerdem liegt die settings.db, die die captive portal Werte enthält, in data, nicht in system und überlebt ein Update. - Nach einem Full wipe ist das natürlich etwas anderes. - Auch eine Installation/Aktualisierung bestimmter Google Apps/Services können die Werte wieder (in seltenen Fällen) zurücksetzen.
     
    Zuletzt bearbeitet: 02.12.2015
    mratix bedankt sich.
  16. mratix, 01.12.2015 #16
    mratix

    mratix Android-Experte

    Hört sich gut an, werde mir dazu noch Gedanken zur Umsetzung machen.

    Ich danke dir, wieder mal, für das hervorragende Fachwissen.
     
  17. ooo

    ooo Threadstarter Moderator Team-Mitglied

    Captive Portal Detection deaktivieren funktioniert mit (vorhandenem) sqlite3 in einem init.d-Script:
    (Funktioniert aber nur, wenn die ROM/der Kernel init.d-Scripte unterstützt)

    ooo-cpd-v1.zip entpacken

    Datei 98cpdoff nach /system/etc/init.d/ kopieren
    Berechtigungen auf root:root -rwxr-xr-x (0755) setzen

    Optional (nur, wenn /system/addon.d/ vorhanden, z. B. CM-ROM)
    Datei 98-cpdoff-survival.sh nach /system/addon.d/ kopieren
    Berechtigungen auf root:root -rwxr-xr-x (0755) setzen

    Tipp (init.d nachrüsten/korrigieren):
    Wenn die ROM SELinux-Status Strikt (Enforcing) hat, kann es sein, dass keine init.d-Scripts ausgeführt werden. - Dann kann man sich hier über eine mögliche Lösung (nur zu Lollipop-ROMs) informieren. - Wenn es sofort funktioniert, braucht man das nicht anwenden. - Bei CM-ROMs (gerootet mit SuperSU) muss man nur das Verzeichnis /system/su.d/ korrekt anlegen und die Datei runpartsinitd (Berechtigungen nicht vergessen: root:root 0755).

    /system/su.d/runpartsinitd hat dabei folgenden Inhalt:
    (busybox muss natürlich installiert sein)
     

    Anhänge:

    Zuletzt bearbeitet: 02.12.2015
    mratix bedankt sich.
  18. mratix, 02.12.2015 #18
    mratix

    mratix Android-Experte

    Wow! Hat super funktioniert.

    Ganz großen Dank an dich @ooo

    Wenn du möchtest, hier noch ein kleines script um den Status abzufragen. Könnte man ins Archiv reinpacken.

    Code:
    #!/system/bin/sh
    
    # Make sure that you have 'su' before
    
    echo 'A response of "null" indicates the global key value has NOT been SET and Android will fall back to default of being on and performing the detection.'
    echo 
    echo 'If the detection is disabled the response of "0" will be received.'
    echo  
    echo '*** Status is:'
    settings get global captive_portal_detection_enabled
    
    settings get global captive_portal_server
    echo '***'
    
     
  19. starbright, 30.11.2017 #19
    starbright

    starbright Android-Experte

    @ooo

    Zum FakeMac : Das funktioniert sicher nicht mehr auf nem LOS14.1, oder? Wie könnte man das dort lösen?
    Danke
     
  20. ooo

    ooo Threadstarter Moderator Team-Mitglied

    FakeMac bezieht sich nur auf das Defy bzw. dessen originale Firmware, die von einer Custom ROM mitbenutzt wird.
    Das ändern der MAC ist hier also eher Device-spezifisch.
    ___

    Chainfire hat eine App im Play Store, die das allgemeiner machen kann, falls es auf Device und ROM passt:
    [root] Pry-Fi – Android-Apps auf Google Play

    (letzte Version aus 2014)
    ___

    Android MAC-Adresse ändern - bleiben Sie einfach anonym | TippCenter
     

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. captive_portal_server=localhost

    ,
  2. captive_portal_detection_enabled init.rc

    ,
  3. android captive portal detection

    ,
  4. android trackingschutz opera
Du betrachtest das Thema "[CM11] Tracking-Schutz/FakeMAC" im Forum "Custom-ROMs für Motorola Defy+",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.