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
Tools/GitHubGitHub/sterrasec/apk-interceptor
Android-SicherheitSchwachstellenanalyseMobile App-PenetrationstestsWebanwendungs-ExploitationInformationsbeschaffungPenetrationstests
GitHubsterrasec/apk-interceptor

apk-interceptor

Android-Deeplink-, Intent- und WebView-Bridge-Bewertungshelfer für ethisches Hacken

Repository anzeigen
914vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

apk-interceptor

Build Check

Android-Bewertungshelfer für Deeplinks, Intents und WebView-Brücken

apk-interceptor ist eine portable Android-Test-APK für autorisierte Anwendungssicherheitsbewertungen. Sie hilft Sicherheitsingenieuren zu überprüfen, wie eine Android-App externe Einstiegspunkte wie benutzerdefinierte URI-Schemata, Deeplinks, exportierte Activities und WebView-JavaScript-Brücken verarbeitet.

Das Tool ist absichtlich eingeschränkt:

  • Es deklariert nicht android.permission.INTERNET
  • Es sendet keine Daten an externe Server
  • Es führt keine Shell-Befehle aus
  • Es benötigt kein Root, Magisk, Frida oder Runtime-Instrumentierung
  • Es stellt nur eine lokale content://-Payload-Datei bereit
  • Es registriert ein benutzerdefiniertes URI-Schema, das zur Build-Zeit festgelegt wird

Motivation

Bei der Sicherheitsbewertung von Android-Anwendungen müssen viele Erkenntnisse aus der statischen Analyse dennoch durch einen kleinen Proof of Concept auf dem Gerät bestätigt werden, bevor sie als bestätigt gelten können: Registrierung eines benutzerdefinierten URI-Schemas, Senden eines expliziten Intents, Bereitstellen einer lokalen content://-Payload oder Überprüfung, ob JavaScript eine WebView-Brücke erreichen kann.

Das Erstellen einer neuen Wegwerf-Test-App für jeden Fall ist wiederholt und fehleranfällig. Kleine Unterschiede in Manifesteinträgen, Authorities, URI-Grants, Paketnamen oder Intent-Konstruktion können die Verifizierung verlangsamen und die Reproduzierbarkeit der Ergebnisse erschweren.

apk-interceptor wurde erstellt, um diesen Bestätigungsschritt wiederholbar zu machen. Statt für jede Bewertung eine neue PoC-APK zu schreiben, bauen Sie dieses Tool mit dem autorisierten Schema oder der Anwendungs-ID, die Sie benötigen, führen den Test auf dem Gerät durch und halten den Workflow bewusst eingeschränkt: keine INTERNET-Berechtigung, keine externe Datenübertragung, keine Shell-Ausführung und keine Root-Abhängigkeit.

Was Sie testen können

apk-interceptor ist für diese Bewertungsaufgaben nützlich:

Detaillierte Schwachstellen-Durchgänge:

  • Custom URI Scheme Hijacking
  • Deeplink Open Redirect
  • Exported Activity With Untrusted Intent Data
  • WebView JavaScript Bridge Exposure Via content://

Die App führt ein In-Memory-Bewertungsprotokoll für gesendete Intents, empfangene Deeplinks, Bridge-Callbacks, JavaScript-Ergebnisse und Fehler. Protokolle verschwinden, wenn der App-Prozess beendet wird. Da Protokolle nicht dauerhaft gespeichert werden, erfassen Sie Beweise mit Screenshots oder Bildschirmaufnahmen während der Arbeit.

Wie es sich vergleicht

apk-interceptor ist ein Bestätigungs-Tool, kein Entdeckungs- oder Exploit-Framework. Es setzt voraus, dass Sie bereits wissen, was zu testen ist (Schema, Activity-Klasse, Bridge-Name) aus der statischen Analyse, und bietet eine sichere, geräteseitige Möglichkeit, die Erreichbarkeit zu überprüfen und Beweise zu sammeln. Es ist dazu gebaut, auf einem Bewertungsgerät installiert und sogar mit einem Kunden geteilt zu werden, daher enthält es keine INTERNET-Berechtigung, keine Shell-Ausführung, keine Datenexfiltration und keine Root-Anforderung.

