1234下一页
返回列表 发新帖

【实战破解】解析MT数据包,尝试破解多设备登陆

  [复制链接]

4

主题

163

帖子

3387

积分

大学生

Rank: 5Rank: 5

金币
100
好评
16
贡献
0
发表于 2020-8-26 17:01:20 | 显示全部楼层 | 阅读模式
本帖最后由 meanwhile 于 2020-8-26 19:52 编辑

这个帖子发在这里这里应该不违规吧, 毕竟我只是分析个数据包, 也没有能力破解软件   

之前试过将两个设备的硬件信息改成一致的,但仍然无法实现多设备登陆,于是想更准确的分析一下MT管理器对不同设备的识别  

MT管理器在网络传输方面使用了双向验证, 普通的代理抓包方式完全无从下手, 关于https抓包, 主要找到了两个方向

一个来自https://www.jianshu.com/p/434541e9664f, 通过JustTrustMe 模块破解服务端验证,  再从apk中提取客户端证书导入到抓包软件中, 在assert文件夹中找到了证书文件, 但是逻辑太复杂, 没有找到证书密码, 此方法失败

令外一个方向是直接hook openssl的底层函数, 这里又有两个选择, 通过抓ssl的认证过程可以得到协商的加密方式为EC椭圆函数加密, 于是我们可以hook 函数EC_KEY_generate_key, 此思路来自https://blog.csdn.net/wzj_whut/article/details/86659577, 让其直接打印出ssl通信的加密密钥相关的数据, 但得到数据还需进一步计算才能得到密钥, 由于对椭圆加密不是很熟悉, 可能会弄错好几次, 又在网上找到了更有效的代替方案, 直接hook SSL_read和SSL_write函数, 直接保存解密后的信息, 来自https://sec.mrfan.xyz/2019/12/16 ... %E5%92%8CSSL_write/, 直接使用他给出的frida脚本就行, 可以得到http2数据


这种零碎的抓包wireshark不能很好识别出通信协议, 需要手动指定解码或分析, 在mt管理器中进行了一次退出一次登陆,得到数据如下


其中内容都为加密的数据, 但这次不是没有收获, 至少得到了http的版本信息和头信息, 我们主要研究MT管理器如何识别不同的登陆设备, 主要关注登陆的请求头中x-mt* 3个参数和包的内容, 到这里又没有办法了, 又只能回到java层了, 好在MT管理器没有什么反调试, 这里我直接用jeb分析, 方便调试和重命名,  软件主要逻辑采用MT-Protector混淆, 其他部分用的普通的变量混淆, okhttp版本为3.14.9, 可以把源码下下来, 通过字符串对比把开源的okhttp的信息重命名, 才能更好的理清逻辑, 由于解决不了MT-Protector, 只能单步单步调试了, 首先下断点在ResponseBody.body()函数, 然后根据函数调用栈向上追溯到了一个疑似发送登陆消息的函数(以下重命名的函数均为看着方便,可能并不具有实际意义)


通过简要分析可以得出header x-mt*均只与消息的加密有关, 我们需要再想前找mediaType中的内容, 再向上可以找到加密request消息的函数


但该函数加上MT-Protector过于复杂, 分析难度太大, 我们只需分析加密前的buffer中存入的值即可, 一步步向前跟踪最后得到登陆的消息体是如下格式:

version(固定值20070900,猜测是版本号)+Build.VERSION.SDK_INT(android 10 ->29)+str1+Language(如zhCH)+0x1001(基本为固定值,不清楚是什么)+uid(MT管理器uid)+username+str2+password
其中str1为与utdi有关的参数, str2只与password有关

理论上来说, 保证两个设备mt版本、android_sdk、和MT管理器utid和utdi返回值值一致就可以实现多设备登陆,目前还未尝试,utdi获取的细节不是很清楚,另外两部手机保证mt uid一致貌似有点难

如有错误,欢迎指出, 如有收获, 给个好评吧
炸了,被克制了,方法无效

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
已有3人评分好评 金币 理由
万里星河 + 1 + 1 大佬666
Bin + 1 + 10
j123xf + 1 + 1 很给力!

查看全部评分 总评分:好评 +3  金币 +12 

回复

使用道具 举报

131

主题

2049

帖子

6万

积分

管理员

Rank: 9Rank: 9Rank: 9

金币
211768
好评
631
贡献
48

MT论坛元老MT论坛优秀教师2018MT论坛优秀成员

QQ
发表于 2020-8-26 19:27:20 | 显示全部楼层
我从理论上杜绝了多设备登录了

