一、Dorzer安装
需要用到如下两个工具:如以前安装过mercury,这两个工具应该已经有了。
Java Runtime Environment (JRE) or Java Development Kit (JDK)
Android SDK
下载安装后需要把adb和java工具路径写入PATH环境变量中
1、下载:打开此下载地址,windows环境选择drozer (Windows Installer)并下载
https://www.mwrinfosecurity.com/products/drozer/community-edition/
2、安装:解压zip文件并点击setup安装,一路默认安装就行;它会自动安装到C:\drozer文件夹下。
3、检测是否安装成功:
打开cmd窗口,键入C:\drozer\drozer.bat , 如出现如下提示说明安装成功。
4、安装agent客户端到手机:
确保手机debug模式开启,通过USB连接到PC上,通过如下命令安装agent.apk客户端。
adb install agent.apk
安装完成后启动drozerAgent
点击右下角“开启”按钮,开启Agent
5、建立session连接:
保持手机与PC通过USB连接正常,然后通过cmd窗口键入如下命令
adb forward tcp:31415 tcp:31415
drozer console connect 或 C:\drozer\drozer.bat console connect
出现android头像及:
dz>
命令提示符表示连接成功
6、具体安装步骤和使用方法详见文件:mwri_drozer-users-guide_2013-09-11.pdf
https://www.mwrinfosecurity.com/system/assets/559/original/mwri_drozer-users-guide_2013-09-11.pdf
修复连接时java路径找不到问题:
1、创建如下文件并命名为:1.txt (如果为winXP,则可以直接命名为.drozer_config)
2、写入内容如下几行内容:此处为java.exe文件的安装位置,具体情况具体处理。
[executables]
java =C:\Program Files\Java\jdk1.7.0_40\bin\java.exe
javac =C:\Program Files\Java\jdk1.7.0_04\bin\javac.exe
dx =F:\Android\android-sdk_r18-windows\android-sdk-windows\platform-tools\dx.bat
3、把此文件放入个人目录下文件夹:
英文:C:\Users\<youruser name>\
中文:C:\用户\<你的用户名名称>\
4、通过cmd命令重命名此文件为:.drozer_config
rename C:\Users\d00218136\1.txt .drozer_config
二、android组件安全分析
service组件风险分析
三、Drozer使用
获取apk信息
Run app.packege.list –f过滤信息
Run app.package.info –a apk名
Run app.package.attacksurface apk名
绕过Activity鉴权
Run app.activity.info –a apk包名
(2)构造intent信息绕过鉴权直接运行Activity
Run app.activity.start –-componentcom.mwr.example.sieve包名
利用ContentProvider攻击
Run app.provider.info –a apk包名
Run scanner.provider.finduris –aapk包名
Run app.provider.query URI –vertical
Run app.provider.insert URI对应数据表中的字段
Run app.provider.delete URI–-selection “条件”
SQL注入
Run app.provider.query URI–-projection “ ‘ ”
Run app.provider.query URI–-selection “ ‘ ”
Run app.provider.query URI–projection “* From SQLITE_MASTER WHERE type=‘table’;--”
Run app.provider.query URI–-selection “_id = ?”
预防
(1)进行权限控制,对此组件进行exported=“false”或者设置调用需要申请的权限
(2)SQLiteStatementsqLiteStatement =db.compileStatement("insertinto chat(fromuid,touid,msg) values(?, ?, ?)");
sqLiteStatement.bindLong(1, 12);
sqLiteStatement.bindLong(2, 13);
sqLiteStatement.bindString(3,text);
long newRowId =sqLiteStatement.executeInsert();
http://www.freebuf.com/tools/26503.html
http://www.freebuf.com/articles/terminal/33127.html