From acc7fe11dec904923a8cfa30cc94f3450db50ccb Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 22 Jul 2025 18:11:26 +0000 Subject: [PATCH] Translated ['src/mobile-pentesting/cordova-apps.md'] to it --- src/mobile-pentesting/cordova-apps.md | 80 +++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/src/mobile-pentesting/cordova-apps.md b/src/mobile-pentesting/cordova-apps.md index 67bc7efbb..7e7f05e78 100644 --- a/src/mobile-pentesting/cordova-apps.md +++ b/src/mobile-pentesting/cordova-apps.md @@ -20,7 +20,7 @@ cd bank-new ``` Copia il contenuto di `bank/assets/www` in `bank-new/www`, escludendo `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` e la directory `plugins/`. -Specifica la piattaforma (Android o iOS) quando crei un nuovo progetto Cordova. Per clonare un'app Android, aggiungi la piattaforma Android. Nota che le versioni della piattaforma di Cordova e i livelli API di Android sono distinti. Consulta la [documentazione](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) di Cordova per dettagli sulle versioni della piattaforma e sulle API Android supportate. +Specifica la piattaforma (Android o iOS) quando crei un nuovo progetto Cordova. Per clonare un'app Android, aggiungi la piattaforma Android. Tieni presente che le versioni della piattaforma di Cordova e i livelli API di Android sono distinti. Consulta la [documentazione](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) di Cordova per dettagli sulle versioni della piattaforma e sulle API Android supportate. Per determinare la versione appropriata della piattaforma Cordova Android, controlla il `PLATFORM_VERSION_BUILD_LABEL` nel file `cordova.js` dell'applicazione originale. @@ -29,12 +29,12 @@ Dopo aver impostato la piattaforma, installa i plugin richiesti. Il file `bank/a cd bank-new cordova plugin add cordova-plugin-dialogs@2.0.1 ``` -Se un plugin non è disponibile su npm, può essere reperito da GitHub: +Se un plugin non è disponibile su npm, può essere prelevato da GitHub: ```bash cd bank-new cordova plugin add https://github.com/moderna/cordova-plugin-cache.git ``` -Assicurati che tutti i prerequisiti siano soddisfatti prima della compilazione: +Assicurati che tutti i requisiti siano soddisfatti prima della compilazione: ```bash cd bank-new cordova requirements @@ -48,6 +48,78 @@ Questo comando genera un APK con l'opzione di debug abilitata, facilitando il de ### Strumento di Automazione -Per coloro che cercano di automatizzare il processo di clonazione, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** è uno strumento consigliato. Semplifica la clonazione delle applicazioni Android, semplificando i passaggi descritti sopra. +Per coloro che cercano di automatizzare il processo di clonazione, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** è uno strumento raccomandato. Semplifica la clonazione delle applicazioni Android, semplificando i passaggi descritti sopra. + +--- + +## Rischi di Sicurezza e Vulnerabilità Recenti (2023-2025) + +L'architettura basata su plugin di Cordova significa che **la maggior parte della superficie di attacco si trova all'interno di plugin di terze parti e del ponte WebView**. I seguenti problemi sono stati attivamente sfruttati o divulgati pubblicamente negli ultimi anni: + +* **Pacchetti NPM Maligni.** Nel luglio 2024 il pacchetto `cordova-plugin-acuant` è stato rimosso dal registro NPM dopo che è stato scoperto che inseriva codice maligno durante l'installazione (OSV-ID MAL-2024-7845). Qualsiasi macchina di sviluppo che ha eseguito `npm install cordova-plugin-acuant` dovrebbe essere considerata compromessa. Audit `package.json`/`package-lock.json` per plugin Cordova inaspettati e fissa versioni fidate. [OSV advisory](/) +* **Deeplink Non Validati → XSS/RCE.** `CleverTap Cordova Plugin ≤ 2.6.2` (CVE-2023-2507) non riesce a sanitizzare l'input del deeplink, consentendo a un attaccante di iniettare JavaScript arbitrario che viene eseguito nel contesto principale di WebView quando viene aperto un link creato ad hoc. Aggiorna a ≥ 2.6.3 o rimuovi i parametri URI non fidati a runtime. [CVE-2023-2507](/) +* **Codice della Piattaforma Obsoleto.** `cordova-android` ≤ 12 viene fornito con targetSdk 33 o inferiore. A partire da maggio 2024 Google Play richiede API 34, e diverse funzionalità di indurimento di WebView (ad es. `exported="false"` generato automaticamente per i componenti) sono presenti solo in API 34+. Aggiorna a `cordova-android@13.0.0` o versioni successive. + +### Controlli Rapidi durante un pentest + +1. **Cerca `android:debuggable="true"`** nel `AndroidManifest.xml` decompilato. Le build debuggabili espongono il WebView su `chrome://inspect` consentendo l'iniezione completa di JS. +2. Rivedi `config.xml` per tag `` eccessivamente permissivi o meta-tag CSP mancanti in `www/index.html`. +3. Grep `www/` per `eval(`, `new Function(` o HTML costruito dinamicamente che potrebbe trasformare bypass CSP in XSS. +4. Identifica i plugin incorporati in `plugins/` ed esegui `npm audit --production` o `osv-scanner --lockfile` per trovare CVE noti. + +--- + +## Suggerimenti per Analisi Dinamica + +### Debugging Remoto di WebView + +Se l'applicazione è stata compilata in modalità **debug** (o chiama esplicitamente `WebView.setWebContentsDebuggingEnabled(true)`), puoi allegare Chrome DevTools: +```bash +adb forward tcp:9222 localabstract:chrome_devtools_remote +google-chrome --new-window "chrome://inspect/#devices" +``` +Questo ti offre una console JavaScript live, un ispettore DOM e la possibilità di sovrascrivere le funzioni JavaScript a runtime – estremamente utile per bypassare la logica lato client. (Vedi la documentazione ufficiale di Google per ulteriori dettagli.) + +### Hooking the JS ⇄ Native bridge with Frida + +Il punto di ingresso lato Java della maggior parte dei plugin è `org.apache.cordova.CordovaPlugin.execute(...)`. Hookare questo metodo ti consente di monitorare o manomettere le chiamate effettuate da JavaScript: +```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); +}; +}); +``` +--- + +## Raccomandazioni di indurimento (2025) + +* **Aggiorna alla piattaforma più recente:** `cordova-android@13` (Maggio 2024) mira all'API 34 e porta nuove mitigazioni per WebView. +* **Rimuovi artefatti di debug:** Assicurati che `android:debuggable="false"` e evita di chiamare `setWebContentsDebuggingEnabled` nelle build di rilascio. +* **Imponi una CSP rigorosa e una AllowList:** Aggiungi un tag `` in ogni file HTML e limita le origini `` in `config.xml`. +Esempio di CSP minima che blocca gli script inline: +```html + +``` +* **Disabilita il traffico in chiaro:** In `AndroidManifest.xml` imposta `android:usesCleartextTraffic="false"` e/o fornisci un [network-security-config] che impone TLS. +* **Igiene dei plugin:** +* Fissa le versioni dei plugin con `npm ci` e committa il `package-lock.json` generato. +* Esegui periodicamente `npm audit`, `osv-scanner` o `cordova-check-plugins`. +* **Offuscamento:** Minifica JavaScript con Terser/UglifyJS e rimuovi le mappe sorgente dalle build di produzione per rallentare il reversing occasionale. + +--- + +## Riferimenti + +* Apache Cordova – Note di rilascio di Cordova-Android 13.0.0 (Maggio 2024) +* OSV-ID MAL-2024-7845 – Codice malevolo in `cordova-plugin-acuant` +* CVE-2023-2507 – CleverTap Cordova Plugin deeplink XSS {{#include ../banners/hacktricks-training.md}}