drozer 是一個 Android 安全測試框架。
drozer 可讓您透過扮演應用程式的角色並與 Android 運行時、其他應用程式的 IPC 端點和底層作業系統互動來搜尋應用程式和裝置中的安全漏洞。
drozer 提供的工具可協助您使用、分享和了解公用 Android 漏洞。
drozer 是開源軟體,由 WithSecure 維護,可從以下網址下載:https://labs.withsecure.com/tools/drozer/
這是重寫的 drozer 版本的 BETA 版本;該版本已更新以支援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/WithSecureLabs/drozer.git
cd drozer
pip install .
若要針對特定 SDK 建置 Android 本機元件,您可以將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:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar '
Windows-指令:
set ANDROID_SDK = " C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar "
所使用的d8
工具的位置也可以透過設定D8
來更改。
可以使用 Android 調試橋 (adb) 安裝 drozer。
在這裡下載最新的 drozer Agent。
adb install drozer-agent.apk
現在您應該已在 PC 上安裝了 drozer 控制台,並在測試裝置上執行了代理程式。現在,您需要將兩者連接起來,然後您就可以開始探索了。
我們將使用 drozer 代理中嵌入的伺服器來執行此操作。首先,啟動代理,選擇“嵌入式伺服器”選項並點擊“啟用”以啟動伺服器。您應該會看到伺服器已啟動的通知。
然後,請按照以下選項之一進行操作。
預設情況下,drozer 代理程式會偵聽連接埠 31415 上所有介面上的傳入 TCP 連線。
drozer console connect --server <phone's IP address>
如果您使用 Docker 容器,則等效指令為:
docker run --net host -it withsecurelabs/drozer console connect --server <phone's IP address>
在某些情況下,透過網路連接到設備可能不可行。在這些場景中,我們可以利用adb
的連接埠轉送功能透過 USB 建立連線。
首先,您需要設定適當的連接埠轉發,以便您的 PC 可以連接到模擬器內或裝置上的代理程式開啟的 TCP 套接字。預設情況下,drozer 使用連接埠 31415
adb forward tcp:31415 tcp:31415
現在您可以透過連線到localhost
(或乾脆不指定目標 IP)來連線到 drozer 代理
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 模組 |
清單 | 顯示目前會話中可以執行的所有 drozer 模組的清單。這會隱藏您沒有適當權限運行的模組。 |
殼 | 在代理程式的上下文中,在裝置上啟動互動式 Linux shell。 |
光碟 | 將特定名稱空間安裝為會話的根,以避免重複鍵入模組的全名。 |
乾淨的 | 刪除 Android 裝置上 drozer 儲存的暫存檔案。 |
貢獻者 | 顯示對系統中使用的 drozer 框架和模組做出貢獻的人員清單。 |
迴音 | 將文字列印到控制台。 |
出口 | 終止 drozer 會話。 |
幫助 | 顯示有關特定命令或模組的協助。 |
載入 | 載入包含 drozer 命令的文件,並按順序執行它們。 |
模組 | 從 Internet 尋找並安裝其他 drozer 模組。 |
權限 | 顯示授予 drozer 代理程式的權限清單。 |
放 | 在變數中儲存一個值,該值將作為環境變數傳遞給 drozer 產生的任何 Linux shell。 |
未設定 | 刪除 drozer 傳遞給它產生的任何 Linux shell 的命名變數。 |
drozer 是根據 3 條款 BSD 授權發布的。有關完整詳細信息,請參閱許可證。
drozer 是開源軟體,得益於社群的貢獻。
如需完整原始程式碼、報告錯誤、建議功能和貢獻補丁,請參閱我們的 Github 專案:
https://github.com/WithSecureLabs/drozer
錯誤報告、功能請求、評論和問題可以在此處提交。