诈骗应用协议流分析2-RC4加密

admin 2026-06-17 04:33:48 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档分析了诈骗团伙自主开发仿微信应用ywk.puxhtdkrxlfugohj.cnf的通信协议,通过逆向工程揭示其使用VLQ编码头部、RSA加密传输RC4密钥的混合加密机制。关键发现包括首包固定头部89040101对应521字节长度,后续数据采用RC4加密且密钥通过RSA保护。可操作建议包括关注多进程通信和SocketChannelImpl等隐蔽通信方式。 综合评分: 82 文章分类: 逆向分析,恶意软件,移动安全,应用安全,WEB安全


cover_image

诈骗应用协议流分析2-RC4加密

meiko meiko

看雪学苑

2026年6月16日 17:59 上海

在小说阅读器读本章

去阅读

因在大众社交应用如微信/QQ等上实行诈骗,容易被封号。故诈骗团伙往往会自主开发一些应用,诱骗受害者在上面使用,从而更高效的实行犯罪。

以下捕捉到的一款应用(ywk.puxhtdkrxlfugohj.cnf),该应用仿照微信的界面。

同时使用的时候,会出现一条TCP流,以下是首包内容,通过多次抓包查看到其头部貌似固定89 04 01 01 :

开始针对这条包进行逆向分析.

首先为快速定位源码,尝试先hook Sokcetoutputstream,但多次hook无结果后,猜测可能存在多进程调用,ps -e | grep 查看一下。

果然存在一个子进程,使用上述hook代码重新对该子进程进行hook,依然没有结果,则考虑可能使用SocketChannelImpl,尝试hook,并打印堆栈。

本次hook成功了,找到了89040101这条包,并打印了堆栈信息:

 

我们从MessageToByteEncoder这条堆栈开始分析,一步一步去分析这条流是如何组成的。

我们首先找到发出这条流的代码,可以看到是将obj传入,然后进行加密,最后形成上述的二进制流。

然后在此处进行hook,打印obj明文和最终加密完成的二进制流。

以下是hook结果

Obj明文:

可以看到里面传入了应用安装包名,手机基本信息和其他未知字段。

我们持续向上追踪,可以追到一条RC4加密,即上述流中存在RC4加密的包,但是RC4是对称加密,其密钥如何传输则是后续的分析重点。

首先尝试对密钥传入处进行hook,即上图中的a(byte[] bArr)中的bArr,可以看到起密钥为变化的。

向上追踪密钥来源以及这些密钥都是如何传输:

可以看到该密钥为random随机组成,这也解释了为啥每次hook密钥都不一样。

下面我开始分析密钥是如何传输的,因为this.b被赋值了密钥(bArrA),则查看谁调用了this.b。

可以看到this.b被封装进bVar.b中并传入了asymmetric.d.a()这个函数中,查看该函数。

该函数为RSA加密,即RC4加密的密钥被使用了RSA进行加密传输。继续向上追踪,在此处尝试hook,看对应抓包的哪部分内容。

Hook结果:

可以看到:890401这条包除了头部外,后续数据均被RSA加密,其中则包括RC4的密钥。后续则去分析头部是如何组成,我们则追踪这串RSA的明文,看其后面与哪些内容拼接在一起的。

我们向上追踪到其二进制数据包构建工具类,发现其拼接处。

根据这串代码,可以看到

先扩容:VLQ 长度头的大小 + 数据本身的大小c(d.b(bArr.length)+ bArr.length);

先写入 VLQ 编码的长度头(对应你之前的 d.a(bArr.length))this.a.put(d.a(bArr.length));

再写入数据本身this.a.put(bArr);

进入d.a(bArr.length)函数,查看头部是如何构造的。

这是一个这是VLQ(Variable-Length Quantity)可变长度编码算法,头部的89 04 经过变换最终表达的是包的长度:

字节1(0x89):10001001 → 去掉最高位 → 0001001(二进制)= 0x09(十六进制)= 9(十进制)

字节2(0x04):00000100 → 去掉最高位 → 0000100(二进制)= 0x04(十六进制)= 4(十进制)

字节2(高 7 位):4 << 7 = 4 * 128 = 512 字节1(低 7 位):9 总和:512 + 9 = 521

至此,这条私有流,我们能够得到大致信息了,一条流中除首包外的其他包均采用RC4进行加密,首包前两个字节表示长度,后续为一些固定字符+RSA加密的内容,其中RC4的密钥就包含在其中。

注:该私有协议分析量较大,且在逆向中发现存在敏感内容,部分内容进行了脱敏,部分逆向细节未能完全展示,如有不当之处,还望指正。

#

看雪ID:meiko

https://bbs.kanxue.com/user-home-1044120.htm

*本文为看雪论坛优秀文章,由 meiko 原创,转载请注明来自看雪社区

第十届安全开发者峰会【议题征集】-欢迎投稿

往期推荐

基于 Seccomp-notify 的 Binder 事务级无 Hook 代理机制研究

AI 辅助分析|CyberGame 高分 Web 题:缓存投毒攻击链路拆解

UDS协议安全CTF挑战分析

把 .o 变成 .ko:一次 ELF 格式的奇妙之旅

基于eBPF的Android ART运行时DEX采集与方法字节码回填

球分享

球点赞

球在看

点击阅读原文查看更多


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:看雪学苑 meiko meiko《诈骗应用协议流分析2-RC4加密》

评论:0   参与:  0