Wo es neben den üblichen Android-Tools steht:

Die beiden Bereiche, in denen apk-interceptor den deutlichsten Vorteil gegenüber den Alternativen hat:

  • Schema-Hijack-Nachweise: Handeln als die zweite App, die das Schema tatsächlich registriert und jeden empfangenen Parameter protokolliert, was adb/statische Analyse nicht zeigen kann.
  • content:// → WebView-Brückenverifikation: Ein nicht exportierter, einzelner Dateianbieter, dessen Payload nur durch eine temporäre Intent-Leseberechtigung zugestellt wird, plus ein lokaler Selbsttest-WebView zur Vorabvalidierung der Payload-Syntax.

Senden vs. Abfangen

apk-interceptor behandelt Senden und Abfangen unterschiedlich, und dies ist das Wichtigste, das Sie vor der Nutzung verstehen müssen:

AktionModulBenutzerdefiniertes Schema zur Build-Zeit nötig?
Senden eines Intents oder Deeplinks an eine andere AppSenderNein, geben Sie zur Laufzeit eine beliebige URI, Paket oder Activity ein
Abfangen (Empfangen) eines Deeplinks für ein benutzerdefiniertes SchemaInterceptorJa, das Schema wird zur Build-Zeit in die APK eingebaut

Um einen maßgeschneiderten Deeplink an die bewertete App zu senden, müssen Sie nicht neu bauen: Verwenden Sie den Implicit Deeplink-Modus des Sender-Tabs und geben Sie eine beliebige URI ein.

Um einen Deeplink abzufangen, das heißt, Android dazu zu bringen, ein benutzerdefiniertes Schema an apk-interceptor weiterzuleiten, damit Sie einen möglichen Schema-Hijack beobachten können, müssen Sie die APK mit diesem Schema über --scheme bauen. Das Schema wird absichtlich zur Build-Zeit festgelegt (eine Design-Schutzmaßnahme); apk-interceptor registriert niemals beliebige Schemata zur Laufzeit. Wenn Sie das zu bewertende Schema ändern, bauen Sie neu und installieren Sie erneut.

Anforderungen

  • Android Studio mit Android SDK 35
  • Android 12+ Gerät oder Emulator
  • JDK 17+
  • adb für Geräteinstallation und optionale Befehlszeilentests

Bauen und Installieren

Bauen Sie die APK mit dem benutzerdefinierten URI-Schema, das Sie zu bewerten berechtigt sind:

root@kitploit:~
./build-interceptor.sh --scheme <authorized_custom_scheme>
adb install ./out/apk-interceptor-<authorized_custom_scheme>-debug.apk

Optionale Build-Flags:

root@kitploit:~
./build-interceptor.sh \
  --scheme <authorized_custom_scheme> \
  --app-id <custom.application.id> \
  --output ./out

