Objection Hook初探

admin 2024年12月31日23:08:31评论11 views字数 2759阅读9分11秒阅读模式
Objection Hook初探
Objection Hook初探

OBJECTION

Objection Hook

初探

Objection Hook初探

-01-

Objection

Objection介绍

Objection Hook初探

Objection 是一个功能强大的移动安全和逆向工程工具,它利用 Frida 来在运行时对 Android 和 iOS 应用进行探索、调试和修改。通过命令行的方式提供丰富的功能选项,适用于安全研究人员和开发者进行移动应用的测试和逆向工程。

主要功能:

1、 动态分析

2、 Hooking

3、 支持IOS和Android平台

4、 绕过 SSL 固定

5、 绕过Root检测

…等

Objection Hook初探

-02-

Objection

Objction安装与启动

Objection Hook初探

直接使用python就可以进行pip安装,这里使用的python版本是python 3.9;pip版本是pip 24.3.1,安装命令如下:

pip3 install objection

使用页面如下:

Objection Hook初探

可选参数:

-N:使用网络连接而不是USB连接

-h:指定主机ip,默认为127.0.0.1

-p:指定端口信息,默认端口27042

-ah:api主机信息,默认为127.0.0.1

-ap:api端口信息,默认8888

-g:指定 Frida Gadget 或进程的名称,默认为 Gadget

-S:指定要连接的设备序列号

-d:启用调试模式,提供详细输出(包括源映射信息)

命令:

api:在无头模式下启动 Objection API 服务器

device-type:获取有关连接设备的信息

explore:启动 Objection 探索的 REPL(交互式命令行环境)

patchapk:用 Frida Gadget 库修补 APK 文件

patchipa:用 FridaGadget 动态库修补 IPA 文件(iOS 应用)

run:运行单个 Objection 命令

signapk:对 APK 进行 Zipalign 和签名,使用 Objection 的密钥

version:打印当前版本并退出

Objection Hook初探

-03-

Objection

Objection基本用法

Objection Hook初探

1、 Usb连接手机和电脑,调起想抓包的apk的包名(前提:启动手机frida)

进程注入:objection -g com.X.X explore

网络注入:objection -h [手机IP] -p [手机端口] -g 包名/进程id explore

2、 root检测

关闭root检测:android root disable

绕过root检测:android bypass safety-net

                        android bypass root-detection

3、 绕过 SSL 固定

IOS应用:ios sslpinning disable

Android 应用:android sslpinning disable

4、 禁用 SSL 固定

IOS应用:ios sslpinning disable

Android应用:android sslpinning disable

5、 查找/定位类信息

列出内存中所有的类:android hooking list classes

按关键词搜索类信息:android hooking search classes [关键词]

定位Hook类(可定位多个):android hooking watch class [类名] --dump-args --dump-return

6、 hook的任务列表

查看列表信息:jobs list

删除列表信息:jobs kill [job Id]

7、 设置代理

android proxy set [ip] [port]

Objection Hook初探

-04-

Objection

objection实战展示

Objection Hook初探

1、 手机端启动frida

Objection Hook初探

2、 查看当前手机进程,获取想抓取的apk的包名

两种方式:①frida-ps -Uai ②adb shell ps ef | grep 包名关键字

Objection Hook初探

3、 Objection工具调起当前应用包名

frida有两种调应用包的方式:attach模式和spawn模式。

例如在Frida中Spawn模式下直接启动目标进程,然后在该进程中注入 Frida 的 Agent; Attach 模式下,会依附到已经运行的目标进程上,并在该进程中注入 Agent。

# attach模式

objection -h IP -p 端口 -g 包名/进程id explore #通过网络注入

# spawn模式

objection -g 包名/进程id explore

objection -g 包名 explore --startup-command "objection命令" #启动前执行命令

在工作中遇见过这么一个系统,数据包data部分加密,类似于base64编码,初步判断为AES加密,然后我以encrypt为关键词,对当前app代码进行加解密定位,具体流程如下:

①搜索加解密参数encrypt:android hooking search classes [关键词]

Objection Hook初探

②依次hook这些类:android hooking watch class [class名]

Objection Hook初探

③并对这些类进行输入输出的查看:android hooking watch class [class名] --dump-ar

gs --dump-return

Objection Hook初探

④查看当前hook的所有类信息:jobs list

Objection Hook初探

⑤手动触发app数据交互,未触发交互,可依次删除以上hook的类:jobs kill “jobId”

Objection Hook初探

⑥无法通过加密类进行hook,尝试利用encrypt方法进行hook(因为方法里包含安卓本身的一些加密包,数据量会比较大):android hooking search methods [关键词]

Objection Hook初探

⑦对展示出的依次代码本身的方法进行hook(寻找来源于当前apk包的方法,包名为android的大概率为安卓本身的包)

android hooking watch method [关键词]

android hooking watch class_method com.X.X.net.AesJavaUtils.encrypt --dump-args --dump-return

Objection Hook初探

⑧解密结果如下:

Objection Hook初探

⑨可生成hook代码,如下:

android hooking generate simple x.x.x.x.AesJavaUtils

Objection Hook初探

⑩简述一下另一种方式:attach模式网络注入

确保计算机和目标设备在同一网络上。通过 USB 连接,确保使用 adb tcpip 设置了正确的通信模式:

adb tcpip 27043

objection -h 192.168.43.6 -p 27043 -g com.X.X explore

android hooking watch class_method com.X.X.net.AesJavaUtils.encrypt --dump-args --dump-return

Objection Hook初探

-05-

Objection

参考资料

Objection Hook初探

https://bbs.kanxue.com/thread-277929-1.htm

提前祝各位师傅元旦节快乐呀~~~

监制丨船长、铁子

策划丨Cupid

美工丨molin

原文始发于微信公众号(千寻安服):Objection Hook初探

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月31日23:08:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Objection Hook初探https://cn-sec.com/archives/3575507.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息