hacktricks/mobile-pentesting/cordova-apps.md

9.6 KiB
Raw Blame History

Cordovaアプリ

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

投稿からの情報 https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58

基本情報

Apache Cordovaは、JavaScript、HTML、CSSを使用してハイブリッドアプリケーションAndroidiOSを作成するための人気のあるフレームワークです。

Cordovaの主な問題の1つは、react-nativeとは異なり、アプリケーションのソースを安全にするためのデフォルトの方法がないことです。Cordovaアプリケーションのソースは、APKまたはIPAにコンパイルした後でも、HTMLとJSを使用してアプリケーションをレンダリングするためのWebViewを使用しているため、ソースコードが公開されます。一方、react nativeはJavaScript VMを使用してJavaScriptコードを実行します。

Cordovaアプリケーションのクローン

Cordovaアプリを作成するには、NodeJSをインストールする必要があります。NodeJS以外にも、Android SDK、Java JDK、Gradleなど、ビルドプロセスを完了するために他のいくつかのものをインストールする必要があります。要件のリストについては、公式ドキュメントを参照してください。

この例では、元のアプリケーション名はBank.apkで、パッケージ名はcom.android.bankとします。

bank.apkを解凍し、bank/assets/wwwフォルダを開きます。Cordovaアプリケーションの完全なソースを表示できます。すべてのHTMLとJSコードを使用してアプリケーションのクローンを作成できます。また、アプリケーションの設定ファイルもbank/res/xml/config.xmlに見つけることができます。

これで、新しいCordovaアプリケーションプロジェクトを作成できます

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

次に、bank/assets/wwwからすべてのファイルとフォルダをbank-new/wwwにコピーする必要があります。

ソースコードをコピーする際には、cordova_plugins.jscordova.jscordova-js-src/plugins/などのいくつかのファイルとフォルダを除外する必要があります。上記で言及されたものを除いて、すべてのファイルとフォルダをコピーすることができます。

新しいCordovaプロジェクトを作成する際には、アプリがAndroid用かiOS用かを指定する必要があります。Androidアプリをクローンしているので、Androidプラットフォームを追加する必要があります。Cordovaにはプラットフォームのバージョンがあり、各バージョンにはAndroid APIやAndroidバージョンへのサポートが異なります。

Android APIとCordova Androidプラットフォームのバージョンは異なります。こちらでプラットフォームのバージョンとAndroid APIへのサポートの一覧を確認できます。

Cordova Androidプラットフォームを追加するには、アプリケーションで元々使用されていたバージョンを見つける必要があります。異なるバージョンを使用すると問題が発生する可能性があるため、同じソースコードを使用してアプリケーションをクローンしています。cordova.jsファイルを開き、PLATFORM_VERSION_BUILD_LABELを検索して、アプリケーションで使用されているバージョンを見つけることができます。

\

Androidプラットフォームのサポートを追加したので、アプリケーションで使用されているすべての必要なプラグインを追加することができます。元のアプリケーションのbank/assets/www/cordova_plugins.jsには、アプリケーションで使用されているすべてのプラグインのリストがあります。これらのプラグインを1つずつインストールする必要があります。cordova_plugins.jsファイルでmodule.exports.metadataを検索します。バージョンも含めて、すべてのプラグインが表示されます。

Cordova Plugins

Cordova Plugins

以下のコマンドを使用して、すべてのプラグインを1つずつインストールする必要があります。

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

{% hint style="warning" %} もしプラグインがnpmで利用できない場合は、Githubで検索してください:

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

{% endhint %}

アプリケーションをコンパイルするためには、すべての要件がすでにインストールされていることを確認する必要があります。

cd bank-new
cordova requirements

セットアップが完了したら、APKをビルドすることができます。

cd bank-new
cordova build android — packageType=apk

上記のビルドコマンドは、デバッグメソッドが有効になったapkを作成します。これにより、Google Chromeを使用してアプリケーションをデバッグすることができます。apkをインストールする前に、apkに署名することを確認してください。アプリケーションにコード改ざん検出がある場合、特定の設定がされていない限り、バイパスされます。

自動ツール

MobSecco: Androidアプリケーションのクローンプロセスを完全に自動化するツール。

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