hacktricks/mobile-pentesting/cordova-apps.md

6.1 KiB
Raw Blame History

Cordova Apps

ゼロからヒーローまでAWSハッキングを学ぶ htARTEHackTricks AWS Red Team Expert

HackTricks をサポートする他の方法:

詳細については https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58 をチェックしてください。これは要約です:

Apache Cordova は、JavaScript、HTML、およびCSS を使用して ハイブリッドアプリケーション の開発を可能にすることで知られています。Android およびiOSアプリケーションの作成を許可しますが、アプリケーションのソースコードを保護するデフォルトのメカニズムが欠けています。React Native とは対照的に、Cordova はデフォルトでソースコードをコンパイルしないため、コード改ざんの脆弱性が発生する可能性があります。 Cordova は WebView を使用してアプリケーションをレンダリングし、APKまたはIPAファイルにコンパイルされた後もHTMLとJavaScriptコードを公開します。一方、React Native はJavaScript VM を使用してJavaScriptコードを実行し、ソースコードの保護が向上します。

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

Cordovaアプリケーションをクローンする前に、NodeJS がインストールされていること、Android SDK、Java JDK、およびGradleなどの他の前提条件が満たされていることを確認してください。公式の Cordova documentation には、これらのインストールに関する包括的なガイドが提供されています。

Bank.apk という名前の例のアプリケーションがあり、パッケージ名が com.android.bank です。ソースコードにアクセスするには、bank.apk を解凍し、bank/assets/www フォルダに移動します。このフォルダには、HTMLファイルやJSファイルを含むアプリケーションの完全なソースコードが含まれています。アプリケーションの構成は bank/res/xml/config.xml にあります。

アプリケーションをクローンするには、以下の手順に従ってください:

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 APIについての詳細は、Cordovaのドキュメントを参照してください。

適切なCordova Androidプラットフォームバージョンを決定するには、元のアプリケーションのcordova.jsファイル内のPLATFORM_VERSION_BUILD_LABELを確認します。

プラットフォームを設定した後、必要なプラグインをインストールします。元のアプリケーションのbank/assets/www/cordova_plugins.jsファイルには、すべてのプラグインとそのバージョンがリストされています。以下に示すように、各プラグインを個別にインストールしてください:

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

もしプラグインがnpmにない場合、GitHubから取得することができます:

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

すべての前提条件がコンパイル前に満たされていることを確認してください。

cd bank-new
cordova requirements

APKをビルドするには、次のコマンドを使用します:

cd bank-new
cordova build android — packageType=apk

このコマンドは、デバッグオプションを有効にしてAPKを生成し、Google Chromeを介してデバッグを容易にします。特にアプリケーションにコード改ざん検出メカニズムが含まれている場合は、インストール前にAPKに署名することが重要です。

自動化ツール

クローニングプロセスを自動化したい人には、MobSecco がおすすめです。これはAndroidアプリケーションのクローニングを簡略化し、上記の手順を簡素化します。