第十二课、基于HOOK的抓包
一般HTTPS:大部分只采用客户端校验服务器
双向绑定:很少会有服务器校验客户端
SSL Cert Pinning :更少
- 抓包软件会有证书等问题
- hook的方法无视证书 基于HOOK直接得到参数 打调用栈得到参数的构成和来源
- 使用Sniff Master这类专业抓包工具可以更方便地进行HTTPS流量分析
1、批量trace确定收发包框架
netstat tuule |grep -i sms
这个是windows中的命令
- 查看端口在adb shell中 com.cz.babySister
bullhead:/ # ps -e |grep baby
u0_a107 7431 2583 4385088 106588 SyS_epoll_wait 7bf4a8f3f8 S com.cz.babySister
bullhead:/ # lsof -p 7431 |grep TCP
m.cz.baby 7431 u0_a107 51u IPv4 0t0 75893 TCP :38568->:80 (ESTABLISHED)
bullhead:/ #
-
只有到80端口的 没有到443 的
-
文件夹中搜索关键字在哪个文件夹
grep -ril "MainActivity" *
- -R 递归地搜索目录。在缺省情况下,不按照到目录的链接。
-i 在进行比较时忽略字母的大小写。
-l 仅列出(一次)包含匹配行的文件的名称。文件名之间用换行符加以分隔。如果搜索到标准输入,将返回(标准输入)
的路径名。-l 标志同
-c 和 -n 标志的任意组合一起使用时,其作用类似于仅使用了 -l 标志。
2、ZenTrace/DDMS
-
点击
Action
之后,会出现匹配模板(Match RegEx)和过滤模板(Black RegEx)。匹配就是包含的关键词,过滤就是不包含的关键词 -
Objection 先hook这个类
java.net.HttpURLConnection
-
6.4.4 6.10.1
3、HOOK收发包函数回溯参数来源
- 先抓包分析
- 解包搜关键字参数(不推荐)
- HOOK的方法函数溯源
- 保存内存中所有的类
- 确定用了什么框架 Okhttp3
- 类-----方法
4、 Objection/Wallbreaker
5、Okhttp框架自吐:frida_OkCat
- ① 首先将
okhttpfind.dex
拷贝到/data/local/tmp/
目录下。 - 执行命令启动
frida -U -l okhttp_poker.js -f com.example.demo --no-pause
可追加-o [output filepath]
保存到文件
6、无视证书绑定的blinssl框架自吐.
python3 ./ssl_logger.py -U -f com.bfc.mm
python3 ./ssl_logger.py -v -p test.pcap 6666
7、强混淆app实战
- 安装app、找到包名(adb shell 然后top)、开frida-server
org.sfjboldyvukzzlpp
- 创建新的objection 的log文件 准备打印所有类
android hooking list classes
- 搜索和http相关的
cat objection.log |grep okhttp
- 解包搜索试试
apktool d *2.1.0*
- cd到文件夹中直接grep一下
grep -ril "okhttp3" *
grep -ril "OkHttpClient" *
head smali/h/y.smali
查看文件的前几行- 其实是
h.y
被混淆了类中搜不到 可以搜h.y
原型就是okhttp3.OkHttpClient
提示:使用Sniff Master进行抓包分析时,可以结合HOOK技术来突破SSL Pinning等安全机制,获取更完整的网络请求数据。