--app-id setzt die installierte Anwendungs-ID (die Paketidentität auf dem Gerät und die content://<applicationId>.payload-Authority) zur Build-Zeit. Der Standardwert ist com.sterrasec.apkinterceptor. Überschreiben Sie ihn mit --app-id, wenn Sie mehrere getrennt installierbare Builds für verschiedene Bewertungen benötigen. Das Windows-Äquivalent ist build-interceptor.bat.

Das Standard-Schema intercept-poc-example ist ein harmloser Platzhalter. Das Build-Skript weigert sich, eine Bewertungs-APK mit diesem Standard-Schema zu produzieren.

Erster Start

Beim ersten Start für jede App-Version zeigt apk-interceptor einen Dialog zur autorisierten Nutzung. Nachdem Sie auf Ich verstehe getippt haben, zeigt dieselbe Version den Dialog nicht erneut. Der Sender-Tab zeigt dennoch eine dauerhafte Warnung, da er Intents an andere Apps senden kann.

Dialog zur autorisierten Nutzung

Screenshots

SenderPayloadInterceptor
Sender-TabPayload-TabInterceptor-Tab

App-Module

Interceptor

Verwenden Sie diesen Tab, um die Abfangbarkeit benutzerdefinierter URI-Schemata zu überprüfen.

Was es anzeigt:

  • Das in diese APK kompilierte Schema
  • Eine Warnung, wenn das Dummy-Standardschema noch verwendet wird
  • Empfangene Deeplink-Protokolle
  • Ein Test-Query-Parameterfeld
  • Test-Deeplink senden
  • Leeren

Grundlegender Workflow:

  1. Bauen Sie die APK mit dem bewerteten benutzerdefinierten Schema.
  2. Installieren Sie sie neben der bewerteten App.
  3. Lösen Sie einen Deeplink für dieses Schema aus dem bewerteten Flow, Browser, adb oder dem integrierten Test-Deeplink senden-Button aus.
  4. Wenn Android den Link an apk-interceptor weiterleitet, öffnen Sie den Interceptor-Tab und überprüfen Sie die empfangene URI und Query-Parameter.

Über Test-Deeplink senden: Es sendet immer <scheme>://test?<Ihre Parameter> mit einem festen test-Host, ist also dazu gedacht zu bestätigen, dass apk-interceptor das Schema empfängt und protokolliert, nicht um die spezifischen Deeplink-Routen der bewerteten App anzusteuern. Um einen maßgeschneiderten Deeplink zu senden, der dem erforderlichen Host oder Pfad der bewerteten App entspricht, verwenden Sie stattdessen den Implicit Deeplink-Modus des Sender-Tabs.

adb-Beispiel:

root@kitploit:~
adb shell am start -W \
  -a android.intent.action.VIEW \
  -d 'my-authorized-scheme://test?source=adb\&message=hello%20world'

Verwenden Sie \&, wenn Sie mehrere Query-Parameter über adb shell senden; andernfalls könnte die Geräte-Shell & als Befehlstrenner behandeln.

Erwartetes Ergebnis:

  • apk-interceptor öffnet zum Interceptor-Tab
  • Ein RECEIVED-Protokolleintrag erscheint
  • Durch Tippen auf den Protokolleintrag werden die vollständige URI und die Parameterliste erweitert

Sender

Verwenden Sie diesen Tab, um während eines autorisierten Tests kontrollierte Intents zu senden.

Modi:

  • Implicit Deeplink: sendet Intent(ACTION_VIEW, Uri.parse(uri))
  • Explicit Activity: sendet einen Intent an ein bestimmtes Paket und eine Activity-Klasse

Felder und Steuerelemente:

  • URI für den implicit-deeplink-Modus
  • Paketname für den explicit-activity-Modus
  • Activity-Klasse für den explicit-activity-Modus
  • content:// URI anhängen, um die lokale Payload-URI als Intent-Daten zu setzen (nur im Explicit Activity-Modus angezeigt; siehe Hinweis unten)
  • FLAG_GRANT_READ_URI_PERMISSION, um Lesezugriff auf die angehängte Payload-URI zu gewähren
  • Intent senden

Implicit-Deeplink-Workflow:

  1. Wählen Sie Implicit Deeplink.
  2. Geben Sie eine URI ein, die dem Deeplink-Muster der bewerteten App entspricht.
  3. Tippen Sie auf Intent senden.
  4. Beobachten Sie das Verhalten der bewerteten App und das apk-interceptor-Protokoll.

Explicit-Activity-Workflow:

  1. Bestätigen Sie, dass die Ziel-Activity exportiert ist und von Ihrer Autorisierung abgedeckt wird.
  2. Wählen Sie Explicit Activity.
  3. Geben Sie den Paketnamen der bewerteten App ein.
  4. Geben Sie den Namen der exportierten Activity-Klasse ein.
  5. Aktivieren Sie optional content:// URI anhängen.
  6. Tippen Sie auf Intent senden.

Hinweise:

  • apk-interceptor weiß nicht, ob die bewertete App den Intent sicher verarbeitet hat. Sie müssen das Verhalten der bewerteten App, Protokolle oder Test-Harness beobachten.
  • Der content://-Anhang ist nützlich, wenn Sie testen, ob eine Ziel-Activity nicht vertrauenswürdige Intent-Daten an ein WebView übergibt.
  • content:// URI anhängen wird nur im Explicit Activity-Modus angeboten. Die Payload wird als data des Intents zugestellt, was die im Implicit Deeplink-Modus eingegebene URI überschreiben würde, daher ist die Option dort ausgeblendet.
  • PayloadProvider ist nicht exportiert. Die bewertete App kann die angehängte content://-Payload nur lesen, weil der Intent ihr über FLAG_GRANT_READ_URI_PERMISSION temporären Lesezugriff gewährt. Lassen Sie dieses Flag aktiviert und liefern Sie die URI über den Intent. Ein content://-URI, der auf andere Weise geöffnet wird, ist für eine andere App nicht lesbar.

Payload

Verwenden Sie diesen Tab, um eine lokale HTML-Payload zu erstellen und die JavaScript-Bridge-Syntax im eigenen Selbsttest-WebView von apk-interceptor zu validieren.

Was es enthält:

  • HTML-Editor
  • Nach Seitenladevorgang ausgewertetes JavaScript-Editor
  • Bridge-Objektname
  • Generierter content://-URI
  • Payload speichern
  • Selbsttest ausführen
  • Selbsttest-WebView
  • Bridge-Ergebnis- und Konsolenprotokolle

Generiertes Payload-URI-Format:

root@kitploit:~
content://<applicationId>.payload/current.html

Der Anbieter stellt nur diese feste Datei bereit:

root@kitploit:~
filesDir/payloads/current.html

Payload-Selbsttest-Workflow:

  1. Geben Sie HTML in das HTML-Feld ein oder fügen Sie es ein.
  2. Geben Sie den Bridge-Objektnamen ein, den Sie lokal testen möchten, z. B. localBridge.
  3. Fügen Sie JavaScript entweder in Ihr HTML oder in den JavaScript-Editor ein.
  4. Tippen Sie auf Payload speichern.
  5. Tippen Sie auf Selbsttest ausführen.
  6. Überprüfen Sie die Einträge BRIDGE_RESULT, console.log und evaluateJavascript result im Protokoll.

Beispiel-Selbsttest-JavaScript:

root@kitploit:~
console.log("payload loaded");
window.localBridge.logResult(window.localBridge.getInfo());

Der Selbsttest-Bridge stellt zur Verfügung:

root@kitploit:~
window.<bridgeName>.logResult("message");
window.<bridgeName>.getInfo();

Wichtige Einschränkung:

Der Selbsttest-WebView bestätigt, dass Ihre lokale Payload und Bridge-Call-Syntax innerhalb von apk-interceptor funktionieren. Er kann nicht beobachten, ob das WebView einer anderen App Ihre Payload ausgeführt oder seine eigene Bridge aufgerufen hat. Überprüfen Sie für die bewertete App über deren UI, Protokolle, Test-Hooks oder Chrome DevTools, falls die App debuggbar ist.

Schwachstellenorientierte Workflows

1. Hijacking benutzerdefinierter URI-Schemata

Risiko:

Eine Android-App registriert ein benutzerdefiniertes URI-Schema anstelle eines verifizierten App-Links. Jede andere App kann dasselbe Schema registrieren, sodass Android möglicherweise eine App-Auswahl anzeigt oder Links an eine andere App weiterleitet.

Verwenden Sie apk-interceptor, um zu prüfen:

  • Ob das Schema von einer anderen App registriert werden kann
  • Ob Android apk-interceptor als Handler anbietet
  • Ob sensible Werte in Deeplink-Parametern erscheinen

Schritte:

  1. Identifizieren Sie das benutzerdefinierte Schema der bewerteten App aus deren Manifest oder Dokumentation.
  2. Bauen Sie apk-interceptor mit diesem Schema.
  3. Installieren Sie apk-interceptor und die bewertete App auf demselben Testgerät.
  4. Lösen Sie einen Deeplink aus dem autorisierten Testablauf aus.
  5. Falls apk-interceptor ihn empfängt, überprüfen Sie das Interceptor-Protokoll.

Zu erfassende Beweise:

  • OS-Auswahlverhalten, falls angezeigt
  • Vollständige empfangene URI
  • Query-Parameter und ob diese sensible Werte enthalten
  • Benutzerinteraktion, die zur Weiterleitung des Links erforderlich ist

2. Deeplink-Parameterinjektion

Risiko:

Die bewertete App vertraut Deeplink-Parametern für Navigation, URL-Ladung, Feature-Flags, Kontoauswahl oder Darstellung ohne ausreichende Validierung.

Verwenden Sie apk-interceptor, um zu prüfen:

  • Ob maßgeschneiderte Parameter akzeptiert werden
  • Ob die App zu einem unbeabsichtigten Bildschirm navigiert
  • Ob unsichere URL-/Pfad-/Inhaltswerte verwendet werden

Schritte:

  1. Identifizieren Sie das Deeplink-Format der bewerteten App.
  2. Öffnen Sie Sender.
  3. Wählen Sie Implicit Deeplink.
  4. Geben Sie eine autorisierte Test-URI mit kontrollierten Parametern ein.
  5. Tippen Sie auf Intent senden.
  6. Beobachten Sie das Verhalten der bewerteten App.

Beispiel-Platzhalter:

root@kitploit:~
my-authorized-scheme://open?next=https%3A%2F%2Fauthorized-test.example%2Flanding

Verwenden Sie keine echten Drittanbieter-Domänen oder -Konten, es sei denn, sie sind ausdrücklich im Umfang enthalten.

3. Zugriffskontrolle exportierter Activities

Risiko:

Eine exportierte Activity führt sensible Aktionen aus oder zeigt sensible Daten an, ohne den Aufrufer, den Benutzerzustand oder die erforderliche Autorisierung zu überprüfen.

Verwenden Sie apk-interceptor, um zu prüfen:

  • Ob die exportierte Activity von einer anderen App gestartet wird
  • Ob sie sensibles Verhalten ohne erwartete Prüfungen ausführt
  • Ob Intent-Daten ihr Verhalten ändern

Schritte:

  1. Bestätigen Sie, dass die Activity exportiert und im Umfang ist.
  2. Öffnen Sie Sender.
  3. Wählen Sie Explicit Activity.
  4. Geben Sie Paketnamen und Activity-Klasse ein.
  5. Hängen Sie optional die lokale content://-Payload-URI an.
  6. Tippen Sie auf Intent senden.
  7. Beobachten Sie, ob die bewertete App Zugriffskontrollen durchsetzt.

Zu erfassende Beweise:

  • Activity gestartet oder blockiert
  • Authentifizierungs- oder Autorisierungsaufforderung
  • Sensible Aktion oder Datenoffenlegung
  • Von der Activity verwendete Intent-Daten

4. WebView-JavaScript-Brücken-Exposition über content://

Risiko:

Die bewertete App lädt nicht vertrauenswürdige content://-Intent-Daten in ein WebView, das auch eine JavaScript-Brücke über addJavascriptInterface bereitstellt.

Verwenden Sie apk-interceptor, um zu prüfen:

  • Ob eine lokale HTML-Payload als content:// zugestellt werden kann
  • Ob das Ziel-WebView die Payload lädt
  • Ob JavaScript aus dieser Quelle die Brücke erreichen kann

Schritte:

  1. Identifizieren Sie die Ziel-Activity und den Bridge-Objektnamen während der autorisierten Analyse.
  2. Öffnen Sie Payload.
  3. Erstellen Sie HTML/JS, das die erwartete Brücke aufruft.
  4. Verwenden Sie Selbsttest ausführen, um Ihre Syntax lokal zu validieren.
  5. Öffnen Sie Sender.
  6. Wählen Sie Explicit Activity.
  7. Geben Sie das Zielpaket und die Activity-Klasse ein.
  8. Aktivieren Sie content:// URI anhängen und lassen Sie FLAG_GRANT_READ_URI_PERMISSION aktiviert.
  9. Tippen Sie auf Intent senden.
  10. Beobachten Sie die bewertete App, um festzustellen, ob ihr WebView die Payload geladen hat und Bridge-Aufrufe ausgeführt wurden.

Wichtige Einschränkung:

apk-interceptor kann keine Ergebnisse von einer anderen App empfangen, es sei denn, diese App gibt sie explizit zurück oder zeigt sie an. Das Tool ist dazu entwickelt, eine lokale Payload zuzustellen und Syntax zu validieren, nicht Daten zu exfiltrieren.

Befehlszeilenprüfungen

Überprüfen Sie, dass die APK keinen Netzwerkzugriff anfordert:

root@kitploit:~
aapt dump permissions ./out/apk-interceptor-<scheme>-debug.apk

Erwartet: kein android.permission.INTERNET.

Einen Deeplink explizit an apk-interceptor senden:

root@kitploit:~
adb shell am start -W \
  -n com.sterrasec.apkinterceptor/.InterceptActivity \
  -a android.intent.action.VIEW \
  -d 'my-authorized-scheme://test?source=adb'

Einen Deeplink über den Android-Resolver senden:

root@kitploit:~
adb shell am start -W \
  -a android.intent.action.VIEW \
  -d 'my-authorized-scheme://test?source=adb'

Der explizite Befehl bestätigt das Verhalten von InterceptActivity. Der implizite Befehl bestätigt das Manifest-Intent-Filter und das Resolver-Verhalten.

Tests

Unit-Tests laufen auf der JVM mit Robolectric, sodass kein Gerät oder Emulator erforderlich ist. Sie decken PayloadProvider ab, einschließlich der Pfad-Whitelisting- und Traversal-Prüfungen, die verhindern, dass der Provider etwas anderes als die einzelne current.html-Payload bereitstellt.

root@kitploit:~
./gradlew testDebugUnitTest

Testergebnisse werden nach app/build/reports/tests/testDebugUnitTest/index.html geschrieben. Dieselbe Aufgabe wird in CI bei jedem Push und Pull-Request zu main ausgeführt.

Design-Schutzmaßnahmen

  • Kein android.permission.INTERNET
  • Keine externe Datenübertragung oder automatische Exfiltration
  • Keine Shell-Befehlsausführungsfunktion
  • Keine Root-, Magisk-, Frida- oder Instrumentierungsabhängigkeit
  • Keine Laufzeitregistrierung beliebiger Schemata
  • Kein generischer Dateibereitstellungsanbieter
  • Nur /current.html wird von PayloadProvider bereitgestellt

Lizenz

MIT

Tool herunterladen
SzenarioModulWas es zu überprüfen hilft
Hijacking benutzerdefinierter URI-SchemataInterceptorOb eine andere App dasselbe benutzerdefinierte Schema registrieren und Links empfangen kann
Deeplink-ParameterverarbeitungSenderOb die bewertete App unsichere Query-/Path-Parameter akzeptiert
Exposition exportierter ActivitiesSenderOb eine exportierte Activity direkt von einer anderen App gestartet werden kann
WebView-Brücken-Exposition über content://Payload + SenderOb eine lokale HTML-Payload eine WebView-JavaScript-Brücke erreichen kann
Syntaxprüfung lokaler PayloadsPayloadOb Ihre HTML/JS-Payload im Selbsttest-WebView läuft
ToolRolleWie apk-interceptor sich unterscheidet
jadx / MobSF / QARK / SemgrepFinden anfälliger Einstiegspunkte (statisch)apk-interceptor scannt oder dekompiliert nicht; es bestätigt einen bereits vorhandenen Befund
deep-C / NSdeepLink / adb am startDeeplinks auflisten und sendenapk-interceptor kann auch senden, aber sein Unterscheidungsmerkmal ist das Empfangen eines gekaperten Schemas und die genaue Anzeige von URI und Parametern
drozerAllgemeines On-Device-Angriffsframework (Agent + oft Root)apk-interceptor ist eine einzelne leichte APK mit bewussten Sicherheitsvorkehrungen, engerem Umfang und einfacherer, kundensicherer Verteilung
Metasploit / FridaBewaffnen oder Haken (z. B. addJavascriptInterface RCE)apk-interceptor prüft nur die Erreichbarkeit der Brücke mit einer harmlosen Payload; es exfiltriert nie oder führt keine Shell-Befehle aus