1、安装JDK 、SDK、python ,并设置到环境变量
2、下载drozer 、下载 agent.apk
https://labs.mwrinfosecurity.com/tools/drozer/
https://github.com/WithSecureLabs/drozer/releases
3、安装drozer ,并将其加入python 路径
方法: python site-packages 下创建 .pth 文件 C:\Python27\Lib\site-packages\mypkpath.pth
将drozer site-packages 路径 加入mypkpath.pth,即增加一行 D:\tools\drozer\Lib\site-packages
mypkpath.pth 放到sys.path 路径里面
4、安装drozer-agent,安装好后打开 drozerAgent应用,点击右下角的开启按钮
5、TCP访问端口设置
PC端运行 端运行 “adb forward tcp:31415 tcp:31415”
5、运行drozer 下
drozer.bat console connect
报错:
ImportError: No module named google.protobuf
解决:
pip install protobuf
pip install pyopenssl
pip install pyyaml
pip install twisted
pip install service_identity
6、
如果提示找不到Java 或者dx,则需要自己按照如下配置:
在C:\用户\<你的用户名名称>\下创建一个txt文件,内容如下
[executables]
java =C:\Program Files\Java\jdk1.7.0_40\bin\java.exe(自己java的安装位置)
javac =C:\Program Files\Java\jdk1.7.0_04\bin\javac.exe
dx=C:\Users\pradmin.SZPMOXUWJ\AppData\Local\Android\sdk\build-tools\28.0.0-rc1\dx.bat
通过cmd修改文件名:rename C:\Users\d00218136\1.txt .drozer_config
常用drozer 命令
将生成的内容定向到PC ,>后必须有空格
run app.package.list > Y:\drozer\apk.txt
将PC文件上传到手机:
run tools.file.upload Y:\\drozer\\apk.txt $WD/apk.txt
将手机文件下载到PC:
run tools.file.download $WD/drozer.sh Y:\\drozer\\aa.txt
执行文件中drozer命令:
load Y:\\drozer\\drozer.sh
在PC 上运行drozer 服务端
1、drozer server start --port 31417
2、ipconfig 查看PC 的IP地址 192.168.1.100
3、这drozer agent apk中新增Endpoint,host 设置为 192.168.1.100 ,端口设置为 31417 ,即需要与pc 服务器端一致
To cause your agent to connect to the server, you must add its details as an ‘Endpoint’. On the device:
1. Start the drozer Agent, press the menu button, and choose ‘Settings’.
2. Select ‘New Endpoint’.
3. Set the ‘Host’ to the hostname or IP address of your server.
4. Set the ‘Port’ to the port your server is running on, unless it is the standard
5. Press ‘Save’ (you may need to press the menu button on older devices).
4、在drozer agent 中激活监听服务器 192.168.1.100:31417
5、drozer console devices --server 192.168.1.100:31417 //这里手机需要连接上网络
以上命令可以查看到在监听的设备
6、控制台连接到设备
drozer console connect b945bbd1f67f1a54 --server 192.168.1.100:31417
批量获取apk 的攻击信息:
1、获取所有apk 信息
run app.package.list > Y:\\drozer\\apk.txt
2、提取包名转换为drozer 批处理命令
#!/bin/bash
###apk list files
apks_list_file=apk.txt
cat $apks_list_file | while read line
do
apk_name=`echo $line | awk '{print $1}'`
info="echo "$apk_name
echo $info >>attacksurface.txt
cmd="run app.package.attacksurface "$apk_name
echo $cmd >>attacksurface.txt
done
在drozer控制台执行批处理命令
load Y:\\drozer\\attacksurface.txt
在win下换行结尾是\n\r , 而在linux下 是\n,所以才会有多出来的\r用指令:sed -i 's/\r$//' build.sh会把 build.sh 中\r 替换成空白!
常用drozer 命令
run app.service.info -a com.android.bluetooth 列出特定包暴露的service ,也就是没有权限限制的service
run app.service.info -p null 遍历系统没有权限限制的exported service
run app.service.info 遍历系统exported service
run app.service.info -p null -f com.android.bluetooth 过滤
run app.provider.info -p null 遍历系统没有读或者写权限限制的exported provider
run app.provider.info 遍历系统exported provider
run app.broadcast.info -p null 遍历系统没有权限限制的 receiver
run app.broadcast.info 遍历被exported receiver
run app.activity.info 遍历被exported activity
run app.package.debuggable 获取可以调试的apk
content provider 的其它漏洞
http://www.cnblogs.com/0x03/p/7411895.html
扫描指定安装包的content provider的URI:
run scanner.provider.finduris (-a packageName)
Able表示可通过该URI读取数据,反之,Unable表示不可读取。
对指定安装包的content provider进行SQL注入漏洞扫描。
run scanner.provider.injection (-a packageName)
对指定安装包的content provider进行目录遍历漏洞扫描:
run scanner.provider.traversal (-a packageName)