Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

  • A+
所属分类:移动安全
Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

本文为看雪论坛文章

看雪论坛作者ID:PTRer




题目来源




样本来自看雪2W班十月第二题。


题目要求




之前课程已经给出的Socket的自吐,还差一个服务器IP地址和端口的自吐,补充上。
 

解题思路




编写测试demo后,首先利用objection去批量hook住内存中socket所有类,然后模拟触发socket创建,从被触发的socket类的方法中找到与IP地址和端口相关的方法。

接着单独hook住与ip地址和端口相关的方法,再次模拟触发socket创建,观察hook结果符合预期。最终编写frida脚本自动化拿到服务器的ip和端口,并利用植物大战僵尸apk测试,符合预期。


考察知识点




本题知识点更多的是一种通用解题思路,这种利用ojection批量hook住相关类的方法不局限于获取服务器的ip地址和端口。


解题过程




(1) 第一步,编写一个客户端的demo。Mainactivity核心代码如下,创建两个按键,一个基于MessageTransmit类创建socket,一个用来发包。

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

MessageTransmit类核心代码如下,测试服务端ip为“192.168.31.46”,测试端口是6666。

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

(2) 第二步,利用objection进行分析。分析的第一步骤,利用objection执行如下命令查看内存中有哪些socket类。

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

然后将这些类拷贝到excel中,生成“android hooking watch  class java.net.AbstractPlainSocketImpl”这样的列表,再拷贝到hook.txt中,采用如下命令启动apk时,一次性全部hook住socket相关类中所有方法。

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

在app上按键触发socket创建流程,可以看到如下调用关系,其中光亮函数看上去就是拿到服务端地址和端口的关键。

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

于是我们重新objection这个apk,然后采用如下两条命令,hook住getPort和getAddress方法,再次点击创建socket按键,可以看到打印出了服务端ip和地址,与我们demo中填写的一致。

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

(3) 第三步,编写frdia脚本,并进行测试。如下是frida脚本,根据log可以看到打印出了服务端的ip和port。

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

最后我还用这个frida脚本,跑了下植物大战僵尸apk,测试结果如下,也确实能自吐出服务端的ip和port。

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址




Frida追踪定Socket接口自吐游戏APK的服务器IP和地址
- End -



Frida追踪定Socket接口自吐游戏APK的服务器IP和地址


看雪ID:PTRer

https://bbs.pediy.com/user-home-874618.htm

  *本文由看雪论坛 PTRer  原创,转载请注明来自看雪社区。



Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

《安卓高级研修班》2021年6月班火热招生中!


# 往期推荐





Frida追踪定Socket接口自吐游戏APK的服务器IP和地址
公众号ID:ikanxue
官方微博:看雪安全
商务合作:[email protected]



Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

球分享

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

球点赞

Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

球在看



Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

点击“阅读原文”,了解更多!

本文始发于微信公众号(看雪学院):Frida追踪定Socket接口自吐游戏APK的服务器IP和地址

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: