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

Reading time: 6 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をサポートする

ページの概要 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"章の手順に従って、アプリバイナリから抽出することができます。特に「アプリバイナリの取得」セクションを参照してください。

暗号化されたバイナリであっても、これらのファイルを抽出するために特定の手順を使用することができます。これらの手順が失敗した場合、Clutch(iOSバージョンと互換性がある場合)、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からの元の権限ファイルの成功した回復が明らかになりました。

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

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

-A num, --after-context=num フラグを調整することで、表示する行数を増やしたり減らしたりできます。この方法は、暗号化されたアプリバイナリにも有効であり、複数のApp Storeアプリに対して確認されています。前述のツールは、同様の目的で脱獄したiOSデバイスでも使用できます。

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

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をサポートする