因在大众社交应用如微信/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,可以看到起密钥为变化的

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


[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。