Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
frida-interception-and-unpinning — Frida-Skripte, um mobile Anwendungen zur Laufzeit umzuschreiben und den gesamten HTTPS-Verkehr direkt per Man-in-the-Middle (MitM) abzufangen. | Kitploit
Tools/GitHubGitHub/httptoolkit/frida-interception-and-unpinning
Android-SicherheitiOS-SicherheitWeb-Proxys & AbfangenMobile App-PenetrationstestsReverse EngineeringPenetrationstestsMobile Sicherheit
GitHubhttptoolkit/frida-interception-and-unpinning

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

frida-interception-and-unpinning

Frida-Skripte, um mobile Anwendungen zur Laufzeit umzuschreiben und den gesamten HTTPS-Verkehr direkt per Man-in-the-Middle (MitM) abzufangen.

Repository anzeigenWebseite
2.3k292vor 2 TagenVon Kitploit geprüft

Frida-Skripte zur mobilen Interception Funded by NLnet - NGI Zero Entrust

Teil von HTTP Toolkit: leistungsstarke Werkzeuge zum Erstellen, Testen & Debuggen von HTTP(S)

Dieses Repository enthält Frida-Skripte, die alles Notwendige für die vollautomatische HTTPS-MitM-Interception auf mobilen Geräten erledigen.

Diese Skriptsammlung kann komplett zusammen verwendet werden, um die Interception zu übernehmen, das Zertifikatsvertrauen zu verwalten und Zertifikats-Pinning- und Transparenzprüfungen zu deaktivieren – für die MitM-Interception von HTTP(S)-Verkehr auf Android und iOS. Alternativ können die Skripte unabhängig voneinander verwendet und angepasst werden, um nur bestimmte Funktionen zu hooken.

Die Skripte können automatisch Folgendes übernehmen:

  • Umleitung von Verkehr zu einem HTTP(S)-Proxy – sowohl durch Änderung der Systemeinstellungen als auch durch direkte Umleitung aller Socket-Verbindungen.
  • Injizieren eines angegebenen CA-Zertifikats in die System-Vertrauensspeicher, sodass es standardmäßig in Verbindungen als vertrauenswürdig gilt.
  • Patchen vieler (aller?) bekannter Certificate-Pinning- und Certificate-Transparency-Tools, um die Interception durch Ihr CA-Zertifikat zu ermöglichen, selbst wenn diese aktiv blockiert wird.
  • Auf Android, als Fallback: automatische Erkennung verbleibender Pinning-Fehler, um ein automatisches Patchen von verschleiertem Zertifikats-Pinning zu versuchen (in vollständig verschleierten Apps kann die erste Anfrage fehlschlagen, aber dies löst zusätzliches Patchen aus, sodass alle nachfolgenden Anfragen korrekt funktionieren).
  • Deaktivieren vieler gängiger Root- und Jailbreak-Erkennungen.
  • Blockieren der meisten HTTP/3-Verbindungen (alle UDP-Verbindungen zu Port 443), die möglicherweise schwer zu intercepten sind, wodurch sichergestellt wird, dass Apps auf HTTP/2 oder HTTP/1 zurückfallen.

Erste-Schritte-Anleitung für Android

  1. Starten Sie Ihren MitM-Proxy (z. B. HTTP Toolkit) und richten Sie Ihr gerootetes Android-Gerät oder Ihren Emulator per ADB ein.
  2. Ermitteln Sie den Port Ihres MitM-Proxys (z. B. 8000) und sein CA-Zertifikat im PEM-Format
    • Das CA-Zertifikat sollte mit -----BEGIN CERTIFICATE----- beginnen. Sie können es mit einem Texteditor öffnen, um diesen Inhalt zu sehen und zu extrahieren.
    • In HTTP Toolkit finden Sie beide Angaben in der Option „Anything“ auf der Intercept-Seite.
  3. Öffnen Sie config.js und fügen Sie diese Angaben hinzu:
    • CERT_PEM: Ihr CA-Zertifikat im PEM-Format.
    • PROXY_PORT: der Port des Proxys
    • PROXY_HOST: die Adresse Ihres Proxys aus Sicht Ihres Geräts (oder verwenden Sie adb reverse tcp:$PORT tcp:$PORT, um den Port über ADB weiterzuleiten, und verwenden Sie 127.0.0.1 als Host)
  4. Installieren und starten Sie Frida auf Ihrem Gerät.
    • Die Schritte können je nach Gerät und Konfiguration variieren.
    • Beispiel: Laden Sie den passenden frida-server von github.com/frida/frida herunter, entpacken Sie ihn, übertragen Sie ihn per adb push auf Ihr Gerät und führen Sie ihn dann mit den folgenden 4 Befehlen aus: , , , .

Erste-Schritte-Anleitung für iOS

  1. Starten Sie Ihren MitM-Proxy (z. B. HTTP Toolkit) und richten Sie Ihr gejailbreaktes iOS-Gerät ein, das mit Ihrem Computer verbunden ist.
  2. Ermitteln Sie den Port Ihres MitM-Proxys (z. B. 8000) und sein CA-Zertifikat im PEM-Format
    • Das CA-Zertifikat sollte mit -----BEGIN CERTIFICATE----- beginnen. Sie können es mit einem Texteditor öffnen, um diesen Inhalt zu sehen und zu extrahieren.
    • In HTTP Toolkit finden Sie beide Angaben in der Option „Anything“ auf der Intercept-Seite.
  3. Öffnen Sie config.js und fügen Sie diese Angaben hinzu:
    • CERT_PEM: Ihr CA-Zertifikat im PEM-Format.
    • PROXY_PORT: der Port des Proxys
    • PROXY_HOST: die Adresse Ihres Proxys aus Sicht Ihres Geräts
  4. Installieren und starten Sie Frida auf Ihrem Gerät.
    • Die Schritte können je nach Gerät und Konfiguration variieren, aber Frida ist in der Regel über Cydia/Sileo usw. erhältlich, wobei https://build.frida.re als Paketquelle dient.
    • Stellen Sie sicher, dass Sie frida-ps -Uai auf Ihrem Computer ausführen können, um zu bestätigen, dass dies korrekt funktioniert.
  5. Ermitteln Sie die ID der gewünschten App über frida-ps -Uai (für einen schnellen Test versuchen Sie github.com/httptoolkit/ios-ssl-pinning-demo – die ID lautet )

Die Skripte

Die obigen Befehle verwenden alle relevanten Skripte, aber Sie können grundsätzlich jede beliebige Teilmenge verwenden. In fast allen Fällen sollten Sie jedoch config.js als erstes Skript einbinden (dieses definiert einige Variablen, die von anderen Skripten verwendet werden).

Wenn Sie beispielsweise auf Android nur das Unpinning durchführen möchten, die Proxy- und Zertifikatskonfiguration anderweitig übernehmen und keine Verschleierungs-Fallbacks benötigen, können Sie einfach Folgendes ausführen:

root@kitploit:~
frida -U \
    -l ./config.js \
    -l ./android/android-certificate-unpinning.js
    -f $PACKAGE_ID

Jedes Skript enthält eine detaillierte Dokumentation darüber, was es tut und wie es funktioniert, in einem großen Kommentarbereich am Anfang. Die Skripte sind:

  • config.js

    Dieses definiert Variablen, die von anderen Skripten verwendet werden:

    • CERT_PEM – das zusätzlich zu vertrauende CA-Zertifikat im PEM-Format
    • PROXY_HOST – die IP-Adresse (IPv4) des zu verwendenden Proxy-Servers (nicht erforderlich, wenn Sie nur Unpinning durchführen)
    • PROXY_PORT – der Port des zu verwendenden Proxy-Servers (nicht erforderlich, wenn Sie nur Unpinning durchführen)
    • DEBUG_MODE – standardmäßig false, aber wenn Sie dies auf true setzen, wird eine Menge zusätzlicher Output aktiviert, der beim Debuggen und Reverse-Engineering von Problemen nützlich sein kann.
    • BLOCK_HTTP3 – standardmäßig true, wodurch HTTP/3 blockiert wird, indem alle UDP-Verbindungen zu Port 443 verworfen werden.

    Dieses sollte in der Befehlszeile vor allen anderen Skripten aufgeführt werden.

  • native-connect-hook.js

    Erfasst den gesamten Netzwerkverkehr direkt und leitet alle Verbindungen zum konfigurierten Proxy-Host und -Port um.

    Dies ist ein Low-Level-Hook, der auf Netzwerkverbindungen angewendet wird. Dadurch wird sichergestellt, dass alle Verbindungen zwangsweise zum Ziel-Proxy-Server umgeleitet werden, auch solche, die Proxy-Einstellungen ignorieren oder andere Raw-Socket-Verbindungen aufbauen, und blockiert außerdem HTTP/3-Verbindungen, sofern aktiviert.

