首页
社区
课程
招聘
[原创]利用Hook技术实现对Instagram的抓包
发表于: 2021-4-25 20:26 20977

[原创]利用Hook技术实现对Instagram的抓包

2021-4-25 20:26
20977

听别人说Instagram没法抓包,于是这篇文章诞生了。

Instagram的防护做的很好,自己实现了一层SSL,直接过掉了r0capture等一些常见的工具,既然大佬的轮子用不了,那就只能自己动手了。

分析样本:Instagram 184.0.0.30.117

使用反编译工具导入,发现对变量名进行了混淆,先捋一下思路:

抓不到包,看不到关键字,那就只能根据经验猜测字段了,APP有登录功能,尝试搜索常见的API名称 loginlogin/login""login""login 。定位到URI的处理点在附近查看有没有关于协议头,URL和HTTP的处理。找到底层Send函数,Hook,拿到HTTP报文。

一番查找之后,初步断定URI的处理在X.6s1

这里的参数生成的过程及算法暂时不去管,先抓到包才是首要的~

通过参数r3,追到了X.0uU,翻看之后看到了一堆像是协议头的操作

又发现了https链接的格式化,Hook试了试,URL就出来了。

之后线索就断了,堆栈回溯看了都没什么发现,突破点是在查看交叉引用向上找,在X.222.A7c,发现了一个用于打印错误的函数。

本着死马当活马医的想法,搜了一下builder.,发现了可疑点

跟进去看,尝试Hook了一下,调用到了这个类

再Hook看了看调用的A02方法,看看有没有找歪~

既然没找错,看A02方法,发现JADX反编译不出来,换用GDA。

明显的协议头,明显的http,引用了apache开源的HTTP框架

executeWithDefragmentation调用了sendHeadersWithBodyAndEom

继续往下看

已经到底了...再往下就是Native,再追下去没什么意义,所以下面就是最终的Hook了~

综上分析,只需要Hook com.facebook.proxygen.JniHandler.sendHeadersWithBodyAndEom 就能得到包数据了。

google了一下org.apache.http的源码:org.apache.http - Google

你以为就这样完了?

没错,就这样完了。(逃~)

看了看enc_password的加密,看起来是RSA+AES-GCM,满心欢喜。

仔细一看native层调用,动态加载so… dump出来一看是vmp,mmp…

 
 
 
 
 
 
 
 
 
 
 
 
 

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-4-25 20:44 被sunfishi编辑 ,原因: 格式问题
收藏
免费 8
支持
分享
最新回复 (17)
雪    币: 198
活跃值: (616)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持!
2021-4-26 16:40
0
雪    币: 183
活跃值: (228)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持~
2021-4-26 17:18
0
雪    币: 365
活跃值: (864)
能力值: ( LV9,RANK:186 )
在线值:
发帖
回帖
粉丝
4
Response呢?
2021-4-26 19:07
0
雪    币: 8764
活跃值: (5718)
能力值: ( LV13,RANK:296 )
在线值:
发帖
回帖
粉丝
5
KwaiChing Response呢?
java层没找到好办法去hook
2021-4-26 20:38
0
雪    币: 365
活跃值: (864)
能力值: ( LV9,RANK:186 )
在线值:
发帖
回帖
粉丝
6
so在哪返回,onResponse 只有Header
2021-4-27 10:30
0
雪    币: 248
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
感谢分享!!
"看A02方法,发现JADX反编译不出来,换用GDA"    
GDA比JADX反编译能力强? (没用过GDA)
2021-4-27 16:16
0
雪    币: 8764
活跃值: (5718)
能力值: ( LV13,RANK:296 )
在线值:
发帖
回帖
粉丝
8
@=llfly 感谢分享!! "看A02方法,发现JADX反编译不出来,换用GDA" GDA比JADX反编译能力强? (没用过GDA)
各有千秋把,目前看来GDA的反编译能力还是不错的
2021-4-27 17:10
0
雪    币: 8764
活跃值: (5718)
能力值: ( LV13,RANK:296 )
在线值:
发帖
回帖
粉丝
9
KwaiChing so在哪返回,onResponse 只有Header
没有继续研究下去,so使用了vmp,能力不够
2021-4-27 17:11
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
sunfishi 没有继续研究下去,so使用了vmp,能力不够
Response呢?
2021-5-8 09:12
0
雪    币: 28
活跃值: (499)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
Instagram 可以通过JADX搜索 "ig_android_whitehat_options_universe" 定位强制开启`白帽模式`抓包。
2021-5-8 09:32
3
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
Instagram是啥
2021-5-8 13:14
0
雪    币: 3549
活跃值: (941)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
14
樟树. 用xposed来hook某方法,能不能知道是哪里调用了该方法
可以,你new一个异常,然后通过异常获取调用栈就行了
2021-5-10 10:32
0
雪    币: 8764
活跃值: (5718)
能力值: ( LV13,RANK:296 )
在线值:
发帖
回帖
粉丝
15

谢谢大佬们指点

最后于 2021-5-10 13:09 被sunfishi编辑 ,原因:
2021-5-10 12:05
0
雪    币: 562
活跃值: (4090)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
patch掉Facebook的proxygen::SSLVerification::verifyWithMetrics函数即可,
java层各种verify无用。
之装逼不透露具体细节
qq ⑦三司儿48五3Ⅶ
2021-6-25 00:13
1
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
呼吸24K纯氧 Instagram 可以通过JADX搜索 "ig_android_whitehat_options_universe" 定位强制开启`白帽模式`抓包。
大佬能详细说一下嘛
2021-12-22 16:01
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
请问还有这个版本的ins apk么,现在新版本没有走这个函数 
2023-6-27 10:50
0
游客
登录 | 注册 方可回帖
返回
//