MT和服务器通信都是通过SessionKey进行身份验证(每个帐号ID有且仅有一个SessionKey)

SessionKey是登录的时候得到的(服务器随机生成),掉线的原理就是你在设备A登录得到SessionKey1,然后再在设备B登录得到SessionKey2,此时之前的SessionKey1就失效了,于是设备A掉线。

那么通过技术手段让两个MT客户端拥有同一个SessionKey能实现多设备登录吗?

这个也不行,在客户端与服务器通信时,触发一定条件后服务器会更新SessionKey并下发给客户端,比如设备A和设备B都拥有SessionKey1,此时它们是同时在线的,但设备A在某次与服务器通信后,更新成SessionKey2,于是之前的SessionKey1失效,设备B没有更新成SessionKey2就掉线了。

除非可以让两个MT客户端的SessionKey永远同步,否则就不可能实现多设备登录。
回复

使用道具 举报

4

主题

163

帖子

3387

积分

大学生

Rank: 5Rank: 5

金币
100
好评
16
贡献
0
发表于 2020-8-26 17:01:36 | 显示全部楼层
本帖最后由 meanwhile 于 2020-8-26 18:07 编辑

自抢沙发

点评

干货!在MT论坛算比较高水平的帖子了,向你学习!  发表于 2020-8-26 21:30
已有1人评分好评 理由
小百ざ + 1 第一我和你说的那个震惊水帖作者不是一个人.

查看全部评分 总评分:好评 +1 

回复

使用道具 举报

1

主题

360

帖子

1780

积分

高中生

Rank: 4

金币
637
好评
3
贡献
0
发表于 2020-8-26 17:02:41 来自手机  | 显示全部楼层
感谢分享,看看
回复

使用道具 举报

57

主题

2906

帖子

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
3731
好评
28
贡献
0
发表于 2020-8-26 17:03:06 来自手机  | 显示全部楼层
路过看看
本人分享的教程如果无意侵犯到作者的权益,请告诉我,我会在第一时间删除内容,另外教程仅供学习交流,某些人用作其他用途的后果自负。谢谢!
回复

使用道具 举报

0

主题

150

帖子

742

积分

初中生

Rank: 3Rank: 3

金币
187
好评
0
贡献
0

MT论坛帅哥考神

发表于 2020-8-26 17:03:09 来自手机  | 显示全部楼层
回复看看        
回复

使用道具 举报

8

主题

1343

帖子

6808

积分

硕士生

Rank: 6Rank: 6

金币
1646
好评
0
贡献
0
发表于 2020-8-26 17:03:17 | 显示全部楼层
看看是什么
回复

使用道具 举报

0

主题

51

帖子

145

积分

小学生

Rank: 2

金币
66
好评
0
贡献
0
发表于 2020-8-26 17:03:39 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

33

主题

1856

帖子

8692

积分

硕士生

Rank: 6Rank: 6

金币
2419
好评
0
贡献
0
发表于 2020-8-26 17:05:11 来自手机  | 显示全部楼层
谢谢分享!
回复

使用道具 举报

0

主题

441

帖子

2916

积分

大学生

Rank: 5Rank: 5

金币
724
好评
0
贡献
0
发表于 2020-8-26 17:05:44 来自手机  | 显示全部楼层
路过看看
回复

使用道具 举报

0

主题

211

帖子

965

积分

高中生

Rank: 4

金币
192
好评
0
贡献
0
发表于 2020-8-26 17:05:49 | 显示全部楼层
感谢分享
回复

使用道具 举报

74

主题

2913

帖子

1万

积分

版主

论坛萌新

Rank: 7Rank: 7Rank: 7

金币
3329
好评
170
贡献
1

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人MT论坛侠客

QQ
发表于 2020-8-26 17:08:26 来自手机  | 显示全部楼层
有点东西,你号没了(bushi)
回复

使用道具 举报

45

主题

1002

帖子

3376

积分

大学生

Rank: 5Rank: 5

金币
663
好评
0
贡献
0
发表于 2020-8-26 17:18:29 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

298

帖子

553

积分

初中生

Rank: 3Rank: 3

金币
182
好评
0
贡献
0
发表于 2020-8-26 17:37:57 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

17

主题

666

帖子

1790

积分

高中生

Rank: 4

金币
575
好评
2
贡献
0

MT论坛最佳新人

发表于 2020-8-26 17:38:04 来自手机  | 显示全部楼层
路过看看,思路不错
回复

使用道具 举报

21

主题

3134

帖子

8138

积分

硕士生

滑稽

Rank: 6Rank: 6

金币
1247
好评
7
贡献
0
发表于 2020-8-26 17:49:18 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表