文章首發(fā)自個人博客:https://jwt1399.top/posts/4946.html
1.Drozer簡介
drozer是一款針對Android系統(tǒng)的安全測試框架蕊退。drozer可以幫助App和設(shè)備變得更安全,其提供了很多Android平臺下的滲透測試exploit供你使用和分享。對于遠(yuǎn)程的exploit润努,它可以生成shellcode幫助你進(jìn)行遠(yuǎn)程設(shè)備管理勃刨。
2.環(huán)境配置
1.jdk1.6+
2.python2.7
3.android sdk
4.安裝adb
5.模擬器也要安裝drozer agent
6.確保配置了adb磨确、java環(huán)境變量
安裝drozer
方法一:直接下載drozer
下載地址:https://labs.mwrinfosecurity.com/tools/drozer/ (下載drozer (RPM))锋恬,解壓后drozer在drozer\usr\bin
路徑下
方法二:利用Appie里面帶有drozer
下載在appie解壓后drozer在Appie\base\
路徑下
模擬器安裝agent.apk
將agent.apk下載后,通過cmd安裝或者直接拖進(jìn)模擬器進(jìn)行安裝
adb install 安裝路徑/agent.apk
模擬器安裝sieve.apk
sieve.apk為官網(wǎng)給的測試apk杠娱,上面自帶各種漏洞挽牢,后面的案例以sieve.apk為例演示
將sieve.apk下載后,通過cmd安裝或者直接拖進(jìn)模擬器進(jìn)行安裝
adb install 安裝路徑/sieve.apk
3.連接mumu模擬器
打開cmd運行
adb connect 127.0.0.1:7555
4.進(jìn)入Drozer控制臺
首先要在mumu模擬器中打開drozer-agent
然后使用 adb 進(jìn)行端口轉(zhuǎn)發(fā)摊求,轉(zhuǎn)發(fā)到上邊Drozer使用的默認(rèn)端口31415
禽拔,并進(jìn)入Drozer 控制臺
adb forward tcp:31415 tcp:31415
e:
cd Appie/base //進(jìn)入drozer的安裝路徑下
drozer console connect
<img src="https://i.loli.net/2020/03/23/esFra6tB3mGWNxw.png" alt="image-20200323152410484" style="zoom: 50%;" />
看到如上顯示,說明啟動成功睹簇,下一步則可以進(jìn)行測試
5.配置Siveve
為了我們后面的安全案例講解奏赘,我們需要先配置Sieve寥闪。
打開sieve太惠,第一次進(jìn)入需要輸入16位的密碼,提交后需要創(chuàng)建4位數(shù)的PIN
設(shè)置密碼:1234567890123456
PIN:1399
進(jìn)去功能界面疲憋,添加新的密碼凿渊,郵箱;主要是為了往數(shù)據(jù)庫添加數(shù)據(jù),方便之后的攻擊顯示結(jié)果,埃脏,隨便亂填就可以了搪锣。我添加了一個名為jwt
的信息
配置好就可以開始安全測試了
6.Drozer之sieve安全測試
6.1列出安裝的所有應(yīng)用包名
dz> run app.package.list
中文亂碼解決方法:
使用run app.package.list
命令可能會出現(xiàn)中文亂碼,下面是我在網(wǎng)上找的解決辦法彩掐,找到下圖路徑下文件進(jìn)行對應(yīng)修改构舟,就可以了。親測有效堵幽!
6.2利用關(guān)鍵詞搜索得出包名
run app.package.list -f 關(guān)鍵字
dz> run app.package.list -f sieve
com.mwr.example.sieve
6.3查看包的詳細(xì)信息
dz> run app.package.info -a com.mwr.example.sieve
通過上述方式狗超,我們可以獲得應(yīng)用數(shù)據(jù)目錄、apk的路徑朴下、UID努咐、GID等信息。
6.4識別攻擊面
dz> run app.package.attacksurface com.mwr.example.sieve
這里我們發(fā)現(xiàn)有3個activities殴胧,2個content providers渗稍,2個services exported是導(dǎo)出的,這些都是潛在風(fēng)險入口团滥。
6.5測試activities exported (繞過登陸驗證)
dz> run app.activity.info -a com.mwr.example.sieve
//顯示暴露的Activity信息
根據(jù)名稱可以猜測出.FileSelectActivity
可能是和文件有關(guān)竿屹,.MainLoginActivity
就是主界面,.PWList
可能和密碼有關(guān)灸姊。
app需要輸入PIN或者密碼才能進(jìn)去主界面羔沙,
但是看到FileSelectActivity
和PWList
明顯是登陸進(jìn)去后的界面,這里我們可以直接調(diào)用此兩個activity厨钻,從而繞過登陸驗證扼雏。
dz> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList //該命令會生成一個合適的intent來啟動activity
運行之后可以直接進(jìn)入到我們一開始配置的測試信息界面,繞過了登錄驗證
6.6利用內(nèi)容提供商
run app.provider.info -a
run scanner.provider.finduris -a
run app.provider.query
run app.provider.update --selection
run scanner.provider.sqltables -a
run scanner.provider.injection -a
run scanner.provider.traversal -a
6.7利用廣播接收器
run app.broadcast.info -a
run app.broadcast.send --component --extra
run app.broadcast.sniff --action
6.8開發(fā)服務(wù)
run app.service.info -a
run app.service.start --action --component
run app.service.send --msg --extra --bundle-as-obj
參考:drozer之玩轉(zhuǎn)sieve
參考:安卓四大組件審計實驗(drozer)
參考:Android安全測試框架Drozer(使用篇)
參考:drozer-Android安全測試基本使用教程(Windows10)