AndroidAPP渗透测试---总结

AndroidAPP渗透测试---总结

2023年6月30日发(作者:)

AndroidAPP渗透测试---总结1、apk反编译得到源代码 使⽤编译软件 dex2gar 和 对Android APP软件进⾏反编译。具体步骤如下: (1)⾸先将APK⽂件后缀改为zip并解压,得到其中的,它就是java⽂件编译再通过dx⼯具打包⽽成的,将复制到所在⽬录dex2jar⽂件夹。 (2)在命令⾏下定位到所在⽬录,运⾏ ,⽣成classes_ ⾸先将要编译的apk⽂件后缀修改成 .zip 解压之后得到 ⽂件,将该⽂件下使⽤ ⽂件编译成 . ⽣成 将⽣成的该⽂件导⼊ 这样我们就可以看到APP的源码了

代码审计部分基本从这部分开始。对APP的渗透测试我们需要APP的渗透⿊框架来完成。我这⾥使⽤的 渗透框架是 Drozer 使⽤的系统是 AndroL 4b

2、Drozer渗透测试框架

Drozer 有Window版本和 linux版本(虚拟机),我这⾥使⽤的是虚拟机 AndroL 4b

如何安装 虚拟机中的环境这个⽹上有完整的介绍。这⾥不再写。(1)启动 连接到虚拟机: adb connect 127.0.0.1:5554 (如果没有使⽤虚拟机可以不⽤这步) PC上使⽤adb⼯具进⾏端⼝转发,转发数据到 Drozer 使⽤的端⼝ 31415 adb forward tcp:31415 tcp:31415

开启 embedded server-enable drozer console connect 安装 要测试的APP软件到模拟器上 ,安装⽅法使⽤ adb install

安装完成呢之后在 模拟器丧看到APP已经安装成功 ⾸先我们在 Drozer框架下对被测试的APP进⾏ 信息的收集 run 这⾥我以公开组件漏洞为例⼦,进⾏ 说明安全审计⽅法: 组件 Content Provider配置错误会导致数据泄露。content Provider 以表格的形式把数据展现给外部的应⽤, 每个 Content Provider都对应⼀个 “ Content://” 开头的特定的URL, 任何应⽤都可以通过这个URL操作 Content Provider应⽤的数据库。如果有的应⽤对权限控制不当会导致信息泄露的问题。

进⼀步使⽤ Mercury 获取各个URL的数据

安全渗透测试完成的APP我们如何进⾏卸载了? 使⽤ adb uninstall <.packagename > 之前必须切换到 adb shell ,之后才可以卸载。

在渗透测试的时候借助其他⼯具 像burp Suite、 SDK manage、Wireshark等⼯具对模拟器上的APP进⾏数据包抓包拦截,以及流量的分析。 具体的安全检查点可以对照下⾯的操作去检查。1.获取包名  dz> run -f sieve    2.获取应⽤的基本信息  run -a   3.确定攻击⾯  run surface   ty  (1)获取activity信息  run -a   (2)启动activity  run --component   dz> help   usage: run [-h] [--action ACTION] [--category CATEGORY]  [--component PACKAGE COMPONENT] [--data-uri DATA_URI]  [--extra TYPE KEY VALUE] [--flags FLAGS [FLAGS ...]]  [--mimetype MIMETYPE]  t Provider  (1)获取Content Provider信息  run -a   (2)Content Providers(数据泄露)  先获取所有可以访问的Uri:  run is -a   获取各个Uri的数据:  run   content://entProvider/Passwords/ --vertical  查询到数据说明存在漏洞  (3)Content Providers(SQL注⼊)  run content://entProvider/Passwords/ --projection "'"  run content://entProvider/Passwords/ --selection "'"  报错则说明存在SQL注⼊。  列出所有表:  run content://entProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"  获取某个表(如Key)中的数据:  run content://entProvider/Passwords/ --projection "* FROM Key;--"  (4)同时检测SQL注⼊和⽬录遍历  run ion -a   run sal -a   6 intent组件触发(拒绝服务、权限提升)  利⽤intent对组件的触发⼀般有两类漏洞,⼀类是拒绝服务,⼀类的权限提升。拒绝服务危害性⽐较低,更多的只是影响应⽤服务质量;⽽权限提升将使得没有该权限的应⽤可以通过intent触发拥有该权限的应⽤,从⽽帮助其完成越权⾏为。  1.查看暴露的⼴播组件信息:  run -a   获取broadcast receivers信息  run --component 包名 --action   2.尝试拒绝服务攻击检测,向⼴播组件发送不完整intent(空action或空extras):  run 通过intent发送broadcast receiver  (1) 空action  run --component 包名 ReceiverName  run --component 包名 ReceiverName  (2) 空extras  run --action   3.尝试权限提升  权限提升其实和拒绝服务很类似,只不过⽬的变成构造更为完整、更能满⾜程序逻辑的intent。由于activity⼀般多于⽤户交互有关,所以基 于intent的权限提升更多针对broadcast receiver和service。与drozer相关的权限提升⼯具,可以参考Inten  (1)获取service详情  run -a   不使⽤drozer启动service  am startservice –n 包名/service名  (2)权限提升  run --action _SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS  7.⽂件操作  列出指定⽂件路径⾥全局可写/可读的⽂件  run lefiles --privileged /data/data/  run lefiles --privileged /data/data/  run --component 包名 --action   8.其它模块   在设备上开启⼀个交互shell   / ad 上传/下载⽂件到设备  x / lsu 安装可⽤的⼆进制⽂件

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688094001a80051.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信