hacktricks/mobile-pentesting/cordova-apps.md

79 lines
7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cordova Apps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**詳細については、[https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](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 [ドキュメント](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building)は、これらのインストールに関する包括的なガイドを提供しています。
`com.android.bank`というパッケージ名の`Bank.apk`という例のアプリケーションを考えてみましょう。ソースコードにアクセスするには、`bank.apk`を解凍し、`bank/assets/www`フォルダーに移動します。このフォルダーには、HTMLおよびJSファイルを含むアプリケーションの完全なソースコードが含まれています。アプリケーションの設定は`bank/res/xml/config.xml`にあります。
アプリケーションをクローンするには、次の手順に従ってください:
```bash
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
```
`bank/assets/www`の内容を`bank-new/www`にコピーしますが、`cordova_plugins.js`、`cordova.js`、`cordova-js-src/`、および`plugins/`ディレクトリは除外します。
新しいCordovaプロジェクトを作成する際には、プラットフォームAndroidまたはiOSを指定してください。Androidアプリをクローンする場合は、Androidプラットフォームを追加します。CordovaのプラットフォームバージョンとAndroid APIレベルは異なることに注意してください。プラットフォームバージョンとサポートされているAndroid APIの詳細については、Cordovaの[ドキュメント](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/)を参照してください。
適切なCordova Androidプラットフォームバージョンを確認するには、元のアプリケーションの`cordova.js`ファイル内の`PLATFORM_VERSION_BUILD_LABEL`をチェックしてください。
プラットフォームの設定後、必要なプラグインをインストールします。元のアプリケーションの`bank/assets/www/cordova_plugins.js`ファイルには、すべてのプラグインとそのバージョンがリストされています。以下のように、各プラグインを個別にインストールしてください。
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
もしプラグインがnpmで利用できない場合は、GitHubから取得できます:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
すべての前提条件が満たされていることを確認してからコンパイルしてください:
```bash
cd bank-new
cordova requirements
```
APKをビルドするには、次のコマンドを使用します
```bash
cd bank-new
cordova build android — packageType=apk
```
このコマンドは、デバッグオプションが有効なAPKを生成し、Google Chromeを介したデバッグを容易にします。アプリケーションにコード改ざん検出メカニズムが含まれている場合、インストール前にAPKに署名することが重要です。
### 自動化ツール
クローンプロセスを自動化したい方には、**[MobSecco](https://github.com/Anof-cyber/MobSecco)**をお勧めします。これは、Androidアプリケーションのクローンを簡素化し、上記の手順を簡略化します。
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}