本篇內(nèi)容主要講解“怎么對iOS藍(lán)牙執(zhí)行基于覆蓋引導(dǎo)的模糊測試”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么對iOS藍(lán)牙執(zhí)行基于覆蓋引導(dǎo)的模糊測試”吧!
創(chuàng)新互聯(lián)公司IDC提供業(yè)務(wù):綿陽電信機(jī)房機(jī)柜租用,成都服務(wù)器租用,綿陽電信機(jī)房機(jī)柜租用,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。
ToothPicker是一款針對iOS的基于覆蓋引導(dǎo)的模糊測試工具,該工具專門針對iOS的藍(lán)牙守護(hù)進(jìn)程bluetoothd設(shè)計(jì),由于該工具基于FRIDA構(gòu)建,因此它可以適配任何運(yùn)行了FRIDA的平臺。
這個(gè)項(xiàng)目代碼庫還包含了一個(gè)基于無線模糊測試工具,該工具可以對使用InternalBlue的蘋果MagicPairing協(xié)議進(jìn)行模糊測試,并且還提供了演示樣例以供參考。除此之外,該項(xiàng)目還提供了一個(gè)ReplayCrashFile.py腳本以幫助廣大研究人員識別和驗(yàn)證模糊測試工具所發(fā)現(xiàn)的進(jìn)程崩潰情況。
這款模糊測試工具支持在各種iOS版本(已在13.3-13.6上進(jìn)行過測試)上“開箱即用”,但是需要指定符號。其他的iOS版本需要對函數(shù)地址進(jìn)行自適應(yīng)。除此之外,F(xiàn)RIDA的stalker貌似在iPhone 8上存在一些問題,我們還沒有能夠解決。更新版本的iPhone支持PAC,簽名指針的性能會受到很大影響。因此,我們建議在廣大研究人員在iPhone7上運(yùn)行該工具。
ToothPicker基于frizzer的代碼進(jìn)行開發(fā),不過我們已經(jīng)針對ToothPicker進(jìn)行了代碼重構(gòu),因此不需要再與原始版本兼容了。在之后,我們計(jì)劃將使用一個(gè)更有針對性的版本來取代它。
在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庫安裝,因?yàn)樗鼪]有已封裝好的版本。
iproxy命令需要額外的包:libusbmuxd-tools
在macOS上:
brew install libimobiledevice usbmuxd radamsa npm idevicepair pair npm install frida-compile pip3 install frida-tools
在macOS上,PacketLogger是Xcode中的一個(gè)額外組件,在安裝了藍(lán)牙調(diào)試配置之后,它將能夠幫助我們解碼各種數(shù)據(jù)包。除此之外,如果你使用Xcode來打開iOS崩潰日志時(shí),它還可以幫助自動(dòng)添加某些符號。
我們建議大家針對frizzer配置一個(gè)虛擬Python環(huán)境,然后在frizzer目錄中運(yùn)行命令來安裝所需的代碼包。
projects目錄中包含一個(gè)針對MagicPairing協(xié)議的模糊測試樣例。
然后將一些通用工具以及MagicPairing編譯到一個(gè)文件中。
使用cd命令進(jìn)入到harness目錄,然后安裝frida-compile:
npm install frida-compile
接下來,運(yùn)行下列命令:
frida-compile ../projects/YOUR_PROJECT/YOUR_SPECIALIZED_HARNESS.JS -o ../projects/YOUR_PROJECT/harness.js
首先,將你的iOS設(shè)備跟電腦連接,我們建議大家將手機(jī)切換到飛行模式,然后打開勿擾功能。
然后,運(yùn)行下列命令來開啟bluetoothd:
killall -9 bluetoothd
此時(shí),需要確保手機(jī)沒有連接至其他藍(lán)牙設(shè)備。接下來,使用cd命令切換回項(xiàng)目目錄,然后創(chuàng)建用于存儲崩潰日志的目錄,并運(yùn)行下列命令:
mkdir crashes ../../frizzer/fuzzer.py fuzz -p
現(xiàn)在,我們就可以收集關(guān)于蘋果設(shè)備的崩潰日志了。
簡而言之,如需開啟一個(gè)新的項(xiàng)目,只需要運(yùn)行下列命令即可:
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 .
如需以不同的種子來啟動(dòng)工具,可運(yùn)行下列命令:
frizzer fuzz --seed 1234 -p
到此,相信大家對“怎么對iOS藍(lán)牙執(zhí)行基于覆蓋引導(dǎo)的模糊測試”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!