用户
搜索
  • TA的每日心情

    2018-6-6 19:03
  • 签到天数: 38 天

    连续签到: 1 天

    [LV.5]常住居民I

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    99

    主题

    584

    帖子

    598

    魔法币
    收听
    0
    粉丝
    80
    注册时间
    2016-2-2

    楚燕春秋巡逻春秋游侠核心白帽i春秋签约作者突出贡献白帽高手秦齐赵春秋文阁

    发表于 2018-1-26 15:15:29 95305
    本帖最后由 MAX丶 于 2018-2-5 07:48 编辑

    欢迎大家来到Max老师硬件学习大课堂【谜之音:你TMD的还老师滚下去。】  我靠要不要那么打脸??
    咳咳咳!欢迎来到Max硬件小白入门大课堂,今天我们的嘉宾是著名的360智能摄像头 。

    摄像头。。。摄像头嘿说你那给大家打个招呼。
    摄像头:老子硬件无敌,老子安全一百分!!!老子摄像头中的扛把子!!!
    哎呦我靠???那么狂???
    你等着,劳资拆了你。。

      本次测评 感谢 360 赞助设备,并更加感谢“培育信息时代的安全感的i春秋”举办这次活动并给与我这次机会,最主要的是感谢蛋总的赞助。

    下面我们看看这个摄像头
    u=1912577376,2784138258&fm=27&gp=0.jpg

    哥们你跑错片场了.....
    这才是360智能摄像头...
    . QQ截图20180126140526.png
    QQ截图20180126140618.png
    QQ截图20180126140634.png
    QQ截图20180126140645.png

    主体
    品牌
    360
    型号
    D603
    颜色
    哑白
    类型
    智能摄像机
    系统支持
    APP支持安卓IOS系统
    操作方式
    APP连接
    使用环境温度
    -4—40℃
    存储类型
    支持4G、8G、16G、32G 等容量的Micro SD卡
    规格
    材质
    ABS+PC
    机身尺寸
    105mm*58mm*68mm
    机身重量
    裸机102g
    特点
    红外夜视,远程监控,双向对讲,视频分享



    打开以后先是说明书什么之类的里面要你安装APP好控制摄像头的,里面的设备大概是摄像头,电源线,电源接口,还有说明书,还有一个防护垫子用来放在摄像头下面防止刮花一些家居的。
    QQ截图20180126143718.png

    咱们先来看看他的详细参数。
    QQ截图20180126142847.png
    外观设计:
          在这款产品之前,360公司已经推出了多个版本的智能摄像机,不过在外观上一直都沿用着“小水滴”的造型设计,这也成为了360智能摄像机的标志性设计。同样,这款悬浮版的360智能摄像机的摄像头部分依旧采用了“小水滴”的造型设计,而且从正面来看,摄像头部分就像是浮在底座上,科技感非常强。
    QQ截图20180126144444.png
    APP连接设置:
          作为智能摄像机,360智能摄像机同样需要搭配"360摄像机"APP来使用,用户可以根据说明书提示进行下载安装,然后根据APP界面的操作提示,将手机与智能摄像机进行配对,在配对成功后,智能摄像机也会通过语音方式进行提醒,此时摄像机正面的指示灯也会由绿色变为蓝色,此时用户就可在手机上查看实时监控的画面了。
    下面我们开拆:
    QQ截图20180126140913.png
    准备三个不同型号的螺丝刀【都是接的我的螺丝刀还在快递中....】
    QQ截图20180126141021.png


    QQ截图20180126141141.png


    QQ截图20180126141155.png
    拆外壳时候要注意这根线一定要注意很容易损伤【别问我怎么知道的】
    QQ截图20180126141203.png


    QQ截图20180126141214.png


    QQ截图20180126141224.png



    QQ截图20180126141232.png


    QQ截图20180126141243.png


    QQ截图20180126141254.png


    QQ截图20180126141303.png
    主要芯片采用Hi3518 ERBCV100,3518EV100芯片
    QQ截图20180126125531.png

    无线模块的主控芯片是 RTL8188
    QQ截图20180126125512.png
    其它组件给大家看一下吧
    QQ截图20180126125606.png



    QQ截图20180126125620.png







    QQ截图20180126125629.png



    QQ截图20180126125648.png

    然后准备下载固件分析的。。。不过看到群里面这张图.

    QQ图片2018012613115.png

    杨卿师父说的的话。。。。容我抽根烟冷静一下。。




    转换套路上面我有说它有APP设备。搞他的APP。


    APP测试:


    被人吐槽了
    搞得我都后悔没有参加这个活动了,这样的都可以的吗....【没办法,硬件真的没接触过这也是第一次接触】

    好了下面我们进行APP的安全测试。

    利用的工具是Drozer  这里我整理好的工具什么东西都配置好了【链接:https://pan.baidu.com/s/1nxcdIDb 密码:z8pn】
    [Bash shell] 纯文本查看 复制代码
    首先win下面的打开命令行
    
    输入rename  1.drozer_config  .drozer_config 
    1.drozer_config里面东西需要修改一下改成自己的JAVA目录
    [executables]
    java=C:\Program Files (x86)\Java\jdk1.7.0_55\bin\java.exe
    这样防止报错。
    然后安装在手机上drozer-agent-2.3.4.apk这个app打开运行监听
    然后命令drozer.bat console connect --server 192.168.x.xx  输入手机的IP
    显示成功页面
    D:\drozer>drozer.bat console connect --server 192.168.xx.xxx
    Selecting a7a9aca1481b14f6 (360 1605-A01 6.0.1)
    
                ..                    ..:.
               ..o..                  .r..
                ..a..  . ....... .  ..nd
                  ro..idsnemesisand..pr
                  .otectorandroidsneme.
               .,sisandprotectorandroids+.
             ..nemesisandprotectorandroidsn:.
            .emesisandprotectorandroidsnemes..
          ..isandp,..,rotectorandro,..,idsnem.
          .isisandp..rotectorandroid..snemisis.
          ,andprotectorandroidsnemisisandprotec.
         .torandroidsnemesisandprotectorandroid.
         .snemisisandprotectorandroidsnemesisan:
         .dprotectorandroidsnemesisandprotector.
    
    drozer Console (v2.4.4)
    dz>


    QQ截图20180201135144.png

    进入drozer


    APP模块

    模块名
    作用
    app.activity.forintent
    通过intent查找它的activity
    app.activity.info
    获取activities信息
    app.activity.start
    开启 Activity
    app.broadcast.info
    获取broadcast receivers信息
    app.broadcast.send
    发送广播
    app.broadcast.sniff
    嗅探广播中intent的数据
    app.package.attacksurface
    确定安装包的可攻击面
    app.package.backup
    列出可备份的包
    app.package.debuggable
    列出可debug的包
    app.package.info
    获取已安装包的信息
    app.package.launchintent
    获取程序启动的activity信息
    app.package.list
    手机已安装的程序包
    app.package.manifest
    获取程序manifest文件信息
    app.package.native
    列出Native libraries 信息
    app.package.shareduid
    查找拥有共同uid的包和他们所有的权限
    app.provider.columns
    展示content provider URI的各列
    app.provider.delete
    删除content provider URI的内容
    app.provider.download
    使用openInputStream读取指定uri的内容,并下载在电脑中
    app.provider.info
    获取 content providers信息
    app.provider.insert
    插入数据到content provider
    app.provider.query
    查询content provider 内容
    app.provider.read
    使用openInputStream读取指定uri的内容
    app.provider.update
    更新content provider的内容
    app.service.info
    获取services的信息
    app.service.send
    使用 Message攻击暴露的service,其service实现了handleMessage
    app.service.start
    开启服务
    app.service.stop
    停止服务


    app.package.list
    usage: run app.package.list [-h] [-d DEFINES_PERMISSION] [-f FILTER] [-g GID][-p PERMISSION] [-u UID] [-n]
    列出所有手机安装的包
    Examples:

    查找带有browser的包:

    dz> run app.package.list -f browsercom.android.browser

    License: BSD (3 clause)

    optional arguments:



    参数名
    作用
    -d DEFINES_PERMISSION, –defines-permission
    通过自定义permission 查询 ,
    -f FILTER, –filter FILTER
    通过关键词查询
    -g GID, –gid GID
    通过GID查询
    -p PERMISSION, –permission PERMISSION
    uses-permission过滤查询,
    -u UID, –uid UID
    通过UID查询
    -n, –no_app_name
    不输出应用名

    app.activity.start
    usage: run app.activity.start [-h] [–action ACTION] [–category CATEGORY [CATEGORY …]] [–component PACKAGE COMPONENT] [–data-uri DATA_URI][–extra TYPE KEY VALUE] [–flags FLAGS [FLAGS …]] [–mimetype MIMETYPE]
    通过特制的Intent启动activity。
    Examples:

    显式 intent开启浏览器:

    dz> run app.activity.start            --component com.android.browser                        com.android.browser.BrowserActivity            --flags ACTIVITY_NEW_TASK

    如果不设置flags,默认值为ACTIVITY_NEW_TASK . 取消默认值的方法如下:
    dz> run app.activity.start            --component com.android.browser   com.android.browser.BrowserActivity            --flags 0x0

    隐式 intent开启浏览器 :
    dz> run app.activity.start            --action android.intent.action.VIEW            --data-uri http://www.google.com            --flags ACTIVITY_NEW_TASK

    更多关于intents的帮助使用命令’help intents’.
    Last Modified: 2012-11-06

    Credit: MWR InfoSecurity (@mwrlabs)

    License: BSD (3 clause)

    optional arguments:


    参数名
    作用
    –action ACTION
    指定action
    –category CATEGORY [CATEGORY …]
    指定category
    –data-uri DATA_URI
    指定uri
    –extra TYPE KEY VALUE
    指定附加的数据
    –flags FLAGS [FLAGS …]
    指定一个或者多个flags
    –mimetype MIMETYPE
    指定文件类型
    –component PACKAGE COMPONENT
    指定componnent



    对于显式Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些隐式Intent,通过解析,将Intent映射给可以处理此Intent的Activity、IntentReceiver或Service。

    Intent解析机制主要是通过查找已注册在AndroidManifest.xml中的所有IntentFilter及其中定义的Intent,最终找到匹配的Intent。在这个解析过程中,Android是通过Intent的action、type、category这三个属性来进行判断的,判断方法如下:
    • 如果Intent指明定了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不能匹配;
    • 如果Intent没有提供type,系统将从data中得到数据类型。和action一样,目标组件的数据类型列表中必须包含Intent的数据类型,否则不能匹配。
    • 如果Intent中的数据不是content:

      类型的URI,而且Intent也没有明确指定它的type,将根据Intent中数据的scheme (比如 http: 或者mailto:)

      进行匹配。同上,Intent 的scheme必须出现在目标组件的scheme列表中。
    • 如果Intent指定了一个或多个category,这些类别必须全部出现在组建的类别列表中。比如Intent中包含了两个类别:LAUNCHER_CATEGORY

      和 ALTERNATIVE_CATEGORY,解析得到的目标组件必须至少包含这两个类别。
    • 如果 component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。

    app.activity.info
    usage: run app.activity.info [-h] [-a PACKAGE] [-f FILTER] [-i] [-u] [-v]
    Gets information about exported activities.
    Examples:

    List activities exported by the Browser:

    dz> run app.activity.info --package com.android.browserPackage: com.android.browser  com.android.browser.BrowserActivity  com.android.browser.ShortcutActivity  com.android.browser.BrowserPreferencesPage  com.android.browser.BookmarkSearch  com.android.browser.AddBookmarkPage  com.android.browser.widget.BookmarkWidgetConfigure

    Last Modified: 2012-11-06

    Credit: MWR InfoSecurity (@mwrlabs)

    License: BSD (3 clause)

    optional arguments:


    参数名
    作用
    -a PACKAGE, –package PACKAGE
    指定包名
    -f FILTER, –filter FILTER
    指定activity的名称
    -i, –show-intent-filters
    显示activity的intent-filters
    -u, –unexported
    包括exported:false的activity
    -v, –verbose
    显示详细信息

    app.package.info
    usage: run app.package.info [-h] [-a PACKAGE] [-d DEFINES_PERMISSION] [-f FILTER] [-g GID] [-p PERMISSION] [-u UID] [-i]
    List all installed packages on the device with optional filters. Specify optional keywords to search for in the package information, or granted permissions.
    Examples:

    Finding all packages with the keyword “browser” in their name:

    dz> run app.package.info -f browser  Package: com.android.browser  Process name: com.android.browser  Version: 4.1.1  Data Directory: /data/data/com.android.browser  APK path: /system/app/Browser.apk  UID: 10014  GID: [3003, 1015, 1028]  Shared libraries: null  Permissions:  - android.permission.ACCESS_COARSE_LOCATION  - android.permission.ACCESS_DOWNLOAD_MANAGER  - android.permission.ACCESS_FINE_LOCATION  ...

    Finding all packages with the “INSTALL_PACKAGES” permission:
    dz> run app.package.info -p INSTALL_PACKAGESPackage: com.android.packageinstaller  Process Name: com.android.packageinstaller  Version: 4.1.1-403059  Data Directory: /data/data/com.android.packageinstaller  APK Path: /system/app/PackageInstaller.apk  UID: 10003  GID: [1028]  Shared Libraries: null  Shared User ID: null  Permissions:  - android.permission.INSTALL_PACKAGES  - android.permission.DELETE_PACKAGES  - android.permission.CLEAR_APP_CACHE  - android.permission.READ_PHONE_STATE  - android.permission.CLEAR_APP_USER_DATA  - android.permission.READ_EXTERNAL_STORAGE



    License: BSD (3 clause)

    optional arguments:


    参数名
    作用
    -a PACKAGE, –package PACKAGE
    指定包名
    -d DEFINES_PERMISSION, –defines-permission DEFINES_PERMISSION
    通过自定义的权限过滤
    -f FILTER, –filter FILTER
    通过关键词查询
    -g GID, –gid GID
    指定GID
    -p PERMISSION, –permission PERMISSION
    通过权限过滤
    -u UID, –uid UID
    指定UID
    -i, –show-intent-filters
    显示intent-filters

    app.broadcast.info
    usage: run app.broadcast.info [-h] [-a PACKAGE] [-f FILTER] [-p PERMISSION] [-i] [-u] [-v]
    获取broadcast receivers信息
    Examples:

    Get receivers exported by the platform:

    dz> run app.broadcast.info -a androidPackage: android  com.android.server.BootReceiver    Permission: null  com.android.server.updates.CertPinInstallReceiver    Permission: null  com.android.server.updates.IntentFirewallInstallReceiver    Permission: null  com.android.server.updates.SmsShortCodesInstallReceiver    Permission: null  com.android.server.updates.CarrierProvisioningUrlsInstallReceiver    Permission: null  com.android.server.updates.TZInfoInstallReceiver    Permission: null  com.android.server.updates.SELinuxPolicyInstallReceiver    Permission: null  com.android.server.MasterClearReceiver    Permission: android.permission.MASTER_CLEAR

    Last Modified: 2012-11-06

    Credit: MWR InfoSecurity (@mwrlabs), Luander ([email]luander.r@samsung.com[/email])

    License: BSD (3 clause)

    optional arguments:


    参数名
    作用
    -a PACKAGE, –package PACKAGE
    指定包名
    -f FILTER, –filter FILTER
    通过关键词查询
    -p PERMISSION, –permission PERMISSION
    通过权限过滤
    -i, –show-intent-filters
    显示intent-filters
    -u, –unexported
    包括exported:false的receivers
    -v, –verbose
    显示详细信息

    app.service.info
    usage: run app.service.info [-h] [-a PACKAGE] [-f ] [-i] [-p ] [-u] [-v]
    获取services信息.
    Examples:

    List services exported by the Browser:

    dz> run app.service.info --package com.android.browserPackage: com.android.browser  No exported services.

    List exported services with no permissions required to interact with it:
    dz> run app.service.info -p nullPackage: com.android.email  com.android.email.service.EmailBroadcastProcessorService    Permission: null  com.android.email.Controller$ControllerService    Permission: null  com.android.email.service.PopImapAuthenticatorService    Permission: null  com.android.email.service.PopImapSyncAdapterService    Permission: null  com.android.email.service.EasAuthenticatorService    Permission: null


    参数名
    作用
    -a PACKAGE, –package PACKAGE
    指定包名
    -f FILTER, –filter FILTER
    通过关键词查询
    -p PERMISSION, –permission PERMISSION
    通过权限过滤
    -i, –show-intent-filters
    显示intent-filters
    -u, –unexported
    包括exported:false的service
    -v, –verbose
    显示详细信息

    app.provider.info
    usage: run app.provider.info [-h] [-a PACKAGE] [-f FILTER] [-p PERMISSION] [-u] [-v]
    获取 content providers信息
    Examples:

    Find content provider with the keyword “settings” in them:

    dz> run app.provider.info -f settingsPackage name: com.google.android.gsfAuthority: com.google.settingsRequired Permission - Read: nullRequired Permission - Write: com.google.android.providers.settings.permission.WRITE_GSETTINGSGrant Uri Permissions: falseMultiprocess allowed: falsePackage name: com.android.providers.settingsAuthority: settingsRequired Permission - Read: nullRequired Permission - Write: android.permission.WRITE_SETTINGSGrant Uri Permissions: falseMultiprocess allowed: false

    Finding content providers that do not require permissions to read/write:
    dz> run app.provider.info -p nullPackage name: com.google.android.gsfAuthority: com.google.settingsRequired Permission - Read: nullRequired Permission - Write: com.google.android.providers.settings.permission.WRITE_GSETTINGSGrant Uri Permissions: falseMultiprocess allowed: false...

    Last Modified: 2012-11-06

    Credit: MWR InfoSecurity (@mwrlabs)

    License: BSD (3 clause)

    optional arguments:

    参数名
    作用
    -a PACKAGE, –package PACKAGE
    指定包名
    -f FILTER, –filter FILTER
    通过关键词查询
    -p PERMISSION, –permission PERMISSION
    通过权限过滤
    -u, –unexported
    包括exported:false的provider
    -v, –verbose
    显示详细信息

    app.activity.forintent
    usage: run app.activity.forintent [-h] [–action ACTION] [–category CATEGORY [CATEGORY …]] [–component PACKAGE COMPONENT] [–data-uri DATA_URI] [–extra TYPE KEY VALUE] [–flags FLAGS [FLAGS …]] [–mimetype MIMETYPE]
    通过intent查找它的activity
    Examples:

    Find activities that can handle web addresses:

    dz> run app.activity.forintent            --action android.intent.action.VIEW            --data http://www.google.comPackage name: com.android.browserTarget activity: com.android.browser.BrowserActivity


    参数名
    作用
    –action ACTION
    指定action
    –category CATEGORY [CATEGORY …]
    指定category
    –data-uri DATA_URI
    指定uri
    –extra TYPE KEY VALUE
    指定附加的数据
    –flags FLAGS [FLAGS …]
    指定一个或者多个flags
    –mimetype MIMETYPE
    指定文件类型
    –component PACKAGE COMPONENT
    指定componnent

    app.broadcast.send
    usage: run app.broadcast.send [-h] [–action ACTION] [–category CATEGORY [CATEGORY …]] [–component PACKAGE COMPONENT] [–data-uri DATA_URI] [–extra TYPE KEY VALUE] [–flags FLAGS [FLAGS …]] [–mimetype MIMETYPE]
    Examples:

    Attempt to send the BOOT_COMPLETED broadcast message:

    dz> run app.broadcast.send            --action android.intent.action.BOOT_COMPLETEDjava.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED

    from pid=955, uid=10044


    参数名
    作用
    –action ACTION
    指定action
    –category CATEGORY [CATEGORY …]
    指定category
    –data-uri DATA_URI
    指定uri
    –extra TYPE KEY VALUE
    指定附加的数据
    –flags FLAGS [FLAGS …]
    指定一个或者多个flags
    –mimetype MIMETYPE
    指定文件类型
    –component PACKAGE COMPONENT
    指定componnent

    app.broadcast.sniff
    usage: run app.broadcast.sniff [-h] [–action ACTION] [–category CATEGORY [CATEGORY …]] [–data-authority HOST PORT] [–data-path PATH TYPE] [–data-scheme DATA_SCHEME [DATA_SCHEME …]] [–data-type DATA_TYPE [DATA_TYPE …]]
    Register a broadcast receiver that can sniff particular intents
    获取电量信息

    Examples:

    dz> run app.broadcast.sniff –action android.intent.action.BATTERY_CHANGED

    Broadcast receiver registered to sniff matching intents  Output is updated once a second. Press Control+C to exit.
    Action: android.intent.action.BATTERY_CHANGED

    Raw: Intent { act=android.intent.action.BATTERY_CHANGED **=0x60000010 (has extras) }

    Extra: technology=Li-ion (java.lang.String)

    Extra: icon-small=17303411 (java.lang.Integer)

    Extra: health=2 (java.lang.Integer)

    Extra: online=4 (java.lang.Integer)

    Extra: status=2 (java.lang.Integer)

    Extra: plugged=2 (java.lang.Integer)

    Extra: present=true (java.lang.Boolean)

    Extra: level=80 (java.lang.Integer)

    Extra: scale=100 (java.lang.Integer)

    Extra: temperature=280 (java.lang.Integer)

    Extra: current_avg=460 (java.lang.Integer)

    Extra: voltage=4151 (java.lang.Integer)

    Extra: charge_type=1 (java.lang.Integer)

    Extra: invalid_charger=0 (java.lang.Integer)


    参数名
    作用
    –action ACTION
    指定action
    –category CATEGORY [CATEGORY …]
    指定category
    –data-authority HOST PORT
    指定data中的host:port
    –data-path PATH TYPE
    指定data中的path
    –data-scheme DATA_SCHEME [DATA_SCHEME …]
    指定data中的scheme
    –data-type DATA_TYPE [DATA_TYPE …]
    指定data中的数据类型



    scheme, host, port, path, pathPrefix, pathPattern 是用来匹配 Intent 中的 Data Uri 的。具体规则如下:

      scheme://host:port/path or pathPrefix or pathPattern


    app.package.attacksurface
    usage: run app.package.attacksurface [-h] package
    确定安装包的可攻击面
    Examples:

    Finding the attack surface of the built-in browser

    dz> run app.package.attacksurface com.android.browser6 activities exported4 broadcast receivers exported1 content providers exported0 services exported

    optional arguments:

    -h, –help


    app.package.backup
    usage: run app.package.backup [-h] [-f FILTER] [-k]
    列出可备份的包

    参数名
    作用
    -f FILTER, –filter FILTER
    指定包名
    -k, –api-keys
    只展示有api keys的包

    app.package.debuggable
    usage: run app.package.debuggable [-h] [-f FILTER] [-v]
    列出可debug的包


    参数名
    作用
    -f FILTER, –filter FILTER
    指定包名
    -v, –verbose
    附加不可debug的包信息

    app.package.launchintent
    usage: run app.package.launchintent [-h] [-r] package
    获取程序启动的activity信息
    Examples:

    Finding the launch intent of the Android browser package:

    dz> run app.package.launchintent com.android.browserIntent:  Action: android.intent.action.MAIN  Component: {com.android.browser/com.android.browser.BrowserActivity}  Data: null  Categories:    android.intent.category.LAUNCHER  Flags: [ACTIVITY_NEW_TASK]  Mime Type: null  Extras: null


    参数名
    作用
    -r, –raw
    相当于intent.toString()

    app.package.manifest
    usage: run app.package.manifest [-h] package
    获取程序manifest文件信息,和apktool反编译出来的对比,drozer的还能查看versionCode、versionName、minSdkVersion、targerSdkversion。
    Examples:

    Getting the manifest for drozer

    dz> run app.package.manifest com.mwr.dz<manifest versionCode="2" versionName="1.1" package="com.mwr.dz">  <uses-sdk minSdkVersion="8" targetSdkVersion="4">  </uses-sdk>  <uses-permission name="android.permission.INTERNET">  </uses-permission>  ...</manifest>




    app.package.native
    usage: run app.package.native [-h] package
    列出Native libraries 信息
    Last Modified: 2013-03-23

    Credit: MWR InfoSecurity (@mwrlabs)

    License: BSD (3 clause)

    positional arguments:

    package the identifier of the package

    optional arguments:



    app.package.shareduid
    usage: run app.package.shareduid [-h] [-u UID]
    查找拥有共同uid的包和他们所有的权限。
    Examples:

    Finding packages that share the UID 10011

    dz> run app.package.shareduid -u 10011UID: 10011 (com.motorola.blur.uid.provider_authenticator:10011)Package Name: com.motorola.blur.provider.photobucketPackage Name: com.motorola.blur.provider.picasaPackage Name: com.motorola.blur.provider.yahooPackage Name: com.motorola.blur.provider.twitterPackage Name: com.motorola.blur.provider.fixedemailPackage Name: com.motorola.blur.provider.motorola.appPackage Name: com.motorola.blur.provider.orkutPackage Name: com.motorola.blur.provider.emailPackage Name: com.motorola.blur.provider.facebookPackage Name: com.motorola.blur.provider.lastfmPackage Name: com.motorola.blur.provider.linkedinPackage Name: com.motorola.blur.provider.youtubePackage Name: com.motorola.blur.provider.skyrockPackage Name: com.motorola.blur.provider.activesyncPackage Name: com.motorola.blur.provider.flickrAccumulated permissions: com.motorola.blur.setupprovider.Permissions.ACCESS_ACCOUNTS; ...



    参数名
    作用
    -u UID, –uid UID
    指定uid

    app.provider.columns
    usage: run app.provider.columns [-h] uri
    展示content provider URI的各列名
    Examples:

    List the columns of content://settings/secure

    dz> run app.provider.columns content://settings/secure| _id | name | value |




    app.provider.delete
    usage: run app.provider.delete [-h] [–selection conditions] [–selection-args [arg [arg …]]] uri
    删除content provider URI的内容
    Examples:

    Delete from content://settings/secure, with name condition:

    dz> run app.provider.delete content://settings/secure            --selection "name=?"            --selection-args my_setting


    参数名
    作用
    –selection conditions
    指定列名
    –selection-args [arg [arg …]]
    指定值

    app.provider.download
    usage: run app.provider.download [-h] uri destination
    使用openInputStream读取指定uri的内容,并下载在电脑中
    使用前提:provider实现了openFile
    如果在window下,目的地址’/’为drozer安装目录所在的磁盘,比如drozer安装在D盘
    目的地址为/data.db ,文件就在D:\data.db
    Examples:

    Download, using directory traversal on a content provider:

    dz> run app.provider.download content://vulnerable.provider/../../../system/etc/hosts /tmp/hostsfileWritten 25 bytes





    app.provider.insert
    usage: **run app.provider.insert [-h] [–boolean column data] [–double column data]

    [–float column data] [–integer column data]

    [–long column data] [–short column data]

    [–string column data] uri**

    插入数据到content provider.
    Examples:

    Insert into a vulnerable content provider:

    dz> run app.provider.insert content://com.vulnerable.im/messages            --string date 1331763850325            --string type 0            --integer _id 7

    positional arguments:

    uri the content provider uri to insert into

    optional arguments:
    –boolean 【column】 【data】

    –double 【column】【 data】

    –float 【column】【 data】

    –integer 【column】【 data】

    –long 【column】【 data】

    –short 【column】【 data】

    –string 【column】【 data】


    app.provider.finduri
    usage: run app.provider.finduri [-h] package
    查找Content URIs
    This module uses a number of strategies to identify a content URI, including inspecting the authorities, path

    permissions and searching for strings inside the package.

    Examples:

    Find content provider URIs in the Browser:

    dz> run app.provider.finduri com.android.browserScanning com.android.browser...content://com.android.browser.home/res/raw/content://browser/search_suggest_querycontent://browser/content://com.android.browser.snapshots/content://com.android.browser/bookmarks/search_suggest_querycontent://com.android.browser/content://com.google.settings/partnercontent://com.android.browser.snapshotscontent://com.google.android.partnersetup.rlzappprovider/content://com.android.browser.home/content://browser/bookmarks/search_suggest_query

    positional arguments:

    package the package to search for content provider uris

    optional arguments:

    -h, –help


    app.provider.query
    usage: run app.provider.query [-h] [–projection [columns [columns …]]] [–selection conditions] [–selection-args [arg [arg …]]] [–order by_column] [–vertical] uri
    查询content provider 内容
    Examples:

    Querying the settings content provider:

    dz> run app.provider.query content://settings/secure| _id | name    | value   || 5   | assisted_gps_enabled | 1       || 9   | wifi_networks_available_notification_on | 1       || 10  | sys_storage_full_threshold_bytes        | 2097152 || ... | ...   

    Querying, with a WHERE clause in the SELECT statement:
    dz> run app.provider.query content://settings/secure     --selection "_id=?"  --selection-args 10| _id | name   | value   || 10  |sys_storage_full_threshold_bytes        | 2097152 |



    参数名
    作用
    –projection [columns [columns …]]
    选择查询哪些列,如:–projection _id,name
    –selection conditions
    指定列名
    –selection-args [arg [arg …]]
    指定列名的值
    –order by_column
    通过哪一列排序
    –vertical
    垂直显示

    app.provider.read
    usage: run app.provider.read [-h] uri
    使用openInputStream读取指定uri的内容
    使用前提:provider实现了openFile
    Examples:

    Attempt directory traversal on a content provider:

    dz> run app.provider.read content://settings/secure/../../../system/etc/hostsjava.io.FileNotFoundException: No files supported by provider at content://settings/secure/../../../system/etc/hosts



    app.provider.update
    usage: run app.provider.update [-h] [–selection conditions] [–selection-args [arg [arg …]]] [–boolean column data] [–double column data] [–float column data] [–integer column data] [–long column data] [–short column data] [–string column data] uri
    更新content provider的内容
    Examples:

    Updating, the assisted_gps_enabled setting:

    dz> run app.provider.update content://settings/secure            --selection "name=?"            --selection-args assisted_gps_enabled            --integer value 0Done.


    参数名
    作用
    –selection conditions
    指定列名
    –selection-args [arg [arg …]]
    指定列名的值
    –boolean column data
    列名+值
    –double column data
    列名+值
    –float column data
    列名+值
    –integer column data
    列名+值
    –long column data
    列名+值
    –short column data
    列名+值
    –string column data
    列名+值

    app.service.start
    usage: run app.service.start [-h] [–action ACTION] [–category CATEGORY [CATEGORY …]] [–component PACKAGE COMPONENT] [–data-uri DATA_URI] [–extra TYPE KEY VALUE] [–flags FLAGS [FLAGS …]] [–mimetype MIMETYPE]


    参数名
    作用
    –action ACTION
    指定action
    –category CATEGORY [CATEGORY …]
    指定category
    –data-uri DATA_URI
    指定uri
    –extra TYPE KEY VALUE
    指定附加的数据
    –flags FLAGS [FLAGS …]
    指定一个或者多个flags
    –mimetype MIMETYPE
    指定文件类型
    –component PACKAGE COMPONENT
    指定componnent

    app.service.stop
    usage: run app.service.stop [-h] [–action ACTION] [–category CATEGORY [CATEGORY …]] [–component PACKAGE COMPONENT] [–data-uri DATA_URI] [–extra TYPE KEY VALUE] [–flags FLAGS [FLAGS …]] [–mimetype MIMETYPE]


    参数名
    作用
    –action ACTION
    指定action
    –category CATEGORY [CATEGORY …]
    指定category
    –data-uri DATA_URI
    指定uri
    –extra TYPE KEY VALUE
    指定附加的数据
    –flags FLAGS [FLAGS …]
    指定一个或者多个flags
    –mimetype MIMETYPE
    指定文件类型
    –component PACKAGE COMPONENT
    指定componnent

    app.service.send
    usage: run app.service.send [-h] [–msg what arg1 arg2] [–extra type key value] [–no-response] [–timeout TIMEOUT] [–bundle-as-obj] package component
    使用 Message攻击暴露的service,其service实现了handleMessage。
    NB: by default, this module will wait 20 seconds for a reply.
    Examples:

    Deliver a Message to a dummy application, that simply returns the message:

    dz> run app.service.send com.example.srv com.example.srv.Service --msg 1 2 3 --extra float value 0.1324 --extra

    string test value

    Got a reply from com.example.srv/com.example.srv.Service:

    what: 1

    arg1: 2

    arg2: 3

    Data:

    value (float) : 0.1324

    test (string) : value


    参数名
    作用
    –msg what arg1 arg2
    指定message obtain获取的值,what、arg1、arg2
    –extra type key value
    指定bundle的数据
    –no-response
    丢弃回复
    –timeout TIMEOUT
    设置等待回复的超时时间
    –bundle-as-obj
    设置obj的值



    输入 list ls 命令即可查看drozer所有可用模块

    QQ截图20180201135144.png




    找到程序安装包


    首先需要找到所要测试安卓应用程序的包名


    执行命令:run app.package.list


    即可查看所有安装在手机上应用程序的包名


    1.png

    查看我们360摄像头的app名字找到相同的就好了

    2.png


    查看程序包信息

    执行命令:run app.package.info -a com.qihoo.camera


    查看安装包信息.

    4.png


    查看攻击面

    执行命令: run app.package.attacksurface  com.qihoo.camera


    查看该APP的可攻击面(即对外开放的组件)


    5.png


    查看并测试组件

    执行命令: run app.activity.info -a com.qihoo.camera


    查看对外的activity组件信息

    6.png





    同样的可以通过调用app.service.info app.broadcast.info app.provider.info 模块来查看其他组件的详细信息

    runapp.activity.start --component com.qihoo.camera com.qihoo.jia.ui.activity.ThreeLevelActivity,看看能不能能越权访问activity:
    7.png

    Service越权检测

    1)使用命令:runapp.service.info -a com.qihoo.camera,导出的 service:

    这里可以看到无法导出

    8.png


    Provider SQL注入检测runscanner.provider.injection -a com.qihoo.camera ,获取导出信息




    9.png


    还是无法获取

    Provider 目录遍历检测

    runapp.provider.info -a com.qihoo.camera,获取导出信息:
    10.png

    靠还没有= =】

    获取broadcast receivers信息检测
    run app.broadcast.info -a com.qihoo.camera


    12.png


    到这里差不多APP检测写的差不多了还有什么要补充的大家在下面提问】



    评分

    参与人数 1魔法币 +50 收起 理由
    XiaoYue97 + 50 坐等更新

    查看全部评分

    本帖被以下淘专辑推荐:

    我欲将心向明月,奈何明月照沟渠。
                      天人照我本和兴,只是难易风化岩。
    抽完这只烟接着搞
    使用道具 举报 回复
    发表于 2018-1-27 19:43:29
    跌丝袜
    使用道具 举报 回复
    发表于 2018-1-27 22:32:38
    学习了。
    使用道具 举报 回复
    发表于 2018-1-29 11:12:52
    这。。。搞得我都后悔没有参加这个活动了,这样的都可以的吗
    使用道具 举报 回复
    发表于 2018-1-29 13:51:09
    BeEasy 发表于 2018-1-29 03:12
    这。。。搞得我都后悔没有参加这个活动了,这样的都可以的吗 ...

    兄弟我还没写完- -你这样说真的好吗
    我欲将心向明月,奈何明月照沟渠。
                      天人照我本和兴,只是难易风化岩。
    使用道具 举报 回复
    发表于 2018-1-29 13:56:19
    MAX丶 发表于 2018-1-29 13:51
    兄弟我还没写完- -你这样说真的好吗

    大佬不要发火 大佬不要发火,,期待大佬展示真正的技术
    使用道具 举报 回复
    发表于 2018-1-29 14:07:27
    BeEasy 发表于 2018-1-29 05:56
    大佬不要发火 大佬不要发火,,期待大佬展示真正的技术

    没有发火= =就是硬件真的不会玩...智能搞些软件
    我欲将心向明月,奈何明月照沟渠。
                      天人照我本和兴,只是难易风化岩。
    使用道具 举报 回复
    发表于 2018-1-29 14:10:08
    MAX丶 发表于 2018-1-29 14:07
    没有发火= =就是硬件真的不会玩...智能搞些软件

    。。。。stop大佬不要谦虚,我也只是个学习中的读者
    使用道具 举报 回复
    发表于 2018-2-2 11:36:40
    感谢分享
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册