Certificate Pinning,或者有叫作SSL Pinning/TLS Pinning的,都是指的同一个东西,中文翻译成证书锁定,最大的作用就是用来抵御针对CA的攻击。在实际当中,它一般被用来阻止man-in-the-middle(中间人攻击)。 说起中间人攻击,可能不是那么直观,但是这一类工具我们可能经常会用到,如Charles和Fiddler。如果一个应用使用了...
0x03 利用Frida绕过SSL Pinning 绕过原理:客户端请求时会将内置的证书与服务端的证书做一次性校验,通过hook的方式将此次校验的结果返回true或者干脆不让其做校验即可以绕过。当安卓APP初始化SSLContext时,我们使用frida劫持SSLContext.init方法,使用我们自己创建的TrustManager , 把它作为实参传入SSLContext.init方法的第二...
*/setTimeout(function(){Java.perform(function (){console.log("");console.log("[.] Cert Pinning Bypass/Re-Pinning");var CertificateFactory = Java.use("java.security.cert.CertificateFactory");var FileInputStream = Java.use("java.io.FileInputStream");var BufferedInputStream = Java.use("java....
*/setTimeout(function(){Java.perform(function (){console.log("");console.log("[.] Cert Pinning Bypass/Re-Pinning");var CertificateFactory = Java.use("java.security.cert.CertificateFactory");var FileInputStream = Java.use("java.io.FileInputStream");var BufferedInputStream = Java.use("java....
简而言之,Frida就是一个让你可以注入脚本到本地APP(此案例我们将注入到安卓APP中)中的工具,从而修改APP的行为(在这里例子中,我们可以绕过ssl pinning并执行中间人攻击,即使APP使用的是HTTPS/SSL连接),并且实时的进行动态测试。 如今,大多数应用程序已在其移动应用中实现了SSL pinning。这是为什么呢?让我们思考一个...
看到证书就OK,重启手机,可以看到抓到https,如果有sslpinning 的话,需要使用以下方法去简单关闭sslpinning; objection Objection是一款移动设备运行时漏-洞利用工具,该工具由Frida驱动,可以帮助研究人员访问移动端应用程序,并在无需越狱或root操作的情况下对移动端应用程序的安全进行评估检查。
当然基于 Xposed 的类似插件也有很多,如 SSLKiller、sslunpining 等等,可以自行搜索。 不过Xposed 的安装必须要 ROOT,如果不想 ROOT 的话,可以使用后文介绍的 VirtualXposed。 具体可以参考https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/。
3.3SSL Pinning Bypass 上文中我们还有一种情况没有分析,就是客户端并不会默认信任系统根证书目录中的证书,而是在代码里再加一层校验,这就是证书绑定机制——SSL pinning,如果这段代码的校验过不了,那么客户端还是会报证书错误。 Https客户端代码校验服务器证书 ...
图2-19 Charles导入客户端证书的界面3.3 SSL Pinning Bypass 上文中我们还有一种情况没有分析,就是客户端并不会默认信任系统根证书目录中的证书,而是在代码里再加一层校验,这就是证书绑定机制——SSL pinning,如果这段代码的校验过不了,那么客户端还是会报证书错误。Https客户端代码校验服务器证书 ...
SSL Pinning是⼀种防⽌中间⼈攻击(MITM)的技术,主要机制是在客户端发起请求–>收到服务器发来的证书进⾏校验,如果收到的证书不被客户端信任,就直接断开连接不继续求情。所以在遇到对关键请求开启SSL Pinning的APP时,我们抓包就只能看到APP上提⽰⽆法连接⽹络或者请求失败之类的提⽰;⽽在抓包...