mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 09:27:32 +00:00
Translated ['mobile-pentesting/android-app-pentesting/README.md'] to jp
This commit is contained in:
parent
58d3f97cce
commit
a10e454b5a
1 changed files with 102 additions and 102 deletions
|
@ -1,34 +1,34 @@
|
|||
# Android Applications Pentesting
|
||||
|
||||
{% 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)
|
||||
AWSハッキングを学び、実践する:<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">\
|
||||
GCPハッキングを学び、実践する: <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>
|
||||
<summary>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.
|
||||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||||
* **参加する** 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に、または**私たちをフォロー**してください **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **ハッキングのトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを送信してください。
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
|
||||
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう!
|
||||
|
||||
**Hacking Insights**\
|
||||
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加してください
|
||||
**ハッキングの洞察**\
|
||||
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加する
|
||||
|
||||
**Real-Time Hack News**\
|
||||
リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界に遅れずについていきましょう
|
||||
**リアルタイムハックニュース**\
|
||||
リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界に遅れずについていく
|
||||
|
||||
**Latest Announcements**\
|
||||
新しいバグバウンティの開始や重要なプラットフォームの更新について最新情報を入手してください
|
||||
**最新の発表**\
|
||||
新しいバグバウンティの開始や重要なプラットフォームの更新について情報を得る
|
||||
|
||||
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
|
||||
**私たちに参加してください** [**Discord**](https://discord.com/invite/N3FrSbmwdy)で、今日からトップハッカーとコラボレーションを始めましょう!
|
||||
|
||||
## Android Applications Basics
|
||||
|
||||
|
@ -41,19 +41,19 @@ Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to
|
|||
## ADB (Android Debug Bridge)
|
||||
|
||||
これは、Androidデバイス(エミュレートまたは物理)に接続するために必要な主なツールです。\
|
||||
**ADB**は、コンピュータから**USB**または**ネットワーク**経由でデバイスを制御することを可能にします。このユーティリティは、ファイルの**コピー**、アプリの**インストール**と**アンインストール**、シェルコマンドの**実行**、データの**バックアップ**、ログの**読み取り**など、さまざまな機能を提供します。
|
||||
**ADB**は、コンピュータから**USB**または**ネットワーク**経由でデバイスを制御することを可能にします。このユーティリティは、**ファイルのコピー**、**アプリのインストール**と**アンインストール**、**シェルコマンドの実行**、**データのバックアップ**、**ログの読み取り**などの機能を提供します。
|
||||
|
||||
以下の[**ADB Commands**](adb-commands.md)のリストを見て、adbの使い方を学びましょう。
|
||||
以下の[**ADBコマンド**](adb-commands.md)のリストを確認して、adbの使い方を学びましょう。
|
||||
|
||||
## Smali
|
||||
|
||||
時には、**隠された情報**(おそらくよく難読化されたパスワードやフラグ)にアクセスするために**アプリケーションコードを修正する**ことが興味深い場合があります。そのため、apkを逆コンパイルし、コードを修正して再コンパイルすることが興味深いかもしれません。\
|
||||
[**このチュートリアルでは、APKを逆コンパイルし、Smaliコードを修正して、新しい機能を持つAPKを再コンパイルする方法を学ぶことができます**](smali-changes.md)。これは、**動的分析中のいくつかのテストの代替手段として非常に役立つ可能性があります**。したがって、**この可能性を常に念頭に置いておいてください**。
|
||||
[**このチュートリアルでは、APKを逆コンパイルし、Smaliコードを修正して、新しい機能を持つAPKを再コンパイルする方法を学ぶことができます**](smali-changes.md)。これは、**動的分析中のいくつかのテストの代替手段として非常に役立つ可能性があります**。そのため、**この可能性を常に念頭に置いておいてください**。
|
||||
|
||||
## Other interesting tricks
|
||||
## その他の興味深いトリック
|
||||
|
||||
* [Play Storeでの位置情報の偽装](spoofing-your-location-in-play-store.md)
|
||||
* **APKのダウンロード**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
|
||||
* **APKをダウンロード**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
|
||||
* デバイスからAPKを抽出する:
|
||||
```bash
|
||||
adb shell pm list packages
|
||||
|
@ -67,7 +67,7 @@ adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
|
|||
* [APKEditor](https://github.com/REAndroid/APKEditor)を使用して、すべてのスプリットとベースAPKをマージします:
|
||||
```bash
|
||||
mkdir splits
|
||||
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 1 | xargs -n1 -i adb pull {} splits
|
||||
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
|
||||
java -jar ../APKEditor.jar m -i splits/ -o merged.apk
|
||||
|
||||
# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner
|
||||
|
@ -76,11 +76,11 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
|||
## 静的分析
|
||||
|
||||
まず、APKを分析するためには、**デコンパイラを使用してJavaコードを確認する必要があります**。\
|
||||
詳細な情報については、[**こちらをお読みください。さまざまな利用可能なデコンパイラについての情報**](apk-decompilers.md)を参照してください。
|
||||
詳細な情報については、[**こちらをお読みください。さまざまな利用可能なデコンパイラについての情報**](apk-decompilers.md)。
|
||||
|
||||
### 興味深い情報を探す
|
||||
|
||||
APKの**文字列**を確認するだけで、**パスワード**、**URL**([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep))、**API**キー、**暗号化**、**Bluetooth UUID**、**トークン**など、興味深いものを探すことができます... コード実行の**バックドア**や認証バックドア(アプリへのハードコーディングされた管理者資格情報)も探してください。
|
||||
APKの**文字列**を確認するだけで、**パスワード**、**URL**([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep))、**API**キー、**暗号化**、**Bluetooth UUID**、**トークン**、および興味深いものを検索できます... コード実行の**バックドア**や認証バックドア(アプリへのハードコーディングされた管理者資格情報)も探してください。
|
||||
|
||||
**Firebase**
|
||||
|
||||
|
@ -96,16 +96,16 @@ APKの**文字列**を確認するだけで、**パスワード**、**URL**([h
|
|||
* **バックアップ設定**:機密情報を扱うアプリケーションには、`android:allowBackup="false"`属性を明示的に設定して、特にUSBデバッグが有効な場合にadbを介した不正なデータバックアップを防ぐ必要があります。
|
||||
* **ネットワークセキュリティ**:_res/xml/_内のカスタムネットワークセキュリティ構成(`android:networkSecurityConfig="@xml/network_security_config"`)は、証明書ピンやHTTPトラフィック設定などのセキュリティ詳細を指定できます。特定のドメインに対してHTTPトラフィックを許可する例があります。
|
||||
* **エクスポートされたアクティビティとサービス**:マニフェスト内のエクスポートされたアクティビティとサービスを特定することで、悪用される可能性のあるコンポーネントを明らかにできます。動的テスト中のさらなる分析により、これらのコンポーネントを悪用する方法が明らかになります。
|
||||
* **コンテンツプロバイダーとファイルプロバイダー**:公開されたコンテンツプロバイダーは、不正なアクセスやデータの変更を許可する可能性があります。ファイルプロバイダーの設定も注意深く確認する必要があります。
|
||||
* **コンテンツプロバイダーとファイルプロバイダー**:公開されたコンテンツプロバイダーは、不正なアクセスやデータの変更を許可する可能性があります。ファイルプロバイダーの構成も注意深く確認する必要があります。
|
||||
* **ブロードキャストレシーバーとURLスキーム**:これらのコンポーネントは悪用される可能性があり、特に入力脆弱性に対するURLスキームの管理方法に注意を払う必要があります。
|
||||
* **SDKバージョン**:`minSdkVersion`、`targetSDKVersion`、`maxSdkVersion`属性は、サポートされているAndroidバージョンを示し、セキュリティ上の理由から古い脆弱なAndroidバージョンをサポートしないことの重要性を強調します。
|
||||
* **SDKバージョン**:`minSdkVersion`、`targetSDKVersion`、および`maxSdkVersion`属性は、サポートされているAndroidバージョンを示し、セキュリティ上の理由から古い脆弱なAndroidバージョンをサポートしないことの重要性を強調します。
|
||||
|
||||
**strings.xml**ファイルからは、APIキー、カスタムスキーマ、その他の開発者ノートなどの機密情報が発見される可能性があり、これらのリソースの注意深いレビューの必要性を強調しています。
|
||||
**strings.xml**ファイルからは、APIキー、カスタムスキーマ、およびその他の開発者ノートなどの機密情報が発見される可能性があり、これらのリソースの注意深いレビューの必要性を強調しています。
|
||||
|
||||
### タップジャッキング
|
||||
|
||||
**タップジャッキング**は、**悪意のある** **アプリケーション**が起動され、**被害者アプリケーションの上に位置する**攻撃です。被害者アプリを視覚的に隠すと、そのユーザーインターフェースはユーザーを騙してそれと対話させるように設計されており、実際には被害者アプリに対する対話を渡しています。\
|
||||
実際には、**ユーザーが被害者アプリで実際にアクションを実行していることを知らないようにしています**。
|
||||
**タップジャッキング**は、**悪意のある** **アプリケーション**が起動され、**被害者アプリケーションの上に位置する**攻撃です。被害者アプリを視覚的に隠すと、そのユーザーインターフェースは、ユーザーがそれと対話するように騙すように設計されており、同時にその対話を被害者アプリに渡します。\
|
||||
実際には、**ユーザーが実際に被害者アプリでアクションを実行していることを知らないようにしています**。
|
||||
|
||||
詳細情報は以下を参照してください:
|
||||
|
||||
|
@ -127,37 +127,37 @@ APKの**文字列**を確認するだけで、**パスワード**、**URL**([h
|
|||
|
||||
**内部ストレージ**
|
||||
|
||||
Androidでは、**内部**ストレージに**保存された**ファイルは、**作成した**アプリのみが**アクセスできる**ように**設計されています**。このセキュリティ対策はAndroidオペレーティングシステムによって**強制され**、ほとんどのアプリケーションのセキュリティニーズには一般的に十分です。しかし、開発者は時折、`MODE_WORLD_READABLE`や`MODE_WORLD_WRITABLE`のようなモードを利用して、ファイルを異なるアプリケーション間で**共有**できるようにします。しかし、これらのモードは、他のアプリケーション(潜在的に悪意のあるものを含む)によるこれらのファイルへのアクセスを**制限しません**。
|
||||
Androidでは、**内部**ストレージに**保存された**ファイルは、**それらを** **作成した** **アプリ**によってのみ**アクセス可能**であるように**設計されています**。このセキュリティ対策はAndroidオペレーティングシステムによって**強制され**、ほとんどのアプリケーションのセキュリティニーズには一般的に十分です。しかし、開発者は時折、`MODE_WORLD_READABLE`や`MODE_WORLD_WRITABLE`のようなモードを利用して、ファイルを異なるアプリケーション間で**共有**できるようにします。しかし、これらのモードは、潜在的に悪意のある他のアプリケーションによるこれらのファイルへのアクセスを**制限しません**。
|
||||
|
||||
1. **静的分析**:
|
||||
* `MODE_WORLD_READABLE`および`MODE_WORLD_WRITABLE`の使用が**注意深く検討されるべきです**。これらのモードは、**意図しないまたは不正なアクセス**にファイルを**さらす可能性があります**。
|
||||
2. **動的分析**:
|
||||
* アプリによって作成されたファイルに設定された**権限**を**確認**します。特に、ファイルが**全世界に対して読み取りまたは書き込み可能に設定されているかどうかを確認**します。これは重大なセキュリティリスクを引き起こす可能性があり、デバイスにインストールされた**任意のアプリケーション**が、出所や意図に関係なく、これらのファイルを**読み取ったり変更したり**できるようになります。
|
||||
1. **静的分析:**
|
||||
* `MODE_WORLD_READABLE`および`MODE_WORLD_WRITABLE`の使用が**注意深く精査されるべきです**。これらのモードは、**意図しないまたは不正なアクセス**にファイルを**さらす可能性があります**。
|
||||
2. **動的分析:**
|
||||
* アプリによって作成されたファイルに設定された**権限**を**確認**します。特に、ファイルが**全世界に読み取りまたは書き込み可能に設定されているかどうかを確認**します。これは重大なセキュリティリスクを引き起こす可能性があり、デバイスにインストールされた**任意のアプリケーション**が、出所や意図に関係なく、これらのファイルを**読み取ったり変更したり**できるようになります。
|
||||
|
||||
**外部ストレージ**
|
||||
|
||||
**外部ストレージ**上のファイルを扱う際には、いくつかの注意が必要です:
|
||||
|
||||
1. **アクセス可能性**:
|
||||
* 外部ストレージ上のファイルは**全世界に対して読み取りおよび書き込み可能**です。つまり、任意のアプリケーションやユーザーがこれらのファイルにアクセスできます。
|
||||
* 外部ストレージ上のファイルは**全世界に読み取りおよび書き込み可能**です。つまり、任意のアプリケーションやユーザーがこれらのファイルにアクセスできます。
|
||||
2. **セキュリティの懸念**:
|
||||
* アクセスの容易さを考慮して、**機密情報を外部ストレージに保存しないことをお勧めします**。
|
||||
* アクセスの容易さを考慮すると、**機密情報を外部ストレージに保存しないことが推奨されます**。
|
||||
* 外部ストレージは取り外し可能であり、任意のアプリケーションによってアクセスされる可能性があるため、セキュリティが低下します。
|
||||
3. **外部ストレージからのデータ処理**:
|
||||
* 外部ストレージから取得したデータに対しては常に**入力検証を行う**必要があります。これは、データが信頼できないソースからのものであるため、重要です。
|
||||
* 動的読み込みのために外部ストレージに実行可能ファイルやクラスファイルを保存することは強く推奨されません。
|
||||
* 外部ストレージに実行可能ファイルやクラスファイルを保存して動的に読み込むことは強く推奨されません。
|
||||
* アプリケーションが外部ストレージから実行可能ファイルを取得する必要がある場合、これらのファイルが**署名され、暗号的に検証されていることを確認**してから動的に読み込む必要があります。このステップは、アプリケーションのセキュリティの整合性を維持するために重要です。
|
||||
|
||||
外部ストレージは`/storage/emulated/0`、`/sdcard`、`/mnt/sdcard`で**アクセス可能**です。
|
||||
|
||||
{% hint style="info" %}
|
||||
Android 4.4(**API 17**)以降、SDカードにはディレクトリ構造があり、**アプリが特定のアプリ用のディレクトリにのみアクセスできるように制限されています**。これにより、悪意のあるアプリケーションが他のアプリのファイルに対して読み取りまたは書き込みアクセスを得ることが防止されます。
|
||||
Android 4.4(**API 17**)以降、SDカードには、**アプリ専用のディレクトリへのアクセスを制限するディレクトリ構造**があります。これにより、悪意のあるアプリケーションが他のアプリのファイルに対して読み取りまたは書き込みアクセスを得ることが防止されます。
|
||||
{% endhint %}
|
||||
|
||||
**平文で保存された機密データ**
|
||||
|
||||
* **共有設定**:Androidは各アプリケーションが`/data/data/<packagename>/shared_prefs/`パスにXMLファイルを簡単に保存できるようにしており、時にはそのフォルダ内に平文で機密情報が見つかることがあります。
|
||||
* **データベース**:Androidは各アプリケーションが`/data/data/<packagename>/databases/`パスにSQLiteデータベースを簡単に保存できるようにしており、時にはそのフォルダ内に平文で機密情報が見つかることがあります。
|
||||
* **共有設定**:Androidは各アプリケーションが`/data/data/<packagename>/shared_prefs/`パスにXMLファイルを簡単に保存できるようにしており、そのフォルダ内に平文で機密情報が見つかることがあります。
|
||||
* **データベース**:Androidは各アプリケーションが`/data/data/<packagename>/databases/`パスにSQLiteデータベースを簡単に保存できるようにしており、そのフォルダ内に平文で機密情報が見つかることがあります。
|
||||
|
||||
### 壊れたTLS
|
||||
|
||||
|
@ -174,7 +174,7 @@ A good way to test this is to try to capture the traffic using some proxy like B
|
|||
|
||||
**Poor Key Management Processes**
|
||||
|
||||
一部の開発者は、ローカルストレージに機密データを保存し、コード内にハードコーディングされた/予測可能なキーで暗号化します。これは行うべきではなく、リバースエンジニアリングにより攻撃者が機密情報を抽出できる可能性があります。
|
||||
一部の開発者は、機密データをローカルストレージに保存し、コード内にハードコーディングされた/予測可能なキーで暗号化します。これは行うべきではなく、リバースエンジニアリングにより攻撃者が機密情報を抽出できる可能性があります。
|
||||
|
||||
**Use of Insecure and/or Deprecated Algorithms**
|
||||
|
||||
|
@ -311,7 +311,7 @@ You need to activate the **debugging** options and it will be cool if you can **
|
|||
|
||||
**Logging**
|
||||
|
||||
開発者は、**デバッグ情報**を公開することに注意すべきです。これは機密データの漏洩につながる可能性があります。アプリケーションログを監視して機密情報を特定し保護するために、[**pidcat**](https://github.com/JakeWharton/pidcat)と`adb logcat`を推奨します。**Pidcat**は使いやすさと可読性のために好まれます。
|
||||
開発者は、**デバッグ情報**を公開することに注意すべきです。これは機密データの漏洩につながる可能性があります。アプリケーションログを監視して機密情報を特定し保護するために、ツール[**pidcat**](https://github.com/JakeWharton/pidcat)と`adb logcat`を推奨します。**Pidcat**は使いやすさと可読性のために好まれます。
|
||||
|
||||
{% hint style="warning" %}
|
||||
**Android 4.0以降**、**アプリケーションは自分自身のログにのみアクセスできる**ことに注意してください。したがって、アプリケーションは他のアプリのログにアクセスできません。\
|
||||
|
@ -320,11 +320,11 @@ You need to activate the **debugging** options and it will be cool if you can **
|
|||
|
||||
**Copy/Paste Buffer Caching**
|
||||
|
||||
Androidの**クリップボードベース**のフレームワークは、アプリ内でのコピー&ペースト機能を可能にしますが、**他のアプリケーション**がクリップボードにアクセスできるため、機密データが漏洩するリスクがあります。クレジットカードの詳細など、アプリケーションの機密セクションでは**コピー/ペースト**機能を無効にすることが重要です。
|
||||
Androidの**クリップボードベース**のフレームワークは、アプリ内でのコピー&ペースト機能を可能にしますが、**他のアプリケーション**がクリップボードにアクセスできるため、機密データが漏洩するリスクがあります。クレジットカードの詳細など、アプリケーションの機密セクションに対して**コピー/ペースト**機能を無効にすることが重要です。
|
||||
|
||||
**Crash Logs**
|
||||
|
||||
アプリケーションが**クラッシュ**し、**ログを保存**する場合、これらのログは攻撃者に役立つ可能性があります。特にアプリケーションがリバースエンジニアリングできない場合はそうです。このリスクを軽減するために、クラッシュ時にログを記録しないようにし、ログをネットワーク経由で送信する必要がある場合は、SSLチャネルを介して送信されることを確認してください。
|
||||
アプリケーションが**クラッシュ**し、**ログを保存**する場合、これらのログは攻撃者に役立つ可能性があります。特にアプリケーションがリバースエンジニアリングできない場合はそうです。このリスクを軽減するために、クラッシュ時にログを記録しないようにし、ログをネットワーク経由で送信する必要がある場合は、SSLチャネルを介して送信することを確認してください。
|
||||
|
||||
ペンテスターとして、**これらのログを確認することをお勧めします**。
|
||||
|
||||
|
@ -335,7 +335,7 @@ Androidの**クリップボードベース**のフレームワークは、アプ
|
|||
### SQLite DBs
|
||||
|
||||
ほとんどのアプリケーションは、情報を保存するために**内部SQLiteデータベース**を使用します。ペンテスト中に作成された**データベース**、**テーブル**と**カラム**の名前、保存されたすべての**データ**を確認してください。機密情報を見つけることができるかもしれません(これは脆弱性となります)。\
|
||||
データベースは`/data/data/the.package.name/databases`に位置する必要があります。例えば`/data/data/com.mwr.example.sieve/databases`
|
||||
データベースは`/data/data/the.package.name/databases`に配置されるべきです。例えば`/data/data/com.mwr.example.sieve/databases`
|
||||
|
||||
データベースが機密情報を保存していて**暗号化されている**が、アプリケーション内に**パスワード**が見つかる場合、それでも**脆弱性**です。
|
||||
|
||||
|
@ -353,7 +353,7 @@ Also remember that the code of an activity starts in the **`onCreate`** method.
|
|||
|
||||
**Authorisation bypass**
|
||||
|
||||
Activityがエクスポートされると、外部アプリからその画面を呼び出すことができます。したがって、**機密情報**を含むActivityが**エクスポート**されている場合、**認証**メカニズムを**バイパス**してアクセスすることができます。
|
||||
Activityがエクスポートされると、外部アプリからその画面を呼び出すことができます。したがって、**機密情報**を含むアクティビティが**エクスポート**されている場合、**認証**メカニズムを**バイパス**してアクセスすることができます。
|
||||
|
||||
[**Learn how to exploit exported activities with Drozer.**](drozer-tutorial/#activities)
|
||||
|
||||
|
@ -364,41 +364,41 @@ You can also start an exported activity from adb:
|
|||
```bash
|
||||
adb shell am start -n com.example.demo/com.example.test.MainActivity
|
||||
```
|
||||
**注意**: MobSFは、アクティビティの`android:launchMode`として_**singleTask/singleInstance**_の使用を悪意のあるものとして検出しますが、[これ](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750)によると、これは古いバージョン(APIバージョン<21)でのみ危険なようです。
|
||||
**注意**: MobSFは、アクティビティの`android:launchMode`で_**singleTask/singleInstance**_の使用を悪意のあるものとして検出しますが、[これ](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750)によると、これは古いバージョン(APIバージョン< 21)でのみ危険なようです。
|
||||
|
||||
{% hint style="info" %}
|
||||
認可バイパスは常に脆弱性ではないことに注意してください。バイパスの動作とどの情報が公開されているかによります。
|
||||
認可バイパスは常に脆弱性ではないことに注意してください。バイパスの動作とどの情報が露出しているかによります。
|
||||
{% endhint %}
|
||||
|
||||
**機密情報の漏洩**
|
||||
|
||||
**アクティビティは結果を返すこともできます**。もし、**`setResult`**メソッドを呼び出し、**機密情報を返す**エクスポートされた保護されていないアクティビティを見つけることができれば、機密情報の漏洩があります。
|
||||
**アクティビティは結果を返すこともできます**。もし、エクスポートされていて保護されていないアクティビティが**`setResult`**メソッドを呼び出し、**機密情報を返している**場合、機密情報の漏洩があります。
|
||||
|
||||
#### タップジャッキング
|
||||
|
||||
タップジャッキングが防止されていない場合、エクスポートされたアクティビティを悪用して**ユーザーに予期しないアクションを実行させる**ことができます。タップジャッキングについての詳細は[**こちらのリンクを参照してください**](./#tapjacking)。
|
||||
タップジャッキングが防止されていない場合、エクスポートされたアクティビティを悪用して**ユーザーに予期しないアクションを実行させる**ことができます。タップジャッキングについての詳細は、[**こちらのリンクを参照してください**](./#tapjacking)。
|
||||
|
||||
### **コンテンツプロバイダーの悪用 - 機密情報へのアクセスと操作**
|
||||
### コンテンツプロバイダーの悪用 - 機密情報へのアクセスと操作
|
||||
|
||||
[**コンテンツプロバイダーとは何かをリフレッシュしたい場合は、こちらをお読みください。**](android-applications-basics.md#content-provider)\
|
||||
[**コンテンツプロバイダーとは何かを再確認したい場合は、こちらをお読みください。**](android-applications-basics.md#content-provider)\
|
||||
コンテンツプロバイダーは基本的に**データを共有する**ために使用されます。アプリに利用可能なコンテンツプロバイダーがある場合、そこから**機密データを抽出**できるかもしれません。また、**SQLインジェクション**や**パストラバーサル**の可能性をテストすることも興味深いです。これらは脆弱である可能性があります。
|
||||
|
||||
[**Drozerを使用してコンテンツプロバイダーを悪用する方法を学びましょう。**](drozer-tutorial/#content-providers)
|
||||
|
||||
### **サービスの悪用**
|
||||
|
||||
[**サービスとは何かをリフレッシュしたい場合は、こちらをお読みください。**](android-applications-basics.md#services)\
|
||||
[**サービスとは何かを再確認したい場合は、こちらをお読みください。**](android-applications-basics.md#services)\
|
||||
サービスのアクションは`onStartCommand`メソッドで始まることを覚えておいてください。
|
||||
|
||||
サービスは基本的に**データを受信**し、**処理**し、**応答**(またはしない)を返すものです。したがって、アプリケーションがいくつかのサービスをエクスポートしている場合は、**コードを確認**して何をしているのかを理解し、機密情報を抽出したり、認証手段をバイパスしたりするために**動的にテスト**する必要があります。\
|
||||
サービスは基本的に**データを受信**し、**処理**し、**応答**(またはしない)を返すことができるものです。したがって、アプリケーションがいくつかのサービスをエクスポートしている場合は、**コードを確認**して何をしているのかを理解し、機密情報を抽出したり、認証手段をバイパスしたりするために**動的にテスト**する必要があります。\
|
||||
[**Drozerを使用してサービスを悪用する方法を学びましょう。**](drozer-tutorial/#services)
|
||||
|
||||
### **ブロードキャストレシーバーの悪用**
|
||||
|
||||
[**ブロードキャストレシーバーとは何かをリフレッシュしたい場合は、こちらをお読みください。**](android-applications-basics.md#broadcast-receivers)\
|
||||
[**ブロードキャストレシーバーとは何かを再確認したい場合は、こちらをお読みください。**](android-applications-basics.md#broadcast-receivers)\
|
||||
ブロードキャストレシーバーのアクションは`onReceive`メソッドで始まることを覚えておいてください。
|
||||
|
||||
ブロードキャストレシーバーは、特定のメッセージを待機しています。レシーバーがメッセージをどのように処理するかによって、脆弱である可能性があります。\
|
||||
ブロードキャストレシーバーは、特定のメッセージを待機しています。レシーバーがメッセージをどのように処理するかによって、脆弱性が生じる可能性があります。\
|
||||
[**Drozerを使用してブロードキャストレシーバーを悪用する方法を学びましょう。**](./#exploiting-broadcast-receivers)
|
||||
|
||||
### **スキーム/ディープリンクの悪用**
|
||||
|
@ -435,8 +435,8 @@ _パッケージ名を**省略する**ことができ、モバイルは自動的
|
|||
|
||||
**パス内のパラメータ**
|
||||
|
||||
**URLのパス内にパラメータを使用しているディープリンクがあるかどうかも確認する必要があります**。例えば、`https://api.example.com/v1/users/{username}` のように。この場合、`example://app/users?username=../../unwanted-endpoint%3fparam=value` のようにパスをトラバースすることができます。\
|
||||
アプリケーション内で正しいエンドポイントを見つけた場合、**オープンリダイレクト**(パスの一部がドメイン名として使用される場合)、**アカウント乗っ取り**(CSRFトークンなしでユーザーの詳細を変更でき、脆弱なエンドポイントが正しいメソッドを使用している場合)、およびその他の脆弱性を引き起こす可能性があります。詳細は[こちら](http://dphoeniixx.com/2020/12/13-2/)を参照してください。
|
||||
**URLのパス内でパラメータを使用しているディープリンクがあるかどうかも確認する必要があります**。例えば、`https://api.example.com/v1/users/{username}` のように。この場合、`example://app/users?username=../../unwanted-endpoint%3fparam=value` のようにパストラバーサルを強制することができます。\
|
||||
アプリケーション内で正しいエンドポイントを見つけた場合、**オープンリダイレクト**(パスの一部がドメイン名として使用されている場合)、**アカウント乗っ取り**(CSRFトークンなしでユーザーの詳細を変更でき、脆弱なエンドポイントが正しいメソッドを使用している場合)、およびその他の脆弱性を引き起こす可能性があります。詳細については[こちら](http://dphoeniixx.com/2020/12/13-2/)を参照してください。
|
||||
|
||||
**さらなる例**
|
||||
|
||||
|
@ -450,7 +450,7 @@ _パッケージ名を**省略する**ことができ、モバイルは自動的
|
|||
|
||||
#### 証明書の検証
|
||||
|
||||
**証明書の検証**に焦点を当てます。サーバーの証明書の整合性を確認することは、セキュリティを強化するために重要です。これは、安全でないTLS構成や暗号化されていないチャネルを介した機密データの送信が重大なリスクをもたらす可能性があるため、重要です。サーバー証明書の検証と脆弱性への対処に関する詳細な手順は、[**このリソース**](https://manifestsecurity.com/android-application-security-part-10/)で包括的に説明されています。
|
||||
**証明書の検証**に焦点を当てます。サーバーの証明書の整合性を確認することは、セキュリティを強化するために重要です。これは、安全でないTLS構成や暗号化されていないチャネルを介して機密データを送信することが重大なリスクをもたらすため、重要です。サーバー証明書の検証と脆弱性への対処に関する詳細な手順については、[**このリソース**](https://manifestsecurity.com/android-application-security-part-10/)を参照してください。
|
||||
|
||||
#### SSLピンニング
|
||||
|
||||
|
@ -458,9 +458,9 @@ SSLピンニングは、アプリケーションがサーバーの証明書を
|
|||
|
||||
#### トラフィックの検査
|
||||
|
||||
HTTPトラフィックを検査するには、**プロキシツールの証明書をインストールする必要があります**(例:Burp)。この証明書をインストールしないと、暗号化されたトラフィックはプロキシを通じて表示されない可能性があります。カスタムCA証明書のインストールに関するガイドは、[**こちらをクリック**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine)してください。
|
||||
HTTPトラフィックを検査するには、**プロキシツールの証明書をインストールする必要があります**(例:Burp)。この証明書をインストールしないと、暗号化されたトラフィックはプロキシを通じて表示されない可能性があります。カスタムCA証明書のインストールに関するガイドについては、[**こちらをクリック**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine)してください。
|
||||
|
||||
**APIレベル24以上**をターゲットとするアプリケーションは、プロキシのCA証明書を受け入れるためにネットワークセキュリティ構成を変更する必要があります。このステップは、暗号化されたトラフィックを検査するために重要です。ネットワークセキュリティ構成の変更に関する指示は、[**このチュートリアルを参照**](make-apk-accept-ca-certificate.md)してください。
|
||||
**APIレベル24以上**をターゲットとするアプリケーションは、プロキシのCA証明書を受け入れるためにネットワークセキュリティ構成を変更する必要があります。このステップは、暗号化されたトラフィックを検査するために重要です。ネットワークセキュリティ構成の変更に関する指示については、[**このチュートリアルを参照**](make-apk-accept-ca-certificate.md)。
|
||||
|
||||
#### SSLピンニングのバイパス
|
||||
|
||||
|
@ -474,7 +474,7 @@ SSLピンニングが実装されている場合、HTTPSトラフィックを検
|
|||
|
||||
#### 一般的なWeb脆弱性の検索
|
||||
|
||||
アプリケーション内で一般的なWeb脆弱性を検索することも重要です。これらの脆弱性を特定し、軽減するための詳細な情報はこの要約の範囲を超えていますが、他の場所で広範にカバーされています。
|
||||
アプリケーション内で一般的なWeb脆弱性を検索することも重要です。これらの脆弱性を特定し、軽減するための詳細情報はこの要約の範囲を超えていますが、他の場所で広範にカバーされています。
|
||||
|
||||
### Frida
|
||||
|
||||
|
@ -484,9 +484,9 @@ Androidアプリケーションをペンテストするには、Fridaの使い
|
|||
|
||||
* Fridaの使い方を学ぶ:[**Fridaチュートリアル**](frida-tutorial/)
|
||||
* Fridaでのアクション用の「GUI」:[**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
|
||||
* OjectionはFridaの使用を自動化するのに最適です:[**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
|
||||
* OjectionはFridaの使用を自動化するのに最適です:[**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **、** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
|
||||
* ここで素晴らしいFridaスクリプトを見つけることができます:[**https://codeshare.frida.re/**](https://codeshare.frida.re)
|
||||
* [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace)に示されているようにFridaを読み込んで、アンチデバッグ/アンチFridaメカニズムをバイパスしてみてください(ツール[linjector](https://github.com/erfur/linjector-rs))。
|
||||
* Fridaをロードしてanti-debugging / anti-fridaメカニズムをバイパスすることを試みてください。詳細は[https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace)を参照してください(ツール[linjector](https://github.com/erfur/linjector-rs))。
|
||||
|
||||
### **メモリダンプ - Fridump**
|
||||
|
||||
|
@ -501,7 +501,7 @@ python3 fridump3.py -u <PID>
|
|||
frida-ps -Uai
|
||||
python3 fridump3.py -u "<Name>"
|
||||
```
|
||||
これは./dumpフォルダーにメモリをダンプします。そこで、次のようにgrepできます:
|
||||
これは./dumpフォルダーにメモリをダンプします。そこで、次のようにgrepできます。
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -511,17 +511,17 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
|
|||
|
||||
### **キーストア内の機密データ**
|
||||
|
||||
Androidでは、キーストアは機密データを保存するのに最適な場所ですが、十分な権限があれば**アクセスすることが可能です**。アプリケーションはここに**平文で機密データを保存する傾向があるため**、ペンテストはそれを確認する必要があります。ルートユーザーやデバイスへの物理的アクセスを持つ者がこのデータを盗むことができるかもしれません。
|
||||
Androidでは、キーストアが機密データを保存するのに最適な場所ですが、十分な権限があれば**アクセスすることが可能です**。アプリケーションはここに**平文で機密データを保存する傾向があるため**、ペンテストはそれを確認する必要があります。ルートユーザーまたはデバイスへの物理的アクセスを持つ誰かがこのデータを盗むことができるかもしれません。
|
||||
|
||||
アプリがキーストアにデータを保存していても、そのデータは暗号化されているべきです。
|
||||
|
||||
キーストア内のデータにアクセスするには、このFridaスクリプトを使用できます: [https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js](https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js)
|
||||
キーストア内のデータにアクセスするには、次のFridaスクリプトを使用できます: [https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js](https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js)
|
||||
```bash
|
||||
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
|
||||
```
|
||||
### **指紋/生体認証バイパス**
|
||||
|
||||
次のFridaスクリプトを使用することで、Androidアプリケーションが特定の機密領域を保護するために行っている**指紋認証をバイパス**することが可能です:
|
||||
次のFridaスクリプトを使用することで、Androidアプリケーションが特定の機密領域を保護するために行っている**指紋認証をバイパスする**ことが可能になるかもしれません:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
|
@ -529,15 +529,15 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### **バックグラウンド画像**
|
||||
### **背景画像**
|
||||
|
||||
アプリケーションをバックグラウンドに置くと、Androidはアプリケーションの**スナップショット**を保存します。これにより、フォアグラウンドに復帰したときに、アプリが読み込まれる前に画像が読み込まれ、アプリがより速く読み込まれたように見えます。
|
||||
アプリケーションをバックグラウンドに置くと、Androidはアプリケーションの**スナップショット**を保存します。これにより、フォアグラウンドに復帰したときにアプリがより早く読み込まれているように見えます。
|
||||
|
||||
しかし、このスナップショットに**機密情報**が含まれている場合、スナップショットにアクセスできる誰かがその情報を**盗む**可能性があります(アクセスするにはrootが必要です)。
|
||||
しかし、このスナップショットに**機密情報**が含まれている場合、スナップショットにアクセスできる人はその情報を**盗む可能性**があります(アクセスするにはルート権限が必要です)。
|
||||
|
||||
スナップショットは通常、次の場所に保存されます: **`/data/system_ce/0/snapshots`**
|
||||
スナップショットは通常、**`/data/system_ce/0/snapshots`**の周辺に保存されます。
|
||||
|
||||
Androidは、FLAG\_SECUREレイアウトパラメータを設定することで**スクリーンショットのキャプチャを防ぐ**方法を提供します。このフラグを使用すると、ウィンドウの内容は安全と見なされ、スクリーンショットに表示されたり、非安全なディスプレイで表示されたりすることを防ぎます。
|
||||
Androidは、FLAG\_SECUREレイアウトパラメータを設定することで**スクリーンショットのキャプチャを防ぐ**方法を提供しています。このフラグを使用すると、ウィンドウの内容は安全と見なされ、スクリーンショットに表示されたり、非安全なディスプレイで表示されたりすることを防ぎます。
|
||||
```bash
|
||||
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
||||
```
|
||||
|
@ -547,15 +547,15 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
|||
|
||||
### Intent Injection
|
||||
|
||||
開発者は、これらのインテントを処理し、`startActivity(...)`や`sendBroadcast(...)`などのメソッドに渡すプロキシコンポーネント(アクティビティ、サービス、ブロードキャストレシーバーなど)を作成することがよくありますが、これはリスクがあります。
|
||||
開発者は、これらのインテントを処理し、`startActivity(...)`や`sendBroadcast(...)`などのメソッドに渡すプロキシコンポーネント(アクティビティ、サービス、ブロードキャストレシーバーなど)を作成することがよくありますが、これはリスクを伴います。
|
||||
|
||||
危険は、攻撃者がこれらのインテントを誤って誘導することによって、非エクスポートアプリコンポーネントをトリガーしたり、機密コンテンツプロバイダーにアクセスしたりできることにあります。注目すべき例は、`WebView`コンポーネントがURLを`Intent`オブジェクトに変換し、`Intent.parseUri(...)`を介して実行することで、悪意のあるインテント注入につながる可能性があります。
|
||||
危険は、攻撃者がこれらのインテントを誤って誘導することによって、非エクスポートアプリコンポーネントをトリガーしたり、機密コンテンツプロバイダーにアクセスしたりできることにあります。注目すべき例は、`WebView`コンポーネントがURLを`Intent`オブジェクトに変換し、`Intent.parseUri(...)`を介して実行することで、悪意のあるインテントインジェクションを引き起こす可能性があることです。
|
||||
|
||||
### Essential Takeaways
|
||||
|
||||
* **Intent Injection**は、ウェブのオープンリダイレクト問題に似ています。
|
||||
* 脆弱性は、`Intent`オブジェクトをエクストラとして渡すことに関与し、安全でない操作を実行するためにリダイレクトされる可能性があります。
|
||||
* 非エクスポートコンポーネントやコンテンツプロバイダーが攻撃者にさらされる可能性があります。
|
||||
* 攻撃者に非エクスポートコンポーネントやコンテンツプロバイダーを露出させる可能性があります。
|
||||
* `WebView`のURLから`Intent`への変換は、意図しないアクションを促進する可能性があります。
|
||||
|
||||
### Android Client Side Injections and others
|
||||
|
@ -563,8 +563,8 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
|||
おそらく、あなたはこの種の脆弱性をウェブから知っているでしょう。Androidアプリケーションにおいては、これらの脆弱性に特に注意する必要があります:
|
||||
|
||||
* **SQL Injection:** 動的クエリやコンテンツプロバイダーを扱う際は、パラメータ化されたクエリを使用していることを確認してください。
|
||||
* **JavaScript Injection (XSS):** すべてのWebViewに対してJavaScriptとプラグインのサポートが無効になっていることを確認してください(デフォルトで無効)。 [More info here](webview-attacks.md#javascript-enabled).
|
||||
* **Local File Inclusion:** WebViewはファイルシステムへのアクセスを無効にする必要があります(デフォルトで有効) - `(webview.getSettings().setAllowFileAccess(false);)`。 [More info here](webview-attacks.md#javascript-enabled).
|
||||
* **JavaScript Injection (XSS):** すべてのWebViewに対してJavaScriptとプラグインのサポートが無効になっていることを確認してください(デフォルトで無効)。 [こちらに詳細情報](webview-attacks.md#javascript-enabled)。
|
||||
* **Local File Inclusion:** WebViewはファイルシステムへのアクセスを無効にする必要があります(デフォルトで有効) - `(webview.getSettings().setAllowFileAccess(false);)`。 [こちらに詳細情報](webview-attacks.md#javascript-enabled)。
|
||||
* **Eternal cookies**: Androidアプリケーションがセッションを終了するとき、クッキーが取り消されない場合や、ディスクに保存されることがあります。
|
||||
* [**Secure Flag** in cookies](../../pentesting-web/hacking-with-cookies/#cookies-flags)
|
||||
|
||||
|
@ -572,13 +572,13 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) サーバーに参加してください!
|
||||
経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために、[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加してください!
|
||||
|
||||
**Hacking Insights**\
|
||||
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加してください
|
||||
ハッキングのスリルと課題に深く掘り下げたコンテンツに参加しましょう
|
||||
|
||||
**Real-Time Hack News**\
|
||||
リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界を最新の状態に保ちましょう
|
||||
リアルタイムのニュースと洞察を通じて、急速に変化するハッキングの世界に遅れずについていきましょう
|
||||
|
||||
**Latest Announcements**\
|
||||
新しいバグバウンティの開始や重要なプラットフォームの更新について最新情報を入手してください
|
||||
|
@ -599,9 +599,9 @@ docker pull opensecurity/mobile-security-framework-mobsf
|
|||
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
|
||||
```
|
||||
注意してください、MobSFは**Android**(apk)**、IOS**(ipa)**、およびWindows**(apx)アプリケーションを分析できます(_WindowsアプリケーションはWindowsホストにインストールされたMobSFから分析する必要があります_)。\
|
||||
また、**Android**または**IOS**アプリのソースコードで**ZIP**ファイルを作成すると(アプリケーションのルートフォルダーに移動し、すべてを選択してZIPファイルを作成)、それも分析できます。
|
||||
また、**Android**または**IOS**アプリのソースコードで**ZIP**ファイルを作成すると(アプリケーションのルートフォルダに移動し、すべてを選択してZIPファイルを作成)、それも分析できます。
|
||||
|
||||
MobSFはまた、**diff/Compare**分析を行い、**VirusTotal**を統合することも可能です(_MobSF/settings.py_でAPIキーを設定し、次のように有効にする必要があります:`VT_ENABLED = TRUE` `VT_API_KEY = <Your API key>` `VT_UPLOAD = TRUE`)。`VT_UPLOAD`を`False`に設定すると、**ハッシュ**が**アップロード**され、ファイルではなくなります。
|
||||
MobSFはまた、**diff/Compare**分析を行い、**VirusTotal**を統合することもできます(_MobSF/settings.py_でAPIキーを設定し、有効にする必要があります:`VT_ENABLED = TRUE` `VT_API_KEY = <Your API key>` `VT_UPLOAD = TRUE`)。`VT_UPLOAD`を`False`に設定すると、**ハッシュ**が**アップロード**され、ファイルではなくなります。
|
||||
|
||||
### MobSFによる支援された動的分析
|
||||
|
||||
|
@ -619,8 +619,8 @@ Androidの**バージョン > 5**では、**Frida**を**自動的に起動**し
|
|||
デフォルトでは、SSLピンニング、**ルート検出**、および**デバッガ検出**を**バイパス**し、**興味深いAPI**を**監視**するためにいくつかのFridaスクリプトを使用します。\
|
||||
MobSFはまた、**エクスポートされたアクティビティを呼び出し**、それらの**スクリーンショットを取得**し、レポート用に**保存**することもできます。
|
||||
|
||||
動的テストを**開始**するには、緑のボタン"**Start Instrumentation**"を押します。"**Frida Live Logs**"を押すと、Fridaスクリプトによって生成されたログを見ることができ、"**Live API Monitor**"を押すと、フックされたメソッドへのすべての呼び出し、渡された引数、および返された値を見ることができます(これは"Start Instrumentation"を押した後に表示されます)。\
|
||||
MobSFはまた、独自の**Fridaスクリプト**を読み込むこともできます(Fridaスクリプトの結果をMobSFに送信するには、`send()`関数を使用します)。また、読み込むことができる**いくつかの事前に書かれたスクリプト**もあります(`MobSF/DynamicAnalyzer/tools/frida_scripts/others/`にさらに追加できます)、ただ**選択し**、"**Load**"を押し、"**Start Instrumentation**"を押します(そのスクリプトのログは"**Frida Live Logs**"内で見ることができます)。
|
||||
**動的テストを開始**するには、緑のボタン"**Start Instrumentation**"を押します。"**Frida Live Logs**"を押すと、Fridaスクリプトによって生成されたログを見ることができ、"**Live API Monitor**"を押すと、フックされたメソッドへのすべての呼び出し、渡された引数、および返された値を見ることができます(これは"Start Instrumentation"を押した後に表示されます)。\
|
||||
MobSFはまた、独自の**Fridaスクリプト**を読み込むこともできます(Fridaスクリプトの結果をMobSFに送信するには、`send()`関数を使用します)。また、読み込むことができる**いくつかの事前に書かれたスクリプト**もあります(`MobSF/DynamicAnalyzer/tools/frida_scripts/others/`に追加できます)、ただ**選択し**、"**Load**"を押し、"**Start Instrumentation**"を押します(そのスクリプトのログは"**Frida Live Logs**"内で見ることができます)。
|
||||
|
||||
![](<../../.gitbook/assets/image (419).png>)
|
||||
|
||||
|
@ -628,14 +628,14 @@ MobSFはまた、独自の**Fridaスクリプト**を読み込むこともでき
|
|||
|
||||
* **読み込まれたクラスを列挙**:すべての読み込まれたクラスを印刷します
|
||||
* **文字列をキャプチャ**:アプリケーションを使用中にキャプチャされたすべての文字列を印刷します(非常に騒がしい)
|
||||
* **文字列比較をキャプチャ**:非常に役立つ可能性があります。**比較されている2つの文字列を表示**し、結果がTrueかFalseかを示します。
|
||||
* **文字列比較をキャプチャ**:非常に役立つ可能性があります。**比較されている2つの文字列**と、結果がTrueかFalseかを**表示**します。
|
||||
* **クラスメソッドを列挙**:クラス名("java.io.File"など)を入力すると、そのクラスのすべてのメソッドを印刷します。
|
||||
* **クラスパターンを検索**:パターンでクラスを検索
|
||||
* **クラスメソッドをトレース**:**クラス全体をトレース**(そのクラスのすべてのメソッドの入力と出力を確認)。デフォルトでは、MobSFは興味深いAndroid APIメソッドをいくつかトレースします。
|
||||
|
||||
使用したい補助モジュールを選択したら、"**Start Instrumentation**"を押す必要があり、すべての出力は"**Frida Live Logs**"に表示されます。
|
||||
|
||||
**Shell**
|
||||
**シェル**
|
||||
|
||||
Mobsfはまた、動的分析ページの下部にいくつかの**adb**コマンド、**MobSFコマンド**、および一般的な**シェル**コマンドを持つシェルを提供します。いくつかの興味深いコマンド:
|
||||
```bash
|
||||
|
@ -648,13 +648,13 @@ receivers
|
|||
```
|
||||
**HTTPツール**
|
||||
|
||||
HTTPトラフィックがキャプチャされると、"**HTTP(S) Traffic**"の下にキャプチャされたトラフィックの醜いビューが表示されるか、"**Start HTTPTools**"の緑のボタンでより良いビューが表示されます。2番目のオプションから、**キャプチャされたリクエスト**を**プロキシ**(BurpやOwasp ZAPなど)に**送信**できます。\
|
||||
httpトラフィックがキャプチャされると、"**HTTP(S) Traffic**"の下にキャプチャされたトラフィックの醜いビューが表示されるか、"**Start HTTPTools**"の緑のボタンでより良いビューが表示されます。2番目のオプションから、**キャプチャされたリクエスト**を**プロキシ**(BurpやOwasp ZAPなど)に**送信**できます。\
|
||||
そのためには、_Burpを起動 -->_ _インターセプトをオフにする --> MobSB HTTPToolsでリクエストを選択_ --> "**Send to Fuzzer**"を押す --> _プロキシアドレスを選択_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080))。
|
||||
|
||||
MobSFで動的分析が終了したら、"**Start Web API Fuzzer**"を押して**HTTPリクエストをファズ**し、脆弱性を探すことができます。
|
||||
MobSFで動的分析を終えたら、"**Start Web API Fuzzer**"を押して**httpリクエストをファズ**し、脆弱性を探すことができます。
|
||||
|
||||
{% hint style="info" %}
|
||||
MobSFで動的分析を実行した後、プロキシ設定が誤って構成される可能性があり、GUIから修正できなくなることがあります。プロキシ設定を修正するには、次のようにします:
|
||||
MobSFで動的分析を実行した後、プロキシ設定が誤って構成される可能性があり、GUIから修正できなくなることがあります。プロキシ設定を修正するには、次の手順を実行します:
|
||||
```
|
||||
adb shell settings put global http_proxy :0
|
||||
```
|
||||
|
@ -683,7 +683,7 @@ qark --java path/to/specific/java/file.java
|
|||
### [**ReverseAPK**](https://github.com/1N3/ReverseAPK.git)
|
||||
|
||||
* 参照のためにすべての抽出ファイルを表示
|
||||
* APKファイルを自動的にJavaおよびSmali形式にデコンパイル
|
||||
* APKファイルをJavaおよびSmali形式に自動的にデコンパイル
|
||||
* 一般的な脆弱性と動作のためにAndroidManifest.xmlを分析
|
||||
* 一般的な脆弱性と動作のための静的ソースコード分析
|
||||
* デバイス情報
|
||||
|
@ -693,9 +693,9 @@ reverse-apk relative/path/to/APP.apk
|
|||
```
|
||||
### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super)
|
||||
|
||||
SUPERは、Windows、MacOS X、Linuxで使用できるコマンドラインアプリケーションで、脆弱性を探すために_.apk_ファイルを分析します。これは、APKを解凍し、一連のルールを適用して脆弱性を検出することによって行われます。
|
||||
SUPERは、Windows、MacOS X、Linuxで使用できるコマンドラインアプリケーションで、脆弱性を探すために_.apk_ファイルを分析します。これは、APKを解凍し、一連のルールを適用して脆弱性を検出することによって行います。
|
||||
|
||||
すべてのルールは`rules.json`ファイルに集中しており、各企業やテスターは自分たちが必要とする分析のために独自のルールを作成できます。
|
||||
すべてのルールは`rules.json`ファイルに集中しており、各企業やテスターは自分たちのニーズに応じて分析するための独自のルールを作成できます。
|
||||
|
||||
最新のバイナリは[ダウンロードページ](https://superanalyzer.rocks/download.html)からダウンロードしてください。
|
||||
```
|
||||
|
@ -715,7 +715,7 @@ StaCoAnは、開発者、バグバウンティハンター、倫理的ハッカ
|
|||
```
|
||||
### [AndroBugs](https://github.com/AndroBugs/AndroBugs\_Framework)
|
||||
|
||||
AndroBugs Frameworkは、開発者やハッカーがAndroidアプリケーションの潜在的なセキュリティ脆弱性を見つけるのを助けるAndroid脆弱性分析システムです。\
|
||||
AndroBugsフレームワークは、Androidアプリケーションの潜在的なセキュリティ脆弱性を開発者やハッカーが見つけるのを助けるAndroid脆弱性分析システムです。\
|
||||
[Windowsリリース](https://github.com/AndroBugs/AndroBugs\_Framework/releases)
|
||||
```
|
||||
python androbugs.py -f [APK file]
|
||||
|
@ -725,7 +725,7 @@ androbugs.exe -f [APK file]
|
|||
|
||||
**Androwarn**は、Androidアプリケーションによって開発された潜在的な悪意のある動作を検出し、ユーザーに警告することを主な目的としたツールです。
|
||||
|
||||
検出は、アプリケーションのDalvikバイトコードの**静的分析**を使用して行われ、**Smali**として表現されます。[`androguard`](https://github.com/androguard/androguard)ライブラリを使用しています。
|
||||
検出は、アプリケーションのDalvikバイトコードの**静的解析**を使用して行われ、**Smali**として表現されます。 [`androguard`](https://github.com/androguard/androguard)ライブラリを使用しています。
|
||||
|
||||
このツールは、次のような**「悪い」アプリケーションの一般的な動作**を探します:テレフォニー識別子の流出、音声/ビデオフローの傍受、PIMデータの変更、任意のコード実行...
|
||||
```
|
||||
|
@ -752,17 +752,17 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
|||
|
||||
## コードの難読化/デオブフスケート
|
||||
|
||||
使用するサービスと設定によって、コードを難読化することに注意してください。秘密は難読化される場合とされない場合があります。
|
||||
使用するサービスと構成によって、コードを難読化することに注意してください。秘密は難読化される場合とされない場合があります。
|
||||
|
||||
### [ProGuard](https://en.wikipedia.org/wiki/ProGuard\_\(software\))
|
||||
|
||||
[Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\))から:**ProGuard**は、Javaコードを縮小、最適化、難読化するオープンソースのコマンドラインツールです。バイトコードを最適化し、未使用の命令を検出して削除することができます。ProGuardはフリーソフトウェアで、GNU一般公衆ライセンス第2版の下で配布されています。
|
||||
[Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\))から:**ProGuard**は、Javaコードを縮小、最適化、難読化するオープンソースのコマンドラインツールです。バイトコードを最適化し、未使用の命令を検出して削除することができます。ProGuardはフリーソフトウェアで、GNU一般公衆ライセンスバージョン2の下で配布されています。
|
||||
|
||||
ProGuardはAndroid SDKの一部として配布され、リリースモードでアプリケーションをビルドする際に実行されます。
|
||||
|
||||
### [DexGuard](https://www.guardsquare.com/dexguard)
|
||||
|
||||
APKをデオブフスケートするためのステップバイステップガイドは[https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)にあります。
|
||||
APKをデオブフスケートするためのステップバイステップガイドを[https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)で見つけてください。
|
||||
|
||||
(そのガイドから)最後に確認したとき、Dexguardの動作モードは次のとおりでした:
|
||||
|
||||
|
@ -774,7 +774,7 @@ APKをデオブフスケートするためのステップバイステップガ
|
|||
|
||||
### [DeGuard](http://apk-deguard.com)
|
||||
|
||||
**DeGuardは、Androidの難読化ツールによって行われた難読化プロセスを逆転させます。これにより、コード検査やライブラリの予測など、数多くのセキュリティ分析が可能になります。**
|
||||
**DeGuardは、Androidの難読化ツールによって実行された難読化プロセスを逆転させます。これにより、コード検査やライブラリの予測など、数多くのセキュリティ分析が可能になります。**
|
||||
|
||||
難読化されたAPKを彼らのプラットフォームにアップロードできます。
|
||||
|
||||
|
@ -788,13 +788,13 @@ APKiDは**APKがどのように作成されたか**に関する情報を提供
|
|||
|
||||
### マニュアル
|
||||
|
||||
[カスタム難読化を逆転させる方法に関するいくつかのトリックを学ぶためにこのチュートリアルを読んでください](manual-deobfuscation.md)
|
||||
[カスタム難読化を逆アセンブルする方法に関するいくつかのトリックを学ぶためにこのチュートリアルを読んでください](manual-deobfuscation.md)
|
||||
|
||||
## ラボ
|
||||
|
||||
### [Androl4b](https://github.com/sh4hin/Androl4b)
|
||||
|
||||
AndroL4bは、Ubuntu-mateに基づいたAndroidセキュリティ仮想マシンで、リバースエンジニアリングとマルウェア分析のための最新のフレームワーク、チュートリアル、ラボのコレクションを含んでいます。
|
||||
AndroL4bは、最新のフレームワーク、チュートリアル、およびリバースエンジニアリングとマルウェア分析のためのさまざまなセキュリティ専門家や研究者からのラボを含む、ubuntu-mateに基づいたAndroidセキュリティ仮想マシンです。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
@ -815,13 +815,13 @@ AndroL4bは、Ubuntu-mateに基づいたAndroidセキュリティ仮想マシン
|
|||
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう!
|
||||
|
||||
**ハッキングの洞察**\
|
||||
ハッキングのスリルと課題に関するコンテンツに参加してください
|
||||
ハッキングのスリルと課題に関するコンテンツに参加する
|
||||
|
||||
**リアルタイムハックニュース**\
|
||||
リアルタイムのニュースと洞察を通じて、急速に進化するハッキングの世界を把握してください
|
||||
リアルタイムのニュースと洞察を通じて、急速に進化するハッキングの世界を把握する
|
||||
|
||||
**最新の発表**\
|
||||
新しいバグバウンティの開始や重要なプラットフォームの更新について情報を得てください
|
||||
新しいバグバウンティの開始や重要なプラットフォームの更新について情報を得る
|
||||
|
||||
[**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加して、今日からトップハッカーとコラボレーションを始めましょう!
|
||||
|
||||
|
|
Loading…
Reference in a new issue