App与小程序工具总结

文章目录

  • 前言
  • Burpsuite抓包问题
  • LPosed+JustTrustMe 绕过 SSL Pining
  • 小程序的反编译
  • APP脱壳,反射大师、frida
    • 反射大师
    • Frida
  • 总结


前言

在进行渗透工作的时候,遇到过的App、小程序也不少了,有简单的,也有加固的比较不错的,但是自己也挖到了不少的高危,不乏有越权的,短信验证码可绕过、可爆破的,存储泄露、敏感信息泄露等等各种,但是在这些渗透过程中,都需要用到强有力的工具。因此,以下总结一下渗透App、小程序等移动端的东西的时候常用到的工具,以免下次换电脑、换环境等又要从各种资料中寻找进行配置。

Burpsuite抓包问题

由于如今的应用已经逐渐对安卓应用的版本都在提高,有部分应用已经只兼容来安卓9了,不兼容安卓7,因此刚开始的时候可能会发现模拟器能抓到浏览器的包,但是抓不到App包的情况。这是因为安卓7以上默认已经不信任用户安装的证书了,因此需要使用adb将证书导入系统进行安装,以夜神模拟器安卓9为例。

  1. 首先从burpsuite中生成证书,保存。

file

  1. 导出的证书是DER格式的,需要转成PEM格式的证书,可以使用kali自带的openssl直接进行转换,并计算证书的MD5的值,并将证书命名为MD5的值。
openssl x509 -inform DER -in cacert.der -out cacert.pem
openssl x509 -inform PEM -subject_hash_old -in cacert.pem

file

  1. 找到夜神模拟器的bin目录,使用adb.exe输入以下命令上传证书
adb.exe devices  查看运行中的设备
adb.exe push 9a5ba575.0 /sdcard/   将证书推入到sdcard中
adb.exe shell  进入shell交互模式
mount -o remount,rw /system  重新挂载写入system
cp /sdcard/9a5ba575.0 /system/etc/security/cacerts/  将证书复制到系统安全目录
chmod 644 /system/etc/security/cacerts/9a5ba575.0  赋予证书读写权限
reboot	重启

file

  1. burpsuite开启监听,并设置代理服务器,这里本机的ip地址为192.168.1.101。

file

file

  1. 抓包成功

在这里插入图片描述

LPosed+JustTrustMe 绕过 SSL Pining

以上方式是最简单进行抓包的方式,假如对方服务器启用了SSL Pinning机制,那么可能依旧会无法捕捉到包,因为当我们使用抓包工具抓包时,抓包工具在拦截了服务端返回的内容并重新发给客户端的时候使用证书不是服务器端原来的证书,而是抓包工具自己的,抓包工具原来的证书并不是APP开发者设定的服务端原本的证书,于是就构成了中间人攻击,触发SSL Pinning机制导致链接中断,所以我们无法直接抓到包,这里使用低于安卓7版本的手机可能会没问题,但是App不一定兼容,因此要其它解决办法,可以使用Lposed即以Xposed为基础的框架进行绕过,以下是详细步骤。

  1. 安装Magisk,这里我安装的是Magisk-delta 25.2版本,下载地址如下:

Magisk

下载好后,直接将Magisk拖入夜神模拟器中,点击本地安装,在线安装需要翻墙才可以。

file

file

file

点击安装,安装完成后,会ti’s提示需要重启,这里先不进行重启,先将夜神模拟器设置的root权限关闭,关闭重启,即可将Magisk安装完成。

file

安装完成后,打开Magisk,点击右上角的设置,允许Zygisk运行即可。

file

  1. 安装Lposed框架,我下载的是zygisk版本的,下载地址如下:

Lposed

直接将下载好的zip压缩包拖入到夜神模拟器中,然后打开Magisk,选择模块,本地安装,然后选中Lposed的安装包,加载完成后,重启。

file

  1. 重启之后,进入/data/adb/lspd 目录,出现manager.apk包,点中,选择安装。

