hacktricks/mobile-pentesting/ios-pentesting-checklist.md

135 lines
11 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.

# iOS Pentesting Checklist
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% hint style="success" %}
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>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](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 %}
### 準備
* [ ] [**iOSの基本**](ios-pentesting/ios-basics.md)を読む
* [ ] [**iOSテスト環境**](ios-pentesting/ios-testing-environment.md)を読んで環境を準備する
* [ ] [**iOS初期分析**](ios-pentesting/#initial-analysis)のすべてのセクションを読み、iOSアプリケーションをペンテストするための一般的なアクションを学ぶ
### データストレージ
* [ ] [**Plistファイル**](ios-pentesting/#plist)は機密情報を保存するために使用される可能性があります。
* [ ] [**Core Data**](ios-pentesting/#core-data)SQLiteデータベースは機密情報を保存できます。
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase)SQLiteデータベースは機密情報を保存できます。
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases)の誤設定。
* [ ] [**Realmデータベース**](ios-pentesting/#realm-databases)は機密情報を保存できます。
* [ ] [**Couchbase Liteデータベース**](ios-pentesting/#couchbase-lite-databases)は機密情報を保存できます。
* [ ] [**バイナリクッキー**](ios-pentesting/#cookies)は機密情報を保存できます。
* [ ] [**キャッシュデータ**](ios-pentesting/#cache)は機密情報を保存できます。
* [ ] [**自動スナップショット**](ios-pentesting/#snapshots)は視覚的な機密情報を保存できます。
* [ ] [**キーチェーン**](ios-pentesting/#keychain)は通常、電話を再販する際に残る可能性のある機密情報を保存するために使用されます。
* [ ] 要約すると、アプリケーションがファイルシステムに保存した機密情報を**確認する**だけです。
### キーボード
* [ ] アプリケーションは[**カスタムキーボードの使用を許可していますか**](ios-pentesting/#custom-keyboards-keyboard-cache)
* [ ] [**キーボードキャッシュファイル**](ios-pentesting/#custom-keyboards-keyboard-cache)に機密情報が保存されているか確認する
### **ログ**
* [ ] [**機密情報がログに記録されているか確認する**](ios-pentesting/#logs)
### バックアップ
* [ ] [**バックアップ**](ios-pentesting/#backups)はファイルシステムに保存された**機密情報にアクセスするために使用される可能性があります**(このチェックリストの最初のポイントを確認してください)
* [ ] また、[**バックアップ**](ios-pentesting/#backups)はアプリケーションの**設定を変更するために使用される可能性があり**、その後**バックアップを電話に復元すると、**変更された設定**が**読み込まれ**、一部の(セキュリティ)**機能**が**回避される**可能性があります。
### **アプリケーションメモリ**
* [ ] [**アプリケーションのメモリ**](ios-pentesting/#testing-memory-for-sensitive-data)内の機密情報を確認する
### **壊れた暗号化**
* [ ] [**暗号化に使用されるパスワードを見つけられるか確認する**](ios-pentesting/#broken-cryptography)
* [ ] 機密データを送信/保存するために[**非推奨/弱いアルゴリズムが使用されているか確認する**](ios-pentesting/#broken-cryptography)
* [ ] [**暗号化関数をフックして監視する**](ios-pentesting/#broken-cryptography)
### **ローカル認証**
* [ ] アプリケーションで[**ローカル認証**](ios-pentesting/#local-authentication)が使用されている場合、認証がどのように機能しているかを確認する必要があります。
* [ ] [**ローカル認証フレームワーク**](ios-pentesting/#local-authentication-framework)を使用している場合、簡単に回避される可能性があります。
* [ ] [**動的に回避可能な関数を使用している場合**](ios-pentesting/#local-authentication-using-keychain)、カスタムFridaスクリプトを作成できます。
### IPCを通じた機密機能の露出
* [**カスタムURIハンドラー / ディープリンク / カスタムスキーム**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] アプリケーションが**プロトコル/スキームを登録しているか確認する**
* [ ] アプリケーションが**プロトコル/スキームを使用するために登録しているか確認する**
* [ ] アプリケーションがカスタムスキームから**機密情報を受け取ることを期待しているか確認する**、他のアプリケーションが同じスキームを登録して**傍受**できる可能性があります。
* [ ] アプリケーションがカスタムスキームを介してユーザー入力を**確認およびサニタイズしていない**場合、いくつかの**脆弱性が悪用される可能性があります**。
* [ ] アプリケーションがカスタムスキームを介してどこからでも呼び出すことができる**機密アクションを公開しているか確認する**
* [**ユニバーサルリンク**](ios-pentesting/#universal-links)
* [ ] アプリケーションが**ユニバーサルプロトコル/スキームを登録しているか確認する**
* [ ] `apple-app-site-association`ファイルを確認する
* [ ] アプリケーションがカスタムスキームを介してユーザー入力を**確認およびサニタイズしていない**場合、いくつかの**脆弱性が悪用される可能性があります**。
* [ ] アプリケーションがカスタムスキームを介してどこからでも呼び出すことができる**機密アクションを公開しているか確認する**
* [**UIActivity共有**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] アプリケーションがUIActivitiesを受け取ることができ、特別に作成されたアクティビティで脆弱性を悪用できるか確認する
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] アプリケーションが**一般的なペーストボードに何かをコピーしているか確認する**
* [ ] アプリケーションが**一般的なペーストボードのデータを何かに使用しているか確認する**
* [ ] ペーストボードを監視して、**機密データがコピーされているか確認する**
* [**アプリ拡張**](ios-pentesting/ios-app-extensions.md)
* [ ] アプリケーションは**拡張機能を使用していますか**
* [**WebViews**](ios-pentesting/ios-webviews.md)
* [ ] 使用されているWebViewの種類を確認する
* [ ] **`javaScriptEnabled`**、**`JavaScriptCanOpenWindowsAutomatically`**、**`hasOnlySecureContent`**の状態を確認する
* [ ] WebViewが**file://**プロトコルで**ローカルファイルにアクセスできるか確認する**`allowFileAccessFromFileURLs`、`allowUniversalAccessFromFileURLs`
* [ ] Javascriptが**ネイティブ**の**メソッド**`JSContext`、`postMessage`)にアクセスできるか確認する
### ネットワーク通信
* [ ] [**通信に対してMitMを実行**](ios-pentesting/#network-communication)し、Webの脆弱性を探す。
* [ ] [**証明書のホスト名**](ios-pentesting/#hostname-check)が確認されているか確認する
* [ ] [**証明書ピンニング**](ios-pentesting/#certificate-pinning)を確認/回避する
### **その他**
* [ ] [**自動パッチ/更新**](ios-pentesting/#hot-patching-enforced-updateing)メカニズムを確認する
* [ ] [**悪意のあるサードパーティライブラリ**](ios-pentesting/#third-parties)を確認する
{% hint style="success" %}
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>HackTricksをサポートする</summary>
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](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 (48).png" alt=""><figcaption></figcaption></figure>
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築し、自動化**します。\
今すぐアクセスを取得:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}