iOS Pentesting Checklist
Reading time: 9 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
準備
データストレージ
- Plistファイルは機密情報を保存するために使用される可能性があります。
- Core Data(SQLiteデータベース)は機密情報を保存できます。
- YapDatabases(SQLiteデータベース)は機密情報を保存できます。
- Firebaseの誤設定。
- Realmデータベースは機密情報を保存できます。
- Couchbase Liteデータベースは機密情報を保存できます。
- バイナリクッキーは機密情報を保存できます。
- キャッシュデータは機密情報を保存できます。
- 自動スナップショットは視覚的な機密情報を保存できます。
- キーチェーンは通常、再販時に残る可能性のある機密情報を保存するために使用されます。
- 要約すると、アプリケーションがファイルシステムに保存した機密情報を確認するだけです。
キーボード
- アプリケーションはカスタムキーボードの使用を許可していますか?
- 機密情報がキーボードキャッシュファイルに保存されているか確認する
ログ
- 機密情報がログに記録されているか確認する
バックアップ
- バックアップはファイルシステムに保存された機密情報にアクセスするために使用される可能性があります(このチェックリストの最初のポイントを確認してください)
- また、バックアップはアプリケーションの設定を変更するために使用される可能性があり、その後バックアップを電話に復元すると、変更された設定が読み込まれ**、一部の(セキュリティ)機能がバイパスされる可能性があります。
アプリケーションメモリ
- アプリケーションのメモリ内の機密情報を確認する
壊れた暗号化
- 暗号化に使用されるパスワードを見つけられるか確認する
- 機密データを送信/保存するために非推奨/弱いアルゴリズムが使用されているか確認する
- 暗号化関数をフックして監視する
ローカル認証
- アプリケーションでローカル認証が使用されている場合、認証がどのように機能しているか確認する必要があります。
- ローカル認証フレームワークを使用している場合、簡単にバイパスされる可能性があります。
- 動的にバイパス可能な関数を使用している場合、カスタムFridaスクリプトを作成できます。
IPCを通じた機密機能の露出
- カスタムURIハンドラー / ディープリンク / カスタムスキーム
- アプリケーションがプロトコル/スキームを登録しているか確認する
- アプリケーションがプロトコル/スキームを使用するために登録しているか確認する
- アプリケーションがカスタムスキームから受信することを期待している機密情報の種類を確認し、同じスキームを登録している別のアプリケーションによって傍受される可能性があるか確認する
- アプリケーションがカスタムスキームを介してユーザー入力を確認およびサニタイズしていない場合、脆弱性が悪用される可能性があるか確認する
- アプリケーションがどこからでも呼び出すことができる機密アクションを公開しているか確認する
- ユニバーサルリンク
- アプリケーションがユニバーサルプロトコル/スキームを登録しているか確認する
-
apple-app-site-association
ファイルを確認する - アプリケーションがカスタムスキームを介してユーザー入力を確認およびサニタイズしていない場合、脆弱性が悪用される可能性があるか確認する
- アプリケーションがどこからでも呼び出すことができる機密アクションを公開しているか確認する
- UIActivity共有
- アプリケーションがUIActivitiesを受信できるか、特別に作成されたアクティビティで脆弱性を悪用できるか確認する
- UIPasteboard
- アプリケーションが一般的なペーストボードに何かをコピーしているか確認する
- アプリケーションが一般的なペーストボードのデータを何かに使用しているか確認する
- ペーストボードを監視して、機密データがコピーされているか確認する
- アプリ拡張
- アプリケーションは拡張を使用していますか?
- WebViews
- 使用されているWebViewの種類を確認する
-
javaScriptEnabled
、JavaScriptCanOpenWindowsAutomatically
、**hasOnlySecureContent
**の状態を確認する -
WebViewがfile://プロトコルでローカルファイルにアクセスできるか確認する(
allowFileAccessFromFileURLs
、allowUniversalAccessFromFileURLs
) -
Javascriptがネイティブメソッドにアクセスできるか確認する(
JSContext
、postMessage
)
ネットワーク通信
- 通信に対するMitMを実行し、Webの脆弱性を探す。
- 証明書のホスト名が確認されているか確認する
- 証明書ピンニングを確認/バイパスする
その他
- 自動パッチ/更新メカニズムを確認する
- 悪意のあるサードパーティライブラリを確認する
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。