file

  1. 如果出现了解析包出现错误,哪就直接从Lposed框架中解压出manager.apk,直接拖入模拟器中即可成功。

file

  1. 能够打开,即安装成功。
    file

  2. 下载JustTrustMe模块,拖入到夜神模拟器中,在Lposed的模块中启用即可成功绕过SSL Pining进行抓包。

在这里插入图片描述

小程序的反编译

在对小程序进行渗透时,一般除了测试小程序的功能点之外,最好的方式就是将小程序反编译,查看一下源码,特别是当小程序每一个数据包都会将小程序提交给后端的数据进行签名一并提交的时候,就不得不反编译小程序查找签名的算法来进行伪造数据,相当于前端的js进行了加密一样。

  1. 首先,当你运行了小程序,并且使用了各小程序的功能的时候,小程序的打包文件其实就存储在了你的手机存储当中,文件后缀为wxapkg,只不过存在主包和分包的区别,比如我的夜神模拟器的存储目录就是/data/data/com.tencent.mm/MicroMsg/e594472a09487567540796a08a51a24f/appbrand/pkg中,中间很长那段e594472a09487567540796a08a51a24f可能为有所变化。

file

  1. 将这些生成的打包全部删除,重新访问一个小程序,把它的所有页面都走一遍,就会发现有新出现的几个wxapkg包,这几个包就是小程序的包,进行解包即可,解包使用wxappUnpacker进行解包,需要node.js环境。
npm install
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify
  1. 首先使用UnpackMiniApp(小程序包解密).exe查看一下小程序是否被加密。

file

  1. 然后使用wuWxapkg.js对小程序的主包进行解包,如果解包出现错误,可能这个包不是主包导致的,当然经常会报错,但是也会有小程序的代码出来,可以自己判断是否找到自己想要的。

file

  1. 虽然这里我也报错,但是反编译出来的小程序还算是完整的。

file

APP脱壳,反射大师、frida

App也一样,App如果逆向出来java代码就不说了,这个可以上网搜,也可以看我之前的文章,重点是现在市面上的APP都会进行混淆和加壳操作,一般都是加上诸如腾讯安全、阿里安全等壳,会把很多代码信息都给隐藏掉,影响人的正常查看,因此需要把这个壳给脱掉,观看到没加壳之前的App正常的Java代码。

这里关于App的扫描和反编译,也有一个不错的平台可以直接使用,自己也经常用来进行反编译,至于它的漏洞扫描,其实没有太大的作用,但是它会把Activity、SERVICES、provides以及代码等各种都列出来,并且会对一下permission的配置、XML的配置等进行检查,列出危险程度,也比较不错。

地址如下:

APP扫描

file

反射大师

  1. 首先可以使用检测壳的工具检测是否加壳了,诸如AppMessage等等工具。

file

  1. 下面提供两种方式进行直接脱壳,首先是反射大师,反射大师在安卓9已经不支持了,安卓7安装XPosed框架以及反射大师后依旧可以使用,这里以夜神模拟器安卓7版本进行演示。

首先直接在游戏中心中搜索Xposed即可进行安装下载,安装后进行重启即可成功,点击启动即可,Xposed的作者已经不进去维护了,因为不会再进行更新。

file

file

然后去网上找反射大师的apk文件,到处都有,至于官网在哪,自己也不知道,注意不要有后门即可,拖入APK中,打开反射大师,即会提示未激活模块,进入Xposed进行激活即可。

file

随后打开反射大师,选中应用,选择打开,会有五角星,把每个页面都跑一遍,会有很多代码的acivity都出来,选择进行保存即可。

file

点击五角星,最上方可以选择对应的activity启动器,点击当前Activity,写出Dex,再使用正常的反编译工具反编译成jar包后使用jd-gui打开即可。

file

Frida

