一. drozer簡介
drozer(以前稱為Mercury)是一款Android安全測試框架。
drozer允許您通過承擔應用程序的角色並與Dalvik VM,其他應用程序的IPC端點和底層操作系統進行交互來搜索應用程序和設備中的安全漏洞。
drozer提供工具來幫助您使用,共享和理解公共Android漏洞。它可以幫助您通過開發或社會工程將drozer Agent部署到設備。使用weasel(MWR的高級開發負載)drozer能夠通過安裝完整代理,將有限代理注入正在運行的進程或連接反向shell以充當遠程訪問工具(RAT)來最大化其可用權限。
項目地址:https://github.com/mwrlabs/drozer
Mac 安裝drozer
1. 安裝Python 2.7(系統自帶)
2. 安裝Protobuf 2.6 or greater
sudo pip install protobuf
3. 安裝Pyopenssl 16.2 or greater
sudo pip install pyopenssl
4. 安裝Twisted 10.2 or greater
sudo pip install twisted
5. 安裝JDK 1.7
這里我安裝的是JDK 1.8,最后也安裝成功了。
6. 安裝Python的service_identity模塊(不安裝的話后面運行drozer時總會顯示警告)
sudo pip install service_identity
7. 安裝 adb(Android Debug Bridge)
可以去 https://developer.android.com/studio/releases/platform-tools下載相應平台上的安裝包,解壓后配置下環境變量即可,這里僅演示Mac下的安裝方式:
安裝homebrew(已安裝的話可跳過)
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
安裝adb
brew install android-platform-tools
測試是否安裝成功
adb devices
如果不報錯就說明安裝成功啦。
8. 安裝drozer
到 https://labs.mwrinfosecurity.com/tools/drozer/ 下載相應平台的安裝包:
這里我下載的是drozer(Python .whl)
然后進入文件所在目錄,執行以下命令:
sudo pip install drozer-2.x.x-py2-none-any.whl
注意:這里的2.x.x要替換成自己下載的版本,比如這里下載的是2.4.4,就替換成2.4.4
安裝成功后,執行drozer命令后輸出如下:
Windows和Linux平台上的安裝大體上類似,就不一一測試了。
客戶端安裝
同樣到:https://labs.mwrinfosecurity.com/tools/drozer/ 下載客戶端,也就是drozer(Agent .apk only),然后安裝到手機或者模擬器上就好
使用Android模擬器:
如果使用Android模擬器,則需要設置合適的端口,以便PC可以連接到模擬器內部或設備上的代理打開的TCP套接字。默認情況下,drozer使用端口31415:
列出所有設備:
adb devices
接着執行:
╰─ adb forward tcp:31415 tcp:31415
啟動移動設備中的drozer agent,將右下角的關閉置為打開狀態:
然后,使用drozer控制台進行連接,在PC終端中執行以下命令:
╰─ drozer console connect
如果連接成功,PC終端效果如下:
常用命令:
dz> run app.package.list #列出設備中安裝的包
dz> run app.package.list -f nfc #列出模糊的包名匹配
dz> run app.package.info #獲取安裝包的詳細信息
dz> run app.package.info -a io.silvrr.installment #列舉指定包的信息
dz> run app.package.info -p android.permission.RECEIVE_SMS #列出具有相應權限的包
dz> run app.activity.info #列出設備上所有包的activity
dz> run app.activity.info -f io.silvrr.installment #搜索包的activity
dz> run app.provider.info #列出設備上所有的provider
dz> run app.service.info #列出去設備上所有的service
dz> run app.package.attacksurface io.silvrr.installment #查看此包的攻擊面
6個可導出的activities
5個可導出的broadcast
2個可導出的providers
10個可導出的services
列出包的activity
dz> run app.activity.info -a io.silvrr.installment
io.silvrr.installment.module.startup.SplashActivity 這個activity應該是啟動的,我們嘗試啟動它
run app.activity.start --component 【包名】 【組件名】
dz> run app.activity.start --component io.silvrr.installment io.silvrr.installment.module.startup.SplashActivity
其他用法如下:
Dex是Android系統中可以在Dalvik虛擬機上直接運行的文件格式。java源代碼經過ADT的復雜編譯后轉換成Dex文件,這是一個逐步優化的過程。Dex文件的指令碼就是Dalvik虛擬機專有的一套指令集,專門為嵌入式系統優化過,相比標准java的.class文件,它體積小,運行效率高
二. Androguard
Androguard簡介:
Androguard是一款使用Python編寫的跨平台的Android逆向工具,它可以在 Linux/Windows/OSX上運行。使用它可以反編譯android應用,也可以用來做android app的靜態分析(static analysis)。
安裝Androguard:
sudo pip install -U androguard
Androguard的使用:
主要文件:
使用方法:
實例:
執行完該命令后,所有輸出均在crackme0502中
更詳細的使用方法請參考:
https://media.readthedocs.org/pdf/androguard/latest/androguard.pdf
常用的Android 滲透測試框架除了文章中提到的,還有好幾個,不過這里限於篇幅原因就先寫這么多吧!
參考文章:
http://blog.orleven.com/2017/06/22/android-base/
三. Qark
https://github.com/linkedin/qark
輸入y提取manifest文件
對manifest 文件進行了安全評估結果
開始靜態反編譯分析
代碼靜態分析的結果: