hacktricks/mobile-pentesting/cordova-apps.md
2024-02-10 15:36:32 +00:00

6.4 KiB

Cordova Apps

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Weitere Informationen finden Sie unter https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58. Dies ist eine Zusammenfassung:

Apache Cordova ermöglicht die Entwicklung von hybriden Anwendungen mit JavaScript, HTML und CSS. Es ermöglicht die Erstellung von Android- und iOS-Anwendungen. Es fehlt jedoch ein standardmäßiger Mechanismus zur Sicherung des Quellcodes der Anwendung. Im Gegensatz zu React Native kompiliert Cordova den Quellcode standardmäßig nicht, was zu Schwachstellen bei der Code-Manipulation führen kann. Cordova verwendet WebView zur Darstellung von Anwendungen, wodurch der HTML- und JavaScript-Code auch nach der Kompilierung in APK- oder IPA-Dateien zugänglich ist. React Native hingegen verwendet eine JavaScript-VM zur Ausführung von JavaScript-Code und bietet einen besseren Schutz des Quellcodes.

Klonen einer Cordova-Anwendung

Bevor Sie eine Cordova-Anwendung klonen, stellen Sie sicher, dass NodeJS installiert ist, zusammen mit anderen Voraussetzungen wie dem Android SDK, Java JDK und Gradle. Die offizielle Cordova Dokumentation bietet eine umfassende Anleitung für diese Installationen.

Nehmen wir an, es gibt eine Beispielanwendung namens Bank.apk mit dem Paketnamen com.android.bank. Um auf den Quellcode zuzugreifen, entpacken Sie bank.apk und navigieren Sie zum Ordner bank/assets/www. Dieser Ordner enthält den vollständigen Quellcode der Anwendung, einschließlich HTML- und JS-Dateien. Die Konfiguration der Anwendung befindet sich in bank/res/xml/config.xml.

Um die Anwendung zu klonen, befolgen Sie diese Schritte:

npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new

Kopieren Sie den Inhalt von bank/assets/www nach bank-new/www, mit Ausnahme von cordova_plugins.js, cordova.js, cordova-js-src/ und dem Verzeichnis plugins/.

Geben Sie bei der Erstellung eines neuen Cordova-Projekts die Plattform (Android oder iOS) an. Um eine Android-App zu klonen, fügen Sie die Android-Plattform hinzu. Beachten Sie, dass die Plattformversionen von Cordova und die Android-API-Ebenen unterschiedlich sind. Weitere Informationen zu Plattformversionen und unterstützten Android-APIs finden Sie in der Cordova Dokumentation.

Um die geeignete Cordova Android Plattformversion zu ermitteln, überprüfen Sie das PLATFORM_VERSION_BUILD_LABEL in der cordova.js-Datei der Originalanwendung.

Nachdem Sie die Plattform eingerichtet haben, installieren Sie die erforderlichen Plugins. Die Datei bank/assets/www/cordova_plugins.js der Originalanwendung enthält eine Liste aller Plugins und ihrer Versionen. Installieren Sie jedes Plugin einzeln wie unten gezeigt:

cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1

Wenn ein Plugin nicht auf npm verfügbar ist, kann es von GitHub bezogen werden:

cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git

Stellen Sie sicher, dass alle Voraussetzungen erfüllt sind, bevor Sie kompilieren:

cd bank-new
cordova requirements

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 Debug-Option aktiviert, um das Debuggen über Google Chrome zu erleichtern. Es ist wichtig, die 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, wird das Tool MobSecco empfohlen. Es vereinfacht das Klonen von Android-Anwendungen und vereinfacht die oben beschriebenen Schritte.

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: