hacktricks/mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md

52 lines
4.9 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.

# コンパイルされたアプリケーションから権限を抽出する
<details>
<summary><strong>htARTEHackTricks AWS Red Team Expert</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>を通じてゼロからヒーローまでAWSハッキングを学ぶ</strong></a><strong></strong></summary>
HackTricks をサポートする他の方法:
* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**してください。
* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
</details>
ページの要約 [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
### **権限とモバイルプロビジョニングファイルの抽出**
アプリのIPAやジェイルブレイクされたデバイス上のインストールされたアプリを扱う際、`.entitlements`ファイルや`embedded.mobileprovision`ファイルを直接見つけることができない場合があります。ただし、iOS Basic Security Testing 章、特に "アプリバイナリの取得"セクションで概説されている手順に従って、アプリバイナリから権限プロパティリストを抽出することができます。
暗号化されたバイナリでも、これらのファイルを抽出するための手順があります。これらの手順が失敗した場合、iOS バージョンと互換性がある場合は Clutch、frida-ios-dump、または類似のユーティリティツールを使用してアプリを復号化および抽出する必要があります。
#### **アプリバイナリから権限のPlistを抽出する**
コンピューター上でアプリバイナリにアクセスできる場合、**binwalk**を使用してすべてのXMLファイルを抽出できます。以下のコマンドはその方法を示しています:
```bash
$ binwalk -e -y=xml ./Telegram\ X
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
```
代わりに、**radare2**を使用して、静かにコマンドを実行し、"PropertyList"を含むアプリのバイナリ内のすべての文字列を検索できます:
```bash
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
```
両方の方法、binwalkとradare2、は`plist`ファイルの抽出を可能にし、最初のものの検査0x0015d2a4により、[Telegramの元の権限ファイル](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements)の成功した回復が明らかになります。
ジェイルブレイクされたデバイスでアクセスされたアプリのバイナリSSH経由に対して、**grep**コマンドを`-a、--text`フラグと共に使用して、すべてのファイルをASCIIテキストとして扱うことができます
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
調整`-A num、--after-context=num`フラグを使用すると、表示される行数を増減させることができます。この方法は、暗号化されたアプリのバイナリに対しても有効であり、複数のApp Storeアプリで検証されています。以前に言及されたツールは、同様の目的のためにジェイルブレイクされたiOSデバイスでも使用することができます。
**注意**: このタスクに対して`strings`コマンドを直接使用することは推奨されません。代わりに、バイナリ上で`grep`を`-a`フラグと共に使用するか、radare2 (`izz`) / rabin2 (`-zz`)を利用することがより効果的な結果をもたらします。