反射大师不支持安卓9了,意味着假如应用不兼容安卓7就无法使用了,但是frida是个不错的解决方案。

  1. 首先需要下载frida-server以及frida-dexdump工具。

frida-dexdump可以直接使用python进行下载,或者去github上下载:

pip3 install frida-dexdump
pip install frida-tools
pip install frida

随后查看安装的frida版本,我这里是16.1.4,然后再查看对应安卓模拟器的处理器版本,进而去github下载对应的安卓服务器

file

file

frida-server

file

再利用adbshell将下载的frida拖入到夜神模拟器中,没报错即可运行成功。

adb.exe push frida-portal-16.1.4-android-x86_64.xz  /data/local/tmp
adb.exe shell
cd /data/local/tmp
chmod 755 frida-portal-16.1.4-android-x86_64.xz
./frida-portal-16.1.4-android-x86_64.xz

file

随后在Windows中运行frida-hexdump命令即可查看到安卓模拟器正在运行的程序。

file

可以通过以下命令直接反编译出转储正在运行的应用程序或通过命令指定某个包。

frida-dexdump -FU
frida-dexdump -U -f com.app.pkgname

file

总结

当然了,关于移动端的东西肯定不止这么点,以后遇到了再学习到了,再补上吧,毕竟版本更替引起的话题是一个永恒不变的话题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术深入解析与教程:网络安全技术探秘

第一章:引言 在当今数字化时代,网络安全已经成为了重要议题。随着各种信息和业务在网络上的传输与存储,安全问题也日益突出。本文将带您深入探讨网络安全领域中的关键技术,涵盖渗透测试、漏洞挖掘以及恶意软件分析等方面&#xf…

PCD点云文件外部框框坐标计算

PCD点云文件直接提取的是点云的坐标,不是最外面的box的坐标,因此可以通过: max_b octree.get_max_bound() min_b octree.get_min_bound()分别得到最大最小的xyz坐标,之后进行计算 点的序号和位置对应如下: 所有的…

【数据结构与算法 模版】高频题刷题模版

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【】,使用【】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为:目标公…

软考A计划-网络工程师-复习背熟-路由器与交换配置和网络安全

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

ARM DIY(五)摄像头调试

前言 今天,就着摄像头的调试,从嵌入式工程师的角度,介绍如何从无到有,一步一步地调出一款设备。 摄像头型号:OV2640 开发步骤 分为 2 个阶段 5 个步骤 阶段一: 设备树、驱动、硬件 阶段二: 应…

【跟小嘉学 Rust 编程】二十、进阶扩展

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…

拿来即用修改密码功能

<template><div><!-- 重置密码 --><el-dialogtitle"修改密码"v-model"state.resetPwdDialogVisible":showClose"state.firstLogin ! 1"width"550px"close"onCancel":close-on-click-modal"false&…

uniapp结合Canvas+renderjs根据经纬度绘制轨迹(二)

uniapp结合Canvasrenderjs根据经纬度绘制轨迹 文章目录 uniapp结合Canvasrenderjs根据经纬度绘制轨迹效果图templaterenderjsjs数据结构 ​ 根据官方建议要想在 app-vue 流畅使用 Canvas 动画&#xff0c;需要使用 renderjs 技术&#xff0c;把操作canvas的js逻辑放到视图层运…

Python爬虫框架之Selenium库入门:用Python实现网页自动化测试详解

概要 是否还在为网页测试而烦恼&#xff1f;是否还在为重复的点击、等待而劳累&#xff1f;试试强大的Selenium&#xff01;让你的网页自动化测试变得轻松有趣&#xff01; 一、Selenium库到底是什么&#xff1f; Selenium 是一个强大的自动化测试工具&#xff0c;它可以让你直…

华为 连接OSPF和RIP网络---OSPF和RIP网络相互引入

路由引入简介 不同路由协议之间不能直接共享各自的路由信息&#xff0c;需要依靠配置路由的引入来实现。 获得路由信息一般有3种途径&#xff1a;直连网段、静态配置和路由协议。可以将通过这3种途径获得的路由信息引入到路由协议中&#xff0c;例如&#xff0c;把直连网段引入…

