From 4595f1d02bf89c1b958744717e3cad9e0a788b60 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 22 Jul 2025 18:11:04 +0000 Subject: [PATCH] Translated ['src/mobile-pentesting/cordova-apps.md'] to de --- src/mobile-pentesting/cordova-apps.md | 76 ++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 2 deletions(-) diff --git a/src/mobile-pentesting/cordova-apps.md b/src/mobile-pentesting/cordova-apps.md index a06fd1f9c..156c017ae 100644 --- a/src/mobile-pentesting/cordova-apps.md +++ b/src/mobile-pentesting/cordova-apps.md @@ -4,7 +4,7 @@ **Für weitere Details siehe [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Dies ist eine Zusammenfassung: -Apache Cordova ist bekannt dafür, die Entwicklung von **hybriden Anwendungen** mit **JavaScript, HTML und CSS** zu ermöglichen. Es erlaubt die Erstellung von Android- und iOS-Anwendungen; jedoch fehlt ein standardmäßiger Mechanismus zum Schutz des Quellcodes der Anwendung. Im Gegensatz zu React Native kompiliert Cordova den Quellcode standardmäßig nicht, was zu Sicherheitsanfälligkeiten durch Code-Manipulation führen kann. Cordova verwendet WebView, um Anwendungen darzustellen, wodurch der HTML- und JavaScript-Code selbst nach der Kompilierung in APK- oder IPA-Dateien sichtbar bleibt. React Native hingegen verwendet eine JavaScript-VM, um JavaScript-Code auszuführen, was einen besseren Schutz des Quellcodes bietet. +Apache Cordova ist bekannt dafür, die Entwicklung von **hybriden Anwendungen** mit **JavaScript, HTML und CSS** zu ermöglichen. Es erlaubt die Erstellung von Android- und iOS-Anwendungen; jedoch fehlt ein standardmäßiger Mechanismus zum Schutz des Quellcodes der Anwendung. Im Gegensatz zu React Native kompiliert Cordova den Quellcode standardmäßig nicht, was zu Sicherheitsanfälligkeiten durch Code-Manipulation führen kann. Cordova verwendet WebView, um Anwendungen darzustellen, wodurch der HTML- und JavaScript-Code auch nach der Kompilierung in APK- oder IPA-Dateien sichtbar bleibt. React Native hingegen verwendet eine JavaScript-VM, um JavaScript-Code auszuführen, was einen besseren Schutz des Quellcodes bietet. ### Klonen einer Cordova-Anwendung @@ -44,10 +44,82 @@ Um die APK zu erstellen, verwenden Sie den folgenden Befehl: cd bank-new cordova build android — packageType=apk ``` -Dieser Befehl generiert eine APK mit der aktivierten Debug-Option, was das Debuggen über Google Chrome erleichtert. Es ist entscheidend, die APK vor der Installation zu signieren, insbesondere wenn die Anwendung Mechanismen zur Erkennung von Code-Manipulationen enthält. +Dieser Befehl generiert ein APK mit der aktivierten Debug-Option, was das Debugging über Google Chrome erleichtert. Es ist entscheidend, das APK vor der Installation zu signieren, insbesondere wenn die Anwendung Mechanismen zur Erkennung von Code-Manipulationen enthält. ### Automatisierungstool Für diejenigen, die den Klonprozess automatisieren möchten, ist **[MobSecco](https://github.com/Anof-cyber/MobSecco)** ein empfohlenes Tool. Es vereinfacht das Klonen von Android-Anwendungen und vereinfacht die oben beschriebenen Schritte. +--- + +## Sicherheitsrisiken & Aktuelle Schwachstellen (2023-2025) + +Die pluginbasierte Architektur von Cordova bedeutet, dass **der Großteil der Angriffsfläche in Drittanbieter-Plugins und der WebView-Brücke liegt**. Die folgenden Probleme wurden in den letzten Jahren aktiv ausgenutzt oder öffentlich bekannt gemacht: + +* **Bösartige NPM-Pakete.** Im Juli 2024 wurde das Paket `cordova-plugin-acuant` aus dem NPM-Registry entfernt, nachdem entdeckt wurde, dass es während der Installation bösartigen Code ablegte (OSV-ID MAL-2024-7845). Jede Entwicklermaschine, die `npm install cordova-plugin-acuant` ausgeführt hat, sollte als kompromittiert betrachtet werden. Überprüfen Sie `package.json`/`package-lock.json` auf unerwartete Cordova-Plugins und fixieren Sie vertrauenswürdige Versionen. [OSV advisory](/) +* **Unvalidierte Deeplinks → XSS/RCE.** `CleverTap Cordova Plugin ≤ 2.6.2` (CVE-2023-2507) versäumt es, Deeplink-Eingaben zu bereinigen, was es einem Angreifer ermöglicht, beliebiges JavaScript einzuschleusen, das im Haupt-WebView-Kontext ausgeführt wird, wenn ein manipuliertes Link geöffnet wird. Aktualisieren Sie auf ≥ 2.6.3 oder entfernen Sie nicht vertrauenswürdige URI-Parameter zur Laufzeit. [CVE-2023-2507](/) +* **Veralteter Plattformcode.** `cordova-android` ≤ 12 wird mit targetSdk 33 oder niedriger ausgeliefert. Ab Mai 2024 verlangt Google Play API 34, und mehrere WebView-Härtungsfunktionen (z. B. automatisch generiertes `exported="false"` für Komponenten) sind nur in API 34+ vorhanden. Aktualisieren Sie auf `cordova-android@13.0.0` oder höher. + +### Schnelle Überprüfungen während eines Pentests + +1. **Suchen Sie nach `android:debuggable="true"`** in der dekompilierten `AndroidManifest.xml`. Debuggable Builds exponieren die WebView über `chrome://inspect` und ermöglichen vollständige JS-Injektion. +2. Überprüfen Sie `config.xml` auf zu permissive ``-Tags oder fehlende CSP-Meta-Tags in `www/index.html`. +3. Grep `www/` nach `eval(`, `new Function(` oder dynamisch konstruiertem HTML, das CSP-Umgehungen in XSS umwandeln könnte. +4. Identifizieren Sie eingebettete Plugins in `plugins/` und führen Sie `npm audit --production` oder `osv-scanner --lockfile` aus, um bekannte CVEs zu finden. + +--- + +## Tipps zur dynamischen Analyse + +### Remote WebView-Debugging + +Wenn die Anwendung im **Debug**-Modus kompiliert wurde (oder explizit `WebView.setWebContentsDebuggingEnabled(true)` aufruft), können Sie Chrome DevTools anhängen: +```bash +adb forward tcp:9222 localabstract:chrome_devtools_remote +google-chrome --new-window "chrome://inspect/#devices" +``` +Dies gibt Ihnen eine Live-JavaScript-Konsole, einen DOM-Inspektor und die Möglichkeit, JavaScript-Funktionen zur Laufzeit zu überschreiben – äußerst praktisch, um clientseitige Logik zu umgehen. (Siehe die offizielle Dokumentation von Google für weitere Details.) + +### Hooking the JS ⇄ Native bridge with Frida + +Der Java-seitige Einstiegspunkt der meisten Plugins ist `org.apache.cordova.CordovaPlugin.execute(...)`. Das Hooken dieser Methode ermöglicht es Ihnen, Aufrufe, die von JavaScript gemacht werden, zu überwachen oder zu manipulieren: +```javascript +// frida -U -f com.vulnerable.bank -l hook.js --no-pause +Java.perform(function () { +var CordovaPlugin = Java.use('org.apache.cordova.CordovaPlugin'); +CordovaPlugin.execute.overload('java.lang.String','org.json.JSONArray','org.apache.cordova.CallbackContext').implementation = function(act, args, ctx) { +console.log('[Cordova] ' + act + ' => ' + args); +// Tamper the first argument of a sensitive action +if (act === 'encrypt') { +args.put(0, '1234'); +} +return this.execute(act, args, ctx); +}; +}); +``` +--- + +## Empfehlungen zur Härtung (2025) + +* **Aktualisieren Sie auf die neueste Plattform:** `cordova-android@13` (Mai 2024) zielt auf API 34 ab und bringt neue WebView-Minderungen. +* **Entfernen Sie Debug-Artefakte:** Stellen Sie sicher, dass `android:debuggable="false"` gesetzt ist und vermeiden Sie das Aufrufen von `setWebContentsDebuggingEnabled` in Release-Bauten. +* **Durchsetzen einer strengen CSP & AllowList:** Fügen Sie in jeder HTML-Datei ein `` Tag hinzu und beschränken Sie `` Ursprünge in `config.xml`. +Beispiel für eine minimale CSP, die Inline-Skripte blockiert: +```html + +``` +* **Deaktivieren Sie Klartextverkehr:** Setzen Sie in `AndroidManifest.xml` `android:usesCleartextTraffic="false"` und/oder stellen Sie eine [network-security-config] bereit, die TLS durchsetzt. +* **Plugin-Hygiene:** +* Fixieren Sie Plugin-Versionen mit `npm ci` und committen Sie die generierte `package-lock.json`. +* Führen Sie regelmäßig `npm audit`, `osv-scanner` oder `cordova-check-plugins` aus. +* **Obfuskation:** Minimieren Sie JavaScript mit Terser/UglifyJS und entfernen Sie Quellkarten aus Produktionsbauten, um das casual Reversing zu verlangsamen. + +--- + +## Referenzen + +* Apache Cordova – Cordova-Android 13.0.0 Versionshinweise (Mai 2024) +* OSV-ID MAL-2024-7845 – Schadhafter Code in `cordova-plugin-acuant` +* CVE-2023-2507 – CleverTap Cordova Plugin Deeplink XSS + {{#include ../banners/hacktricks-training.md}}