什么是SSL pinning
https协议验证服务器身份的方式通常有三种,一是根据浏览器或者说操作系统(Android)自带的证书链;二是使用自签名证书;三是自签名证书加上SSL Pinning特性。第一种需要到知名证书机构购买证书,需要一定预算。第二种多见于内网使用。第三种在是安全性最高的,但是需要浏览器插件或客户端使用了SSL Pinning特性。
Android应用程序在使用https协议时也使用类似的3种方式验证服务器身份,分别是系统证书库、自带证书库、自带证书库 + SSL Pinning特性。
所以SSL Pinning,即SSL证书绑定,是验证服务器身份的一种方式,是在https协议建立通信时增加的代码逻辑,它通过自己的方式验证服务器身份,然后决定通信是否继续下去。它唯一指定了服务器的身份,所以安全性较高。
JustTrustMe
当客户端使用了SSL pinning的时候,手机导入burpsuite证书的方式也无法抓到通信包。除了修改apk验证证书逻辑重新打包的方式外,最简单的方法是使用xposed相关模块。
xposed安装方法:
下载xposed安装包
安装xposed框架到手机:
adb install <xposed-installer-you-just-downloaded>.apk
安装并启用justtrustme模块
重启手机就可以抓到之前抓不到的https通信了。
http://www.nsfocus.com.cn/upload/contents/2015/07/2015_07241353337959.pdf
原文地址: http://xdxd.love/2015/12/30/%E5%88%A9%E7%94%A8xposed%E7%BB%95%E8%BF%87%E5%AE%89%E5%8D%93SSL%E8%AF%81%E4%B9%A6%E7%9A%84%E5%BC%BA%E6%A0%A1%E9%AA%8C/
SSLpinning证书锁定,是一种防止中间人攻击(MITM)的技术SSL Pinning通过比对内置的证书和服务器端证书的内容,以确定这个连接的合法性。Xposed是在Android高权限模式下运行的框架服务Xposed能在不修改APK文件的情况下影响程序运行JustTrustMe 是一个用来禁用、绕过SSL证书检查的基于Xposed模块JustTrustMe 将APK中用于校验SSL证书的API进行Hook,从而绕过证书检查。
0x00 前言
前面写了一篇利用Frida绕过Android App(途牛apk)的SSL Pinning,这里来记录一下利用Xposed+JustTrustMe来绕过SSL Pinning,这种方法相比前一种用起来更简单容易上手。
0x01 环境
夜神模拟器(Android 5.1)
Xposed
Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
JustTrustMe
JustTru
JustTrustMe:禁用SSL证书验证的强大工具
JustTrustMe 是一个专为 Android 设计的 Xposed 模块,其核心功能是禁用 SSL 证书验证。这一功能对于审计那些采用证书固定(certificate pinning)的应用程序非常有用。 certificate pinning 是一种安全措施,用于防止中间人攻击(MITM),它会确保应用程序只与指定的证书进行通...
1. 前言
1. 遇到的问题
之前在做app渗透测试的时候遇到一个问题,就是我使用burpsuite对app进行抓包时,app一直显示网络请求失败(如图1.1-1),不能进行正常的操作,burp也抓不到数据包,但是不挂代理进行正常访问又可以。一开始以为是https的证书问题,就把burp的证书重装了一遍,发现问题仍然存在,但是我抓取浏览器和其他的app程序就能正常抓到数据包,一时间慌的不行,以为凉...
而这里的牛牛不止设置了反代理还设置了证书校验,一闪而过的三个数据包就是在校验证书。而proxifier工具的转发机制获取的是网络接口出口数据,相当于是在网络接口设代理。这个时候就可以在夜神打开牛牛开始抓包了,打开牛牛可以看到proxifier有夜神流量通过。关闭代理之后牛牛就正常了,可恶的牛牛啊,这样我没办法抓包啊,怎么办啊。模拟器开启代理,burp开启监听。打开牛牛app,牛牛不在报错。牛牛app检测的是系统代理,也就是在模拟器或手机上设置的代理。再在浏览器下载两个模块,在夜神安装,用来屏蔽证书校验。
在对安卓手机APP抓包时,出现的HTTPS报文通过MITM代理后证书不被信任的问题。
当APP是HTTPS时,则单纯的使用Burpsuite无法抓取数据包,原因是APP启用了SSL Pinning(又叫做“SSL证书绑定”)。
通常要抓取HTTPS加密的数据包,一般使用Charles或者Fiddler4代理HTTP请求,配置证书信任后,便可拿到明文报文。
但是由于Charles证书和Fi
小飞鱼APK签名工具是小飞鱼旗下的一款APK签名软件。是移动开发者必备的一款软件。使用方法1、双击运行小飞鱼APK签名工具.exe文件,出现如下界面:2、点击“功能”,没有签名证书的选择证书制作,制作完证书再选择APK签名,有证书的直接选择APK签名即可。 3、点击“请选择Keystore路径下的‘请选择’”,选择签名文件(***.jks或***.keystore)存放的路径并输入密码...
https请求前,进行自签名证书加载1.运行报错: error:{"code":2300060,"message":"SSL peer certificate or SSH remote key was not OK"},显示无法校验服务器身份,2. 导致这个错误码的原因可能有以下几种:服务器证书过期或者未被信任:如果服务器证书过期或者未被信任,客户端将无法验证证书的有效性,从而导致CURLE_PEER_FAILED_VERIFICATION错误。
一、序在将 App 发布到市场之前,很重要的一个步骤就是为 APK 进行签名,大部分时候,这个操作隐藏在了打包的流程中,而不被我们注意到。签名的作用,除了证明 App 的所有权之外,还可...
问题:app程序未对签名证书进行校验,被其他证书重新签名可正常启动
apk打包签名思路:
Build -> Generate Signed Bundle/APK -> APK -> Create New 创建一个新的证书 (也可以选择一个已有的证书)->ok -> 选择生成的APK文件所在目录、选择apk版本
第1步就是我们打包的常规步骤
第2步用第三方梆梆软件加固
第3步将加固的apk进行第三方软件签名
将apk文件解压,在META-INF文件中可找到签名文件,文件后缀为.
1、下载完成后,解压,双击运行小飞鱼APK签名工具.exe文件,出现如下界面:
2、点击“功能”,没有签名证书的选择证书制作,制作完证书再选择APK签名,有证书的直接选择APK签名即可,下面介绍证书制作,有证书的跳过这一步。
填写别名,密码,以及个人组织,存储位置不选择默认存放在桌面
3、选择您要签名的APK,选择签名证书(有证书的选择自己证书,没有证书的选择刚才制作完成的那一...