一、优点
优点:
适用大部分情况,尤其是一键自动提取证书和密码,傻瓜化操作。
缺点:
一键自动提取证书和密码还好,但不是万能的,手工逆向证书密码技术难度较大,需要有代码功底,并且如果有加壳加固等操作更加麻烦。
二、步骤
1.一键自动提取证书和密码
因为 APP 在向服务端发请求时, APP 肯定会操作证书,所以如果能找到 APP 操作证书的代码地方, Hook 这部分代码,对参数做些输出打印,证书和证书密码就都有了。
大部分情况下,都是Hook java.security.KeyStore 这个类的 load 方法,load 方法的形参就是我们需要的证书和密码。
抠出的证书和密码,配置进 fiddler 或 burpsuite里面,就可以抓到双向认证的包。
PS: 还要注意证书的格式,抠出的证书可能是 jks 或 bks 格式的,fiddler 可能需要 p12 格式的, 所以要找工具先转换一下格式。
python3 cert_pwd.py
需要python脚本辅助下,把上面的证书16进制先转换为jks格式
python3 cert2file.py
import sys
f = open('keystore.jks', 'wb