Objection Tutorial
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bug bounty tip: sign up for Intigriti, a premium bug bounty platform created by hackers, for hackers! Join us at https://go.intigriti.com/hacktricks today, and start earning bounties up to $100,000!
objection - Runtime Mobile Exploration
Objectionは、Fridaによって動作するランタイムモバイル探索ツールキットです。これは、脱獄またはルート化されたモバイルデバイスを必要とせずに、モバイルアプリケーションとそのセキュリティ姿勢を評価するのを助けることを目的に構築されました。
注意: これは脱獄/ルートバイパスの一形態ではありません。objection
を使用することで、直面している適用可能なサンドボックスによって課せられたすべての制限に依然として制約されます。
objectionの目標は、ユーザーがFridaが提供する主要なアクションを呼び出すことを可能にすることです。**そうでなければ、ユーザーはテストしたい各アプリケーションのために単一のスクリプトを作成する必要があります。
このチュートリアルでは、ここからダウンロードできるAPKを使用します:
またはそのオリジナルリポジトリから(app-release.apkをダウンロード)
通常のADB接続を行い、デバイスでfridaサーバーを起動します(クライアントとサーバーの両方でfridaが動作していることを確認します)。
ルート化されたデバイスを使用している場合、_--gadget_オプション内でテストしたいアプリケーションを選択する必要があります。この場合:
このチュートリアルでは、objectionのすべてのコマンドはリストされず、私がより便利だと感じたものだけが含まれます。
パスワードやパスなどの興味深い情報は、環境内に見つけることができます。
実際のアプリケーションでは、静的分析のおかげで、この部分で発見されたすべての情報を使用する前に知っておくべきです。それでも、この方法では、クラス、メソッド、およびエクスポートされたオブジェクトの完全なリストのみが表示されるため、新しい何かを見ることができるかもしれません。
これは、アプリの読みやすいソースコードを取得できない場合にも役立ちます。
Fridaが見つからない場合、エラーを発生させます
アプリケーション内のクラスを探し始めましょう。
では、クラス MainActivity: 内のメソッドを抽出しましょう。
クラスのメソッドが必要とするパラメータを確認しましょう:
現在のアプリケーション内で読み込まれたすべてのクラスをリストすることもできます:
これは、クラスのメソッドをフックしたいが、クラスの名前しか知らない場合に非常に便利です。この関数を使用して、クラスを所有するモジュールを検索し、そのメソッドをフックできます。
アプリケーションのソースコードから、MainActivityの関数_sum()_が毎秒実行されていることがわかります。関数が呼び出されるたびに、すべての可能な情報(引数、戻り値、バックトレース)をダンプしてみましょう:
実際、クラス MainActivity のすべてのメソッドが非常に興味深いと思いますので、すべてフックしましょう。注意してください、これによりアプリケーションがクラッシュする可能性があります。
If you play with the application while the class is hooked you will see when 各関数が呼び出されるか、その引数、および戻り値が表示されます。
ソースコードから、関数 checkPin が String を引数として受け取り、boolean を返すことがわかります。関数を常にtrueを返すようにしましょう:
今、PINコードのテキストボックスに何かを書き込むと、何でも有効であることがわかります:
特定のJavaクラスのライブインスタンスを検索して印刷します。これは完全修飾クラス名で指定されます。発見されたobjectionの文字列値を取得しようとした結果は、通常オブジェクトのプロパティ値を含むものです。
キーストアとインテントを使用して遊ぶことができます:
リストの一番下にfridaが表示されています:
fridaが何をエクスポートしているか確認しましょう:
objectionを使ってメモリ内を検索および書き込むこともできます:
SQLiteデータベースと対話するには、コマンドsqlite
を使用できます。
フッキングメソッドは時々アプリケーションをクラッシュさせます(これはFridaの影響もあります)。
インスタンスのクラスを使用してインスタンスの関数を呼び出すことができません。また、新しいインスタンスを作成して関数を呼び出すこともできません。
アプリケーションで使用されている一般的な暗号メソッドをフックして、暗号化されたテキスト、平文、キー、IV、および使用されているアルゴリズムを見るためのショートカット(sslpinninのようなもの)がありません。
バグバウンティのヒント: Intigritiにサインアップしてください。これはハッカーによって、ハッカーのために作られたプレミアムバグバウンティプラットフォームです!今日、https://go.intigriti.com/hacktricksに参加して、最大**$100,000**のバウンティを獲得し始めましょう!
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)