Diese Skripte sind Teil eines umfassenderen HTTP-Toolkit-Projekts, das über den NGI Zero Entrust Fund finanziert wird. Dieser wurde von NLnet mit finanzieller Unterstützung des Programms Next Generation Internet der Europäischen Kommission eingerichtet. Weitere Informationen finden Sie auf der NLnet-Projektseite.

Logo der NLnet-Stiftung NGI Zero Entrust Logo

Tool herunterladen
adb shell
su
chmod +x /.../frida-server
/.../frida-server
  • Wenn Sie Probleme haben, prüfen Sie vor der Ausführung von Befehlen, ob das Gerät eingeschaltet und verbunden ist (mit adb devices). Beachten Sie, dass Frida auf dem Gerät nur als Root läuft, was su im obigen Beispiel auf einem gerooteten Gerät ermöglicht. Um zu prüfen, ob Sie nach der Ausführung von su oder Ähnlichem Root sind, führen Sie whoami in der Shell aus – es sollte root ausgeben.
  • Ermitteln Sie die Paket-ID der gewünschten App (für einen schnellen Test versuchen Sie github.com/httptoolkit/android-ssl-pinning-demo – die Paket-ID lautet tech.httptoolkit.pinning_demo)
  • Verwenden Sie Frida, um die gewünschte App mit den injizierten Skripten zu starten (beginnend mit config.js). Welche Skripte Sie verwenden, liegt bei Ihnen, aber für Android ist dies ein guter Befehl für den Anfang:
    root@kitploit:~
    frida -U \
        -l ./config.js \
        -l ./native-connect-hook.js \
        -l ./native-tls-hook.js \
        -l ./android/android-proxy-override.js \
        -l ./android/android-system-certificate-injection.js \
        -l ./android/android-certificate-unpinning.js \
        -l ./android/android-certificate-unpinning-fallback.js \
        -l ./android/android-disable-root-detection.js \
        -f $PACKAGE_ID
    
  • Entdecken, untersuchen und modifizieren Sie den gesamten Verkehr, der Sie interessiert! Wenn Sie Probleme haben, eröffnen Sie bitte ein Issue und helfen Sie mit, diese Skripte noch besser zu machen.
  • com.httptoolkit.ios-pinning-demo
  • Verwenden Sie Frida, um die gewünschte App mit den injizierten Skripten zu starten (beginnend mit config.js). Welche Skripte Sie verwenden, liegt bei Ihnen, aber für iOS ist dies ein guter Befehl für den Anfang:
    root@kitploit:~
    frida -U \
        -l ./config.js \
        -l ./ios/ios-connect-hook.js \
        -l ./ios/ios-disable-detection.js \
        -l ./native-tls-hook.js \
        -l ./native-connect-hook.js \
        -f $APP_ID
    
  • Entdecken, untersuchen und modifizieren Sie den gesamten Verkehr, der Sie interessiert! Wenn Sie Probleme haben, eröffnen Sie bitte ein Issue und helfen Sie mit, diese Skripte noch besser zu machen.
  • alle

    Dieser Hook greift auf libc zu und funktioniert unter Android, Linux, iOS und vielen anderen verwandten Umgebungen.

  • native-tls-hook.js

    Modifiziert die gesamte TLS-Validierung für BoringSSL-basierte Bibliotheken, sodass Ihr konfiguriertes CA-Zertifikat als vertrauenswürdig eingestuft wird.

    Bemerkenswerterweise hookt dieses Skript die integrierten BoringSSL-APIs unter iOS, was der normale Weg ist, wie iOS die TLS-Zertifikatsvalidierung durchführt (daher reicht dies für fast die gesamte iOS-HTTPS-Interception aus). Es wird jedoch auch in einigen anderen Fällen sowohl unter iOS als auch unter Android verwendet.

    Dadurch wird Ihr CA-Zertifikat effektiv für alle Zertifikate als vertrauenswürdig eingestuft und sämtliches Zertifikats-Pinning, Certificate Transparency und andere Einschränkungen für Ihre CA werden deaktiviert. Beachten Sie, dass dies – anders als viele andere Frida-Hooks – die TLS-Validierung nicht vollständig deaktiviert (was sehr unsicher wäre). Stattdessen überschreibt es die Validierung, um sicherzustellen, dass alle Verbindungen, die Ihr spezifisches CA-Zertifikat verwenden, als vertrauenswürdig gelten, ohne die Validierung so weit zu lockern, dass Dritte abfangen können.

  • android/

    • android-proxy-override.js

      Überschreibt die Android-Proxy-Einstellungen für die Ziel-App und stellt sicher, dass der gesamte wohlverhaltene Verkehr über den Proxy-Server umgeleitet und abgefangen wird.

    • android-system-certificate-injection.js

      Modifiziert die nativen Android-APIs, um sicherzustellen, dass alle Vertrauensspeicher Ihrem zusätzlichen CA-Zertifikat standardmäßig vertrauen, sodass verschlüsselter TLS-Verkehr erfasst werden kann.

    • android-certificate-unpinning.js

      Modifiziert oder deaktiviert viele gängige bekannte Techniken für zusätzliche Zertifikatseinschränkungen, einschließlich Zertifikats-Pinning (bei dem nur eine kleine Menge erkannter Zertifikate akzeptiert wird, statt aller auf dem System vertrauenswürdigen Zertifikate) und Certificate Transparency (bei dem validiert wird, dass alle verwendeten Zertifikate in öffentlichen Zertifikatsprotokollen registriert wurden).

    • android-certificate-unpinning-fallback.js

      Erkennt nicht behandelte Zertifikatsvalidierungsfehler und versucht, unbekannte, nicht erkannte Fälle mit automatisch generierten Fallback-Patches zu behandeln. Dies ist eher experimentell und kann leicht unvorhersehbar sein, ist aber bei verschleierten Fällen sehr hilfreich und wird im Allgemeinen entweder Pinning-Probleme beheben (nach einem anfänglichen Fehlschlag) oder zumindest Code für weiteres Reverse-Engineering in der Frida-Logausgabe hervorheben. Dieses Skript teilt einen Teil seiner Logik mit android-certificate-unpinning.js und kann nicht eigenständig verwendet werden – wenn Sie dieses Skript verwenden möchten, müssen Sie auch das Nicht-Fallback-Unpinning-Skript einbinden.

    • android-disable-root-detection.js

      Deaktiviert gängige Root-Erkennungsprüfungen über native und Java-Ebenen hinweg, um die Erkennung gerooteter Android-Geräte zu verhindern.

      Dieses Skript fängt Dateisystemzugriffe, Shell-Befehle und Paketabfragen auf bekannte Root-Indikatoren (wie su, Magisk und verwandte Apps) ab und täuscht wichtige Systemeigenschaften (ro.secure, ro.debuggable usw.) vor, um eine Produktionsumgebung zu simulieren.

      Es blockiert verdächtiges Verhalten wie Dateiexistenzprüfungen und die Ausführung von Shell-Befehlen und hilft so, der Erkennung in Apps zu entgehen, die sowohl standardmäßige als auch erweiterte Root-Prüfungen verwenden.

    • android-disable-flutter-certificate-pinning.js

      Stellt sicher, dass Flutter-basierte Anwendungen (die die Systemzertifikatskonfiguration im Allgemeinen ignorieren) Ihrem CA-Zertifikat vertrauen, selbst in den meisten Fällen von explizitem Zertifikats-Pinning. Dieses Skript bleibt vorerst experimentell.

  • ios/

    • ios-connect-hook.js

      Erfasst den gesamten iOS-Netzwerkverkehr direkt und leitet alle Verbindungen zum konfigurierten Proxy-Host und -Port um.

      Dies ist ein Low-Level-Hook, der auf alle Netzwerkverbindungen angewendet wird. Dadurch wird sichergestellt, dass alle Verbindungen zwangsweise zum Ziel-Proxy-Server umgeleitet werden, auch solche, die Proxy-Einstellungen ignorieren oder andere Raw-Socket-Verbindungen aufbauen.

    • ios-disable-detection.js

      Deaktiviert die JailMonkey-Jailbreak-Erkennung.

  • utilities/test-ip-connectivity.js

    Normalerweise möchten Sie dies wahrscheinlich nicht als Teil der Interception selbst verwenden, aber es kann bei der Einrichtung Ihrer Konfiguration sehr nützlich sein.

    Mit diesem Skript können Sie eine Liste möglicher IP-Adressen und einen Zielport konfigurieren. Der Prozess testet dann jede Adresse und sendet für die erste erreichbare angegebene Adresse eine Nachricht an den Frida-Client. Dies kann für automatisierte Konfigurationsprozesse nützlich sein, wenn Sie nicht wissen, welche IP-Adresse am besten geeignet ist, um vom Zielgerät (Ihrem Telefon) aus den Proxy-Server (Ihren Computer) zu erreichen.