
Android向けの主要なセキュリティ評価フレームワーク。
drozerはAndroid向けのセキュリティテストフレームワークです。
drozerを使用すると、アプリやデバイス内のセキュリティ脆弱性を、アプリの役割を担い、Androidランタイム、他のアプリのIPCエンドポイント、および基盤となるOSと対話することで検索できます。
drozerは、公開されているAndroidエクスプロイトの利用、共有、理解を支援するツールを提供します。
drozerはオープンソースソフトウェアであり、Reversecによってメンテナンスされています。入門ユーザーガイドはReversec Labsにあります。
これは書き直されたdrozerバージョンのベータリリースです。このバージョンはpython3をサポートするように更新されています。
現在、以下の既知の問題があります:
すべてのシステムでdrozerを実行できるようにするため、動作するdrozerビルドを含むDockerコンテナが作成されました。
pip または pipx(可能であれば好ましい)を使用して、PyPIから最新のdrozerリリースをインストールできます:
pipx install drozer
または、GitHubから個別のリリースをダウンロードして、次のように実行することもできます:
pipx install ./drozer-*.whl
まだ行っていない場合は、以下を実行することを検討してください:
pipx ensurepath
これにより、pipxでインストールされたパッケージがPATHに含まれるようになります。
ソースからdrozerをビルドするには、以下を実行します。
git clone https://github.com/ReversecLabs/drozer.git
cd drozer
pip install .
Androidネイティブコンポーネントを特定のSDKに対してビルドするには、ANDROID_SDK環境変数をパスに設定します。例えば:
Linux/macOS:
export ANDROID_SDK=/home/drozerUser/Android/Sdk/platforms/android-34/android.jar
Windows - PowerShell:
New-Item -Path Env:\ANDROID_SDK -Value 'C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar'
Windows - cmd:
set ANDROID_SDK = "C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar"
使用されるd8ツールの場所は、D8を設定することで変更することもできます。
drozerはAndroid Debug Bridge(adb)を使用してインストールできます。
最新のdrozer Agentはこちらからダウンロードしてください。
adb install drozer-agent.apk
これで、PCにdrozer Consoleがインストールされ、テストデバイスでAgentが実行されているはずです。次に、この2つを接続する必要があります。これで探索を開始する準備が整います。
このために、drozer Agentに組み込まれているサーバーを使用します。まず、Agentを起動し、「Embedded Server」オプションを選択して、「Enable」をタップしてサーバーを起動します。サーバーが起動したことを示す通知が表示されます。
次に、以下のいずれかのオプションに従ってください。
デフォルトでは、drozer Agentはすべてのインターフェースのポート31415で着信TCP接続を待機します。Agentに接続するには、次のコマンドを実行します:
drozer console connect --server <phone's IP address>
Dockerコンテナを使用している場合、同等のコマンドは次のとおりです:
docker run --net host -it drozerdocker/drozer console connect --server <phone's IP address>
ネットワーク経由でデバイスに接続できないシナリオもあります。そのような場合、adbのポートフォワーディング機能を利用して、USB経由で接続を確立できます。
まず、PCがエミュレータ内またはデバイス上のAgentによって開かれたTCPソケットに接続できるように、適切なポートフォワードを設定する必要があります。デフォルトでは、drozerはポート31415を使用します。
adb forward tcp:31415 tcp:31415
これで、localhostに接続する(またはターゲットIPを指定しない)ことで、drozer Agentに接続できます。
drozer console connect
drozerのコマンドプロンプトが表示されるはずです:
Selecting ebe9fcc0c47b28da (Google sdk_gphone64_x86_64 12)
.. ..:.
..o.. .r..
..a.. . ....... . ..nd
ro..idsnemesisand..pr
.otectorandroidsneme.
.,sisandprotectorandroids+.
..nemesisandprotectorandroidsn:.
.emesisandprotectorandroidsnemes..
..isandp,..,rotecyayandro,..,idsnem.
.isisandp..rotectorandroid..snemisis.
,andprotectorandroidsnemisisandprotec.
.torandroidsnemesisandprotectorandroid.
.snemisisandprotectorandroidsnemesisan:
.dprotectorandroidsnemesisandprotector.
drozer Console (v3.0.0)
dz>
プロンプトは、接続したデバイスのAndroid ID、製造元、モデル、Androidソフトウェアバージョンを確認します。
これでデバイスの探索を開始する準備が整いました。
drozerは3条項BSDライセンスの下でリリースされています。詳細についてはLICENSEを参照してください。
drozerはオープンソースソフトウェアであり、コミュニティからの貢献によって素晴らしいものになっています。
完全なソースコード、バグ報告、機能提案、パッチの提出については、GitHubプロジェクトをご覧ください:
https://github.com/ReversecLabs/drozer
バグ報告、機能リクエスト、コメント、質問はこちらに提出できます。
| コマンド | 説明 |
|---|
| run | drozerモジュールを実行します |
| list | 現在のセッションで実行可能なすべてのdrozerモジュールの一覧を表示します。適切な権限がないモジュールは非表示になります。 |
| shell | Agentプロセスのコンテキストで、デバイス上でインタラクティブなLinuxシェルを起動します。 |
| cd | 特定の名前空間をセッションのルートとしてマウントし、モジュールの完全な名前を繰り返し入力する手間を省きます。 |
| clean | drozerがAndroidデバイスに保存した一時ファイルを削除します。 |
| contributors | システムで使用されているdrozerフレームワークとモジュールに貢献した人の一覧を表示します。 |
| echo | テキストをコンソールに出力します。 |
| exit | drozerセッションを終了します。 |
| help | 特定のコマンドまたはモジュールに関するヘルプを表示します。 |
| load | drozerコマンドを含むファイルをロードし、順次実行します。 |
| module | インターネットから追加のdrozerモジュールを検索してインストールします。 |
| permissions | drozer Agentに付与されている権限の一覧を表示します。 |
| set | 変数に値を保存し、drozerによって生成されたLinuxシェルに環境変数として渡します。 |
| unset | drozerが生成するLinuxシェルに渡す名前付き変数を削除します。 |