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

4.9 KiB
Raw Blame History

コンパイルされたアプリケーションから権限を抽出する

htARTEHackTricks AWS Red Team Expert を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

ページの要約 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ファイルを抽出できます。以下のコマンドはその方法を示しています:

$ 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"を含むアプリのバイナリ内のすべての文字列を検索できます:

$ 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の元の権限ファイルの成功した回復が明らかになります。

ジェイルブレイクされたデバイスでアクセスされたアプリのバイナリSSH経由に対して、grepコマンドを-a、--textフラグと共に使用して、すべてのファイルをASCIIテキストとして扱うことができます

$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...

調整-A num、--after-context=numフラグを使用すると、表示される行数を増減させることができます。この方法は、暗号化されたアプリのバイナリに対しても有効であり、複数のApp Storeアプリで検証されています。以前に言及されたツールは、同様の目的のためにジェイルブレイクされたiOSデバイスでも使用することができます。

注意: このタスクに対してstringsコマンドを直接使用することは推奨されません。代わりに、バイナリ上でgrep-aフラグと共に使用するか、radare2 (izz) / rabin2 (-zz)を利用することがより効果的な結果をもたらします。