标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-3084] 作者: 小螺号 发表于: [2022-04-26]
本文共 [216] 位读者顶过
App面临的主要风险客户端· 传统逆向分析类(反编译、调试、加密/签名破解…) · 用户已经中招类(输入记录、导出组件、进程注入…)[出自:jiwo.org]服务端· 系统组件类(MS17-010脏牛、心脏滴血…)· 业务应用类(注入,跨站,越权,执行,上传,下载,弱口令…) APP测试=APP本地测试+WEB渗透测试客户端测试本地测试部分顾名思义,真正进行攻击或利用时也是要在本地才能实施。除了逆向分析和敏感信息泄露部分外,基本都是以用户手机已经运行了恶意程序为前提进行的,实际可利用性大多不高。客户端测试-环境准备JDK·因为Android的环境是JAVA环境,开发和很多工具基于JAVA环境。 ADT(推荐Android Studio-官方IDE) ·Eclipse的Android开发扩展包,包括adbe Monitor和安卓虚拟机。 IDA Pro ·跨平台调试工具,主要用于动态分析(Dump内存,脱壳等) SDK、NDK ·SDK用于编译Android不简版本使用的Java层可执行文件((Java. dex文件) ·NDK用于编译Android使用的Native层可执行文件(C/C++、So文件) 测试环境 ·真机Root+Xposed、Root+VirtualXposed. Arm(推荐)或x86虚拟机、模拟器
·BurpSuite/Fiddler/Charles针对HTTP/HTTPS流量分析利器. ·Wireshark(定位代码)针对非HTTP协议流量分析(如Socket) 逆向分析工具 ·AndroidKiller_v1.3.1/ApklDE反汇编工具(集成工具). ·Jadx/JEBJava层代码分析工具 ·Frida/Xposed/SubstrateCydia动态注入框架 ·MT管理器Android端反汇编工具(集成工具) ·IDA ProNative层代码分析工具(动态调试)
服务端测试APP包含二进制指令的可执行程序,实现页面展示和部分逻辑控制,随着HTML5的发展,有些APP实际上是个“浏览器”。从这个角度看,APP有点像是WEB前端。APK的构成1. https://blog.csdn.net/hyg1165269653/article/details/909428822. https://www.jianshu.com/p/77ac6f6f2311 3. https://www.jb51.net/article/224643.htm 客户端静态安全-反编译保护· 早期:解压Apk,使用dex2jar工具把classes.dex转jar,使用jd-gui或luyten打开jar文件。 · 现在:直接把Apk文件拖入AndroidKiller_v1.3.1/ApkIDE/Jadx/JEB 客户端静态安全-代码混淆· 测试方法:反汇编Apk (参考反编译保护测试项)查看类名是否可读· 修复方法:使用混淆工具进行混淆(DexGuard、ProGuard) 客户端静态安全-安装包签名· 测试方法:使用JDK中/jre/bin目录下的jarsigner和keytool客户端静态安全-完整性检验测试方法:· 反汇编Apk(参考反编译保护测试项) · 修改资源或代码文件 · 重打包签名安装(正常运行则说明有问题)
· 代码中对代码文件(classes.dex)做完整性校验 · 代码中对Apk包做完整性校验 · 代码中对签名文件(META-INF/MANIFEST.MF)中classes.dex哈希值的校验
ApkTool+SignApk: 1.解包后可修改并重新打包; 2.可查看AndroidManifest.xml; 3.可查看smali源码(适用于JAVA反编译失败的情况);
解包: 1. java -jar apktool.jar d -f apk文件路径-o解包目标文件夹打包: 1. java -jar apktool.jar b -f待打包的文件夹-o输出apk路径 APK必须进行签名后,方可安装和运行: 1. java -jar signapk.jar testkey.x509.pem testkey.pk8 待签名apk文件路径 签名后输出apk路径 客户端静态安全–组件导出安全· 安装drozer客户端apk文件· 在APP内开启31415监听 · 转发APP监听的31415端口流量到电脑的31415端口 · 启动电脑端的drozer.bat console connect · 执行命令 1. run app.package.attacksurface Packagename 2. run app.activity.info -a Packagename 3. run app.provider.info -a Packagename 4. run app.service.info -a Packagename 5. run app.broadcast.info -a Packagename ———————————————— 版权声明:本文为CSDN博主「网络¥安全联盟站」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_44309905/article/details/122781528 |