Matlab图像处理-图像缩放

基本概念 图像缩放是指将给定的图像在x轴方向按比例缩放a倍&#xff0c;在y轴方向按比例缩放b倍&#xff0c;从而获得一幅新的图像。 如果ab&#xff0c;即在x轴方向和y轴方向缩放的比率相同&#xff0c;则称这样的比例缩放为图像的全比例缩放。 如果a≠b&#xff0c;图像比…

Nacos安装

一、下载Nacos1.4.1二、单机版本安装 2.1 将下载的nacos安装包传输到服务器2.2 解压文件2.3 进入bin目录下 单机版本启动2.4 关闭nacos2.5 访问Nacos地址 IP&#xff1a;8848/nacos三、集群版本的安装 3.1 复制nacos安装包&#xff0c;修改为nacos8849&#xff0c;nacos8850&am…

C# | DBSCAN聚类算法实现 —— 对直角坐标系中临近点的点进行聚类

C# | DBSCAN聚类算法实现 聚类算法是一种常见的数据分析技术&#xff0c;用于将相似的数据对象归类到同一组或簇中。其中&#xff0c;DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种基于密度的聚类算法&#xff0c;能够有效…

Spark有两种常见的提交方式:client 模式和 cluster 模式对机器 CPU 的影响

Spark有两种常见的提交方式&#xff1a;client 模式和 cluster 模式。这两种方式对机器 CPU 的影响略有不同 &#xff0c;请参考以下说明 Client 模式&#xff1a; 在 Client 模式下&#xff0c;Spark Driver 运行在提交任务的客户端节点上&#xff08;即运行 spark-submit 命…

云服务器利用Docker搭建sqli-labs靶场环境

一、安装宝塔面板 使用xshell、electerm、SecureCRT等远程终端连接登陆上云服务器&#xff0c;在Linux宝塔面板使用脚本安装 安装后&#xff0c;如下图&#xff1a;按照提示&#xff0c;在云服务器防火墙/安全组放行Linux宝塔面板的端口 在浏览器打开上述网址&#xff0c;登…

【SpringSecurity】七、SpringSecurity集成thymeleaf

文章目录 1、thymeleaf2、依赖部分3、定义Controller4、创建静态页面5、WebSecurityConfigurerAdapter6、权限相关7、当用户没有某权限时&#xff0c;页面不展示该按钮 1、thymeleaf 查了下读音&#xff0c;leaf/li:f/&#xff0c;叶子&#xff0c;前面的单词发音和时间time一…

【算法训练-数组 三】数组中的第K个最大元素(TOPK问题|寻找第K大)

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【寻找第K大】&#xff0c;使用【数组】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

九、适配器模式

一、什么是适配器模式 适配器模式&#xff08;Adapter&#xff09;的定义如下&#xff1a;将一个类的接口转换成客户希望的另外一个接口&#xff0c;使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式&#xff08;Adapter&#xff09;包含以下主要角色&…

WebGPT VS WebGPU

推荐&#xff1a;使用 NSDT编辑器 快速搭建3D应用场景 随着WebGPU的引入&#xff0c;Web开发发生了有趣的转变&#xff0c;WebGPU是一种新的API&#xff0c;允许Web应用程序直接访问设备的图形处理单元&#xff08;GPU&#xff09;。这种发展意义重大&#xff0c;因为 GPU 擅长…

【MySQL】用户管理

之前我们一直都使用root身份来对mysql进行操作&#xff0c;但这样存在安全隐患。这时&#xff0c;就需要使用MySQL的用户管理 目录 一、用户 1.1 用户信息 1.2 添加用户 1.3 删除用户 1.4 修改用户密码 二、用户权限 2.1 赋予授权 2.2 回收权限 一、用户 1.1 用户信息…