第十二课、基于HOOK的抓包
一般HTTPS:大部分只采用客户端校验服务器
双向绑定:很少会有服务器校验客户端
SSL Cert Pinning :更少
- 抓包软件会有证书等问题
- hook的方法无视证书 基于HOOK直接得到参数 打调用栈得到参数的构成和来源
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
-
https://github.com/hluwa/ZenTracer
-
# pyenv install 3.8.0 # git clone https://github.com/hluwa/ZenTracer # cd ZenTracer # pyenv local 3.8.0 # python -m pip install --upgrade pip # pip install PyQt5 # pip install frida-tools # python ZenTracer.py
-
点击
Action
之后,会出现匹配模板(Match RegEx)和过滤模板(Black RegEx)。匹配就是包含的关键词,过滤就是不包含的关键词 -
Objection 先hook这个类
java.net.HttpURLConnection
-
6.4.4 6.10.1
3、HOOK收发包函数回溯参数来源
-
先抓包分析
-
解包搜关键字参数(不推荐)
-
HOOK的方法函数溯源
-
保存内存中所有的类
-
根目录 cd .objection mv objection.log objection0220.log
-
android hooking list classes
-
cat objection0220.log |grep okhttp
-
-
确定用了什么框架 Okhttp3
- 类-----方法
-
4、 Objection/Wallbreaker
5、Okhttp框架自吐:frida_OkCat
- https://github.com/siyujie/OkHttpLogger-Frida.git
- ① 首先将
okhttpfind.dex
拷贝到/data/local/tmp/
目录下。 okhttpfind.dex源码链接 - 执行命令启动
frida -U -l okhttp_poker.js -f com.example.demo --no-pause
可追加-o [output filepath]
保存到文件 - [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k5ivFXAr-1678548262132)(C:\Users\李世林\AppData\Roaming\Typora\typora-user-images\image-20230220211714097.png)]
6、无视证书绑定的blinssl框架自吐.
-
https://github.com/BigFaceCat2017/frida_ssl_logger
-
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