怎么对iOS蓝牙执行基于覆盖引导的模糊测试

本篇内容主要讲解“怎么对iOS蓝牙执行基于覆盖引导的模糊测试”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么对iOS蓝牙执行基于覆盖引导的模糊测试”吧!

创新互联公司IDC提供业务:绵阳电信机房机柜租用,成都服务器租用,绵阳电信机房机柜租用,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。

ToothPicker

ToothPicker是一款针对iOS的基于覆盖引导的模糊测试工具,该工具专门针对iOS的蓝牙守护进程bluetoothd设计,由于该工具基于FRIDA构建,因此它可以适配任何运行了FRIDA的平台。

这个项目代码库还包含了一个基于无线模糊测试工具,该工具可以对使用InternalBlue的苹果MagicPairing协议进行模糊测试,并且还提供了演示样例以供参考。除此之外,该项目还提供了一个ReplayCrashFile.py脚本以帮助广大研究人员识别和验证模糊测试工具所发现的进程崩溃情况。

这款模糊测试工具支持在各种iOS版本(已在13.3-13.6上进行过测试)上“开箱即用”,但是需要指定符号。其他的iOS版本需要对函数地址进行自适应。除此之外,FRIDA的stalker貌似在iPhone 8上存在一些问题,我们还没有能够解决。更新版本的iPhone支持PAC,签名指针的性能会受到很大影响。因此,我们建议在广大研究人员在iPhone7上运行该工具。

ToothPicker基于frizzer的代码进行开发,不过我们已经针对ToothPicker进行了代码重构,因此不需要再与原始版本兼容了。在之后,我们计划将使用一个更有针对性的版本来取代它。

前提条件

在iPhone上:

  • https://frida.re/docs/ios/

在Linux上:

  • usbmuxd

  • libimobiledevice

  • 建议使用virtualenv

  • radamsa(frizzer需要使用)

基于Arch的Linux:

# usbmuxd typically comes with libimobiledevice

# but just to be sure, we manually install it as well

sudo pacman -S usbmuxd libimobiledevice python-virtualenv radamsa

 

# Connect the iPhone to the computer

# Unlock it.

# If a pairing message pops up, click "Trust"

# If no pairing message pops up:

idevicepair pair

# Now there should be the pop up, accept and then again:

idevicepair pair

 

# In case of connection errors:

sudo systemctl restart usbmuxd

# or pair phone and computer again

 

 

# Other useful commands

 

# To ssh into the iPhone:

# Checkra1n comes with an SSH server listening on Port 44

# Proxy the phone's SSH port to 4444 localport:

iproxy 4444 44

# Connect:

ssh root@localhost -p 4444

# Default password: alpine

 

# To fetch some device information of the phone:

Ideviceinfo

Debian Linux:

大致步骤跟上面的一样,但是:

  • radamsa需要从Git库安装,因为它没有已封装好的版本。

  • iproxy命令需要额外的包:libusbmuxd-tools

在macOS上:

brew install libimobiledevice usbmuxd radamsa npm

idevicepair pair

npm install frida-compile

pip3 install frida-tools

在macOS上,PacketLogger是Xcode中的一个额外组件,在安装了蓝牙调试配置之后,它将能够帮助我们解码各种数据包。除此之外,如果你使用Xcode来打开iOS崩溃日志时,它还可以帮助自动添加某些符号。

工具配置

  • 我们建议大家针对frizzer配置一个虚拟Python环境,然后在frizzer目录中运行命令来安装所需的代码包。

  • projects目录中包含一个针对MagicPairing协议的模糊测试样例。

  • 然后将一些通用工具以及MagicPairing编译到一个文件中。

  • 使用cd命令进入到harness目录,然后安装frida-compile:

npm install frida-compile
  • 接下来,运行下列命令:

frida-compile ../projects/YOUR_PROJECT/YOUR_SPECIALIZED_HARNESS.JS -o ../projects/YOUR_PROJECT/harness.js

工具使用

首先,将你的iOS设备跟电脑连接,我们建议大家将手机切换到飞行模式,然后打开勿扰功能。

然后,运行下列命令来开启bluetoothd:

killall -9 bluetoothd

此时,需要确保手机没有连接至其他蓝牙设备。接下来,使用cd命令切换回项目目录,然后创建用于存储崩溃日志的目录,并运行下列命令:

mkdir crashes

../../frizzer/fuzzer.py fuzz -p

现在,我们就可以收集关于苹果设备的崩溃日志了。

简而言之,如需开启一个新的项目,只需要运行下列命令即可:

cd harness

npx frida-compile ../projects/YOUR_PROJECT/YOUR_SPECIALIZED_HARNESS.JS -o ../projects/YOUR_PROJECT/harness.js

cd ../projects/YOUR_PROJECT/

mkdir crashes

frizzer fuzz -p .

如需以不同的种子来启动工具,可运行下列命令:

frizzer fuzz --seed 1234 -p

到此,相信大家对“怎么对iOS蓝牙执行基于覆盖引导的模糊测试”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


名称栏目:怎么对iOS蓝牙执行基于覆盖引导的模糊测试
网站路径:http://scyanting.com/article/jhpodo.html