Cordova Apps

Support HackTricks

Aby uzyskać więcej szczegółów, sprawdź https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58. Oto podsumowanie:

Apache Cordova jest uznawany za umożliwiający rozwój aplikacji hybrydowych przy użyciu JavaScript, HTML i CSS. Umożliwia tworzenie aplikacji na Androida i iOS; jednak nie ma domyślnego mechanizmu zabezpieczającego kod źródłowy aplikacji. W przeciwieństwie do React Native, Cordova nie kompiluje kodu źródłowego domyślnie, co może prowadzić do podatności na manipulację kodem. Cordova wykorzystuje WebView do renderowania aplikacji, co ujawnia kod HTML i JavaScript nawet po skompilowaniu do plików APK lub IPA. React Native z kolei wykorzystuje VM JavaScript do wykonywania kodu JavaScript, oferując lepszą ochronę kodu źródłowego.

Klonowanie aplikacji Cordova

Przed sklonowaniem aplikacji Cordova upewnij się, że NodeJS jest zainstalowany wraz z innymi wymaganiami, takimi jak Android SDK, Java JDK i Gradle. Oficjalna dokumentacja Cordova dokumentacja zawiera szczegółowy przewodnik dotyczący tych instalacji.

Rozważ przykład aplikacji o nazwie Bank.apk z nazwą pakietu com.android.bank. Aby uzyskać dostęp do kodu źródłowego, rozpakuj bank.apk i przejdź do folderu bank/assets/www. Ten folder zawiera pełny kod źródłowy aplikacji, w tym pliki HTML i JS. Konfigurację aplikacji można znaleźć w bank/res/xml/config.xml.

Aby sklonować aplikację, wykonaj następujące kroki:

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

Skopiuj zawartość bank/assets/www do bank-new/www, z wyłączeniem cordova_plugins.js, cordova.js, cordova-js-src/ oraz katalogu plugins/.

Określ platformę (Android lub iOS) podczas tworzenia nowego projektu Cordova. Aby sklonować aplikację na Androida, dodaj platformę Android. Zauważ, że wersje platformy Cordova i poziomy API Androida są różne. Zapoznaj się z dokumentacją Cordova documentation w celu uzyskania szczegółowych informacji na temat wersji platformy i obsługiwanych API Androida.

Aby określić odpowiednią wersję platformy Cordova Android, sprawdź PLATFORM_VERSION_BUILD_LABEL w pliku cordova.js oryginalnej aplikacji.

Po skonfigurowaniu platformy zainstaluj wymagane wtyczki. Plik bank/assets/www/cordova_plugins.js oryginalnej aplikacji zawiera listę wszystkich wtyczek i ich wersji. Zainstaluj każdą wtyczkę indywidualnie, jak pokazano poniżej:

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

Jeśli wtyczka nie jest dostępna na npm, można ją pobrać z GitHub:

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

Upewnij się, że wszystkie wymagania wstępne są spełnione przed kompilacją:

cd bank-new
cordova requirements

Aby zbudować APK, użyj następującego polecenia:

cd bank-new
cordova build android  packageType=apk

To polecenie generuje APK z włączoną opcją debugowania, co ułatwia debugowanie za pomocą Google Chrome. Kluczowe jest podpisanie APK przed instalacją, szczególnie jeśli aplikacja zawiera mechanizmy wykrywania manipulacji kodem.

Narzędzie Automatyzacji

Dla tych, którzy chcą zautomatyzować proces klonowania, MobSecco jest polecanym narzędziem. Ułatwia klonowanie aplikacji na Androida, upraszczając opisane powyżej kroki.

Support HackTricks

Last updated