Translated ['src/mobile-pentesting/cordova-apps.md'] to af

This commit is contained in:
Translator 2025-07-22 18:11:19 +00:00
parent 715480be22
commit cc0d422d95

View File

@ -2,15 +2,15 @@
{{#include ../banners/hacktricks-training.md}}
**Vir verdere besonderhede kyk na [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Dit is 'n opsomming:
**Vir verdere besonderhede, kyk na [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Dit is 'n opsomming:
Apache Cordova is bekend vir die moontlikheid om **hibridetoepassings** te ontwikkel met **JavaScript, HTML, en CSS**. Dit maak die skepping van Android en iOS toepassings moontlik; egter, dit het nie 'n standaardmeganisme om die toepassings se bronkode te beveilig nie. In teenstelling met React Native, kompileer Cordova nie die bronkode nie, wat kan lei tot kwesbaarhede in kode-manipulasie. Cordova gebruik WebView om toepassings te vertoon, wat die HTML en JavaScript kode blootstel selfs nadat dit in APK of IPA lêers gekompileer is. React Native, aan die ander kant, gebruik 'n JavaScript VM om JavaScript kode uit te voer, wat beter beskerming van die bronkode bied.
Apache Cordova is bekend vir die moontlikheid om **hibridetoepassings** te ontwikkel met **JavaScript, HTML, en CSS**. Dit maak die skepping van Android- en iOS-toepassings moontlik; egter, dit het nie 'n standaardmeganisme om die toepassing se bronkode te beveilig nie. In teenstelling met React Native, kompileer Cordova nie die bronkode nie, wat kan lei tot kwesbaarhede in kode-manipulasie. Cordova gebruik WebView om toepassings te vertoon, wat die HTML- en JavaScript-kode blootstel selfs nadat dit in APK of IPA-lêers gekompileer is. React Native, aan die ander kant, gebruik 'n JavaScript VM om JavaScript-kode uit te voer, wat beter beskerming van die bronkode bied.
### Kloning van 'n Cordova Toepassing
### Kloning van 'n Cordova-toepassing
Voordat jy 'n Cordova toepassing kloon, maak seker dat NodeJS geïnstalleer is saam met ander vereistes soos die Android SDK, Java JDK, en Gradle. Die amptelike Cordova [dokumentasie](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) bied 'n omvattende gids vir hierdie installasies.
Voordat jy 'n Cordova-toepassing kloon, maak seker dat NodeJS geïnstalleer is saam met ander vereistes soos die Android SDK, Java JDK, en Gradle. Die amptelike Cordova [dokumentasie](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) bied 'n omvattende gids vir hierdie installasies.
Neem 'n voorbeeldtoepassing genaamd `Bank.apk` met die pakketnaam `com.android.bank`. Om toegang tot die bronkode te verkry, ontsyfer `bank.apk` en navigeer na die `bank/assets/www` gids. Hierdie gids bevat die volledige bronkode van die toepassing, insluitend HTML en JS lêers. Die toepassing se konfigurasie kan gevind word in `bank/res/xml/config.xml`.
Neem 'n voorbeeldtoepassing genaamd `Bank.apk` met die pakketnaam `com.android.bank`. Om toegang tot die bronkode te verkry, pak `bank.apk` uit en navigeer na die `bank/assets/www` gids. Hierdie gids bevat die volledige bronkode van die toepassing, insluitend HTML- en JS-lêers. Die toepassing se konfigurasie kan in `bank/res/xml/config.xml` gevind word.
Om die toepassing te kloon, volg hierdie stappe:
```bash
@ -20,7 +20,7 @@ cd bank-new
```
Kopieer die inhoud van `bank/assets/www` na `bank-new/www`, met uitsluiting van `cordova_plugins.js`, `cordova.js`, `cordova-js-src/`, en die `plugins/` gids.
Specifiseer die platform (Android of iOS) wanneer jy 'n nuwe Cordova-projek skep. Vir die kloon van 'n Android-app, voeg die Android-platform by. Let daarop dat Cordova se platformweergawe en Android API-vlakke verskillend is. Verwys na die Cordova [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) vir besonderhede oor platformweergawe en ondersteunde Android API's.
Specifiseer die platform (Android of iOS) wanneer 'n nuwe Cordova-projek geskep word. Vir die kloon van 'n Android-app, voeg die Android-platform by. Let daarop dat Cordova se platformweergawe en Android API-vlakke verskillend is. Verwys na die Cordova [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) vir besonderhede oor platformweergawe en ondersteunde Android API's.
Om die toepaslike Cordova Android-platformweergawe te bepaal, kyk na die `PLATFORM_VERSION_BUILD_LABEL` in die oorspronklike aansoek se `cordova.js`-lêer.
@ -34,7 +34,7 @@ As 'n plugin nie op npm beskikbaar is nie, kan dit van GitHub verkry word:
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
Verseker dat alle vereistes nagekom word voordat jy saamstel:
Maak seker dat alle vereistes nagekom word voordat jy saamstel:
```bash
cd bank-new
cordova requirements
@ -50,4 +50,76 @@ Hierdie opdrag genereer 'n APK met die foutopsporing opsie geaktiveer, wat fouto
Vir diegene wat die kloonproses wil outomatiseer, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** is 'n aanbevole gereedskap. Dit stroomlyn die kloon van Android aansoeke, wat die stappe hierbo vereenvoudig.
---
## Sekuriteitsrisiko's & Onlangse Kw vulnerabilities (2023-2025)
Cordova se plugin-gebaseerde argitektuur beteken dat **meeste van die aanval oppervlak binne derdeparty plugins en die WebView brug sit**. Die volgende probleme is aktief uitgebuit of publiek bekend gemaak in die afgelope paar jaar:
* **Kwaadaardige NPM Pakkette.** In Julie 2024 is die pakket `cordova-plugin-acuant` uit die NPM registrasie verwyder nadat dit ontdek is dat dit kwaadaardige kode tydens installasie laat val (OSV-ID MAL-2024-7845). Enige ontwikkelaar masjien wat `npm install cordova-plugin-acuant` uitgevoer het, moet as gecompromitteerd beskou word. Oudit `package.json`/`package-lock.json` vir onverwagte Cordova plugins en pin vertroude weergawes. [OSV advisory](/)
* **Ongevalideerde Deeplinks → XSS/RCE.** `CleverTap Cordova Plugin ≤ 2.6.2` (CVE-2023-2507) slaag daarin om deeplink invoer te saniteer, wat 'n aanvaller toelaat om arbitrêre JavaScript in te voeg wat in die hoof WebView konteks uitgevoer word wanneer 'n vervaardigde skakel geopen word. Opdateer na ≥ 2.6.3 of verwyder onbetroubare URI parameters tydens uitvoering. [CVE-2023-2507](/)
* **Verouderde Platform Kode.** `cordova-android` ≤ 12 verskaf met targetSdk 33 of laer. Begin Mei 2024 vereis Google Play API 34, en verskeie WebView versterking funksies (bv. outomaties gegenereerde `exported="false"` vir komponente) is slegs teenwoordig in API 34+. Opgradeer na `cordova-android@13.0.0` of later.
### Vinige kontroles tydens 'n pentest
1. **Soek vir `android:debuggable="true"`** in die gedecompileerde `AndroidManifest.xml`. Debugbare weergawes stel die WebView bloot oor `chrome://inspect` wat volle JS-inspuiting toelaat.
2. Hersien `config.xml` vir oordrewe toelaatbare `<access origin="*">` etikette of ontbrekende CSP meta-etikette in `www/index.html`.
3. Grep `www/` vir `eval(`, `new Function(` of dinamies-geboude HTML wat CSP omseilings in XSS kan omskep.
4. Identifiseer ingebedde plugins in `plugins/` en voer `npm audit --production` of `osv-scanner --lockfile` uit om bekende CVEs te vind.
---
## Dinamiese Analise Wenke
### Afgeleë WebView Foutopsporing
As die aansoek in **debug** modus gecompileer is (of eksplisiet `WebView.setWebContentsDebuggingEnabled(true)` aanroep), kan jy Chrome DevTools aanheg:
```bash
adb forward tcp:9222 localabstract:chrome_devtools_remote
google-chrome --new-window "chrome://inspect/#devices"
```
Dit gee jou 'n lewendige JavaScript-konsol, DOM-inspekteerder en die vermoë om JavaScript-funksies tydens uitvoering te oorskryf uiters handig om kliënt-kant logika te omseil. (Sien Google se amptelike dokumentasie vir meer besonderhede.)
### Hooking the JS ⇄ Native bridge with Frida
Die Java-kant toegangspunt van die meeste plugins is `org.apache.cordova.CordovaPlugin.execute(...)`. Hooking hierdie metode laat jou toe om oproepe wat van JavaScript gemaak word, te monitor of te manipuleer:
```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);
};
});
```
---
## Versterking Aanbevelings (2025)
* **Opdateer na die nuutste platform:** `cordova-android@13` (Mei 2024) teiken API 34 en bring nuwe WebView versagings.
* **Verwyder debug artefakte:** Verseker `android:debuggable="false"` en vermy om `setWebContentsDebuggingEnabled` in vrystellingsboude aan te roep.
* **Handhaaf 'n streng CSP & AllowList:** Voeg 'n `<meta http-equiv="Content-Security-Policy" ...>` tag in elke HTML-lêer by en beperk `<access>` oorspronge in `config.xml`.
Voorbeeld minimale CSP wat inline skripte blokkeer:
```html
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; object-src 'none'; frame-ancestors 'none'">
```
* **Deaktiveer duidelike teks verkeer:** In `AndroidManifest.xml` stel `android:usesCleartextTraffic="false"` in en/of verskaf 'n [network-security-config] wat TLS afdwing.
* **Plugin higiëne:**
* Pin plugin weergawes met `npm ci` en commit die gegenereerde `package-lock.json`.
* Periodes loop `npm audit`, `osv-scanner` of `cordova-check-plugins`.
* **Obfuskasie:** Minify JavaScript met Terser/UglifyJS en verwyder bronkaarte uit produksieboude om informele omkering te vertraag.
---
## Verwysings
* Apache Cordova Cordova-Android 13.0.0 vrylating notas (Mei 2024)
* OSV-ID MAL-2024-7845 Kwaadwillige kode in `cordova-plugin-acuant`
* CVE-2023-2507 CleverTap Cordova Plugin deeplink XSS
{{#include ../banners/hacktricks-training.md}}