中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

四種繞過iOS SSL驗證和證書固定的方法分別是什么

發布時間:2021-12-14 17:47:36 來源:億速云 閱讀:350 作者:柒染 欄目:數據安全

本篇文章為大家展示了四種繞過iOS SSL驗證和證書固定的方法分別是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

在下面的例子中,我將使用Burp Suite作為我的Web代理。本文假設讀者對iOS,Xcode,設置手機和在iOS使用Burp攔截HTTP流量有基本的了解。我將為大家介紹以下四種,繞過iOS中的SSL驗證和證書固定的方法:

方法1:安裝自己的 CA 證書

安裝自己的CA證書是擺脫SSL errors的第一步。在iOS中安裝CA證書相對容易。首先,要做的就是將CA證書放到設備上。這可以通過打開電子郵件附件或下載證書來完成。然后,我們需要配置移動設備和Web代理,以攔截經過的網絡流量。具體來說對于Burp Suite,你只需在瀏覽器中訪問http://burp并單擊“CA Certificate”即可。

接下來,系統將提示你“Install”證書,如下所示。

四種繞過iOS SSL驗證和證書固定的方法分別是什么

單擊“Install”按鈕后,會提示將要安裝的證書添加到受信任證書列表中的警告。

四種繞過iOS SSL驗證和證書固定的方法分別是什么

你可以進入Settings > General > Profile來驗證證書是否已被成功安裝。

方法 2:將軟件安裝到 iOS 設備

如果仍出現SSL errors,或應用程序本身因為等待連接而發生卡死現象,則應用程序服務器可能正在使用某種TLS鏈驗證或SSL證書固定。繞過SSL證書固定的最簡單方法是,安裝易于使用的工具軟件來幫我們完成這個過程。以下是我所使用的兩款工具:

SSLKillSwitch

Burp Mobile Assistant

具體的安裝大家直接參考工具的安裝說明即可。但使用這些方法,我們需要越獄的iOS設備。近年來,隨著蘋果公司對iOS設備安全性的不斷增強,越獄的難度也變得越來越大。

方法 3:使用 Objection 和 Frida

另一種已驗證過的方法是使用Frida hooks 和 Objection.。Frida是一個非常先進的框架,允許你在運行時干擾應用程序的代碼。但Frida需要設備越獄后才能使用。但是,我們可以使用具有完整框架庫的Frida Gadget,這樣我們就不需要越獄設備了。Objection是這個框架的包裝器,將為我們自動化的完成所有工作。

首先,我們需要Apple Developer帳戶的有效配置文件和代碼簽名證書。你可以通過在Xcode中創建測試應用程序來創建有效的配置文件,并在這里注冊免費的開發人員帳戶。

創建測試項目后,下一步是設置代碼簽名證書。首先,打開Xcode首選項,然后選擇“Accounts”。要添加Apple ID帳戶,請單擊左下角的加號并登錄你的帳戶。然后單擊右下角的“Manage Certificates”。

四種繞過iOS SSL驗證和證書固定的方法分別是什么

單擊該按鈕后,將會跳轉到以下界面。要創建證書,請單擊左下方框中的加號,然后選擇“iOS Development”。加載后,單擊“Done”,然后單擊“Download Manual Profiles”,將證書加載到計算機上。

四種繞過iOS SSL驗證和證書固定的方法分別是什么

將代碼簽名證書加載到計算機上后,我們可以通過運行以下命令來找到它:

NetSPIs-MacBook-Pro:Test netspi$ security find-identity

Policy: X.509 Basic
Matching identities
1) A[REDACTED]1 "iPhone Developer: [REDACTED]@netspi.com ([REDACTED])"
2) 0[REDACTED]C "iPhone Developer: [REDACTED]@netspi.com ([REDACTED])"
2 identities found

Valid identities only
1) A[REDACTED]1 "iPhone Developer: [REDACTED]@netspi.com ([REDACTED])"
2) 0[REDACTED]C "iPhone Developer: [REDACTED]@netspi.com ([REDACTED])"
2 valid identities found

我們想要加載Frida Gadget動態庫,以能夠在運行時修改應用程序。在iOS應用程序的上下文中,我們想要提取IPA文件,修改二進制文件以加載FridaGadget.dylib,對二進制文件和dylib進行代碼簽名,然后重新打包更新的IPA文件。如上所述,我們可以使用Objection來自動幫我們完成所有這些工作。只需運行以下簡單命令即可,其中-s是IPA文件,-c是代碼簽名證書。

NetSPIs-MacBook-Pro:NetSPI netspi$ objection patchipa -s netspi_test.ipa -c 0[REDACTED]C
Using latest Github gadget version: 12.0.3
Remote FridaGadget version is v12.0.3, local is v12.0.1. Downloading...
Downloading from: https://github.com/frida/frida/releases/download/12.0.3/frida-gadget-12.0.3-ios-universal.dylib.xz
Downloading iOS dylib to /Users/netspi/.objection/ios/FridaGadget.dylib.xz...
Unpacking /Users/netspi/.objection/ios/FridaGadget.dylib.xz...
Cleaning up downloaded archives...
Patcher will be using Gadget version: 12.0.3
No provision file specified, searching for one...
Found provision file /Users/netspi/Library/Developer/Xcode/DerivedData/test-fbleootdcdwdyafhyzjmvihvfiga/Build/Products/Debug-iphoneos/test.app/embedded.mobileprovision expiring in 307 days, 1:40:03.015176
Found a valid provisioning profile
Working with app: NetSPI.app
Bundle identifier is: com.netspi.test
Codesigning 13 .dylib's with signature 0[REDACTED]C
Code signing: libswiftDarwin.dylib
Code signing: libswiftUIKit.dylib
Code signing: libswiftCoreImage.dylib
Code signing: libswiftos.dylib
Code signing: libswiftObjectiveC.dylib
Code signing: libswiftCoreGraphics.dylib
Code signing: FridaGadget.dylib
Code signing: libswiftCore.dylib
Code signing: libswiftCoreFoundation.dylib
Code signing: libswiftMetal.dylib
Code signing: libswiftQuartzCore.dylib
Code signing: libswiftFoundation.dylib
Code signing: libswiftDispatch.dylib
Creating new archive with patched contents...
Codesigning patched IPA...
Cannot find entitlements in binary. Using defaults

Copying final ipa from /var/folders/1k/mw7w1kfd4c96jkvkw5mp3qfm0000gn/T/netspi_test-frida-codesigned.ipa to current directory...
Cleaning up temp files...

一旦命令執行完畢,就會為我們生成一個名為netspi_test-frida-codesigned.ipa的新IPA文件,我們可以將其部署到iOS設備上。有一個名為ios-deploy的工具,可以和未越獄的iOS設備配合使用。我們可以使用多種不同的選項,具體取決于你要完成的任務(例如,運行調試器,通過USB部署應用程序等)。

要使用ios-deploy,我們需要解壓縮IPA文件并運行ios-deploy命令。在下面的示例中,我指定了我想通過USB (-W)部署應用程序,以及我要部署的包(-b)。

NetSPIs-MacBook-Pro:NetSPI netspi$ ios-deploy -W -b ./Payload/NetSPI.app
[....] Waiting for iOS device to be connected
[....] Using 3ff9c90d2b23beadeefdf7bc240211730c84adef (P105AP, iPad mini, iphoneos, armv7) a.k.a. 'MAPen's iPad'.
------ Install phase ------
[ 0%] Found 3ff9c90d2b23beadeefdf7bc240211730c84adef (P105AP, iPad mini, iphoneos, armv7) a.k.a. 'MAPen's iPad' connected through USB, beginning install
[ 5%] Copying /Users/netspi/test/NetSPI/Payload/NetSPI.app/META-INF/ to device
[TRUNCATED]
[ 52%] CreatingStagingDirectory
[ 57%] ExtractingPackage
[ 60%] InspectingPackage
[ 60%] TakingInstallLock
[ 65%] PreflightingApplication
[ 65%] InstallingEmbeddedProfile
[ 70%] VerifyingApplication
[ 75%] CreatingContainer
[ 80%] InstallingApplication
[ 85%] PostflightingApplication
[ 90%] SandboxingApplication
[ 95%] GeneratingApplicationMap
[100%] Installed package ./Payload/NetSPI.app

現在,我們已在iOS設備上安裝了應用程序。接下來要做的是打開應用程序并通過Objection與它建立連接。

NetSPIs-MacBook-Pro:NetSPI netspi$ objection explore
_ _ _ _
___| |_ |_|___ ___| |_|_|___ ___
| . | . | | | -_| _| _| | . | |
|___|___|_| |___|___|_| |_|___|_|_|
|___|(object)inject(ion) v1.3.0

Runtime Mobile Exploration
by: @leonjza from @sensepost

[tab] for command suggestions
com.netspi.test on (iPad: 9.0.1) [usb] #

建立連接后,我們只需運行繞過證書驗證的內置命令,代理流量即可。

com.netspi.test on (iPad: 9.0.1) [usb] # ios sslpinning disable
Job: b748974e-ed6d-4aaf-b5ea-3fb35a13720a - Starting
[3fb35a13720a] [ios-ssl-pinning-bypass] [NSURLSession] Found 1 matches for URLSession:didReceiveChallenge:completionHandler:
[3fb35a13720a] [ios-ssl-pinning-bypass] [NSURLConnection] Found 5 matches for connection:willSendRequestForAuthenticationChallenge:
[3fb35a13720a] [ios-ssl-pinning-bypass] Hooking lower level method: SSLSetSessionOption
[3fb35a13720a] [ios-ssl-pinning-bypass] Hooking lower level method: SSLCreateContext
[3fb35a13720a] [ios-ssl-pinning-bypass] Hooking lower level method: SSLHandshake
Job: b748974e-ed6d-4aaf-b5ea-3fb35a13720a - Started

方法 4:使用反匯編程序修改 IPA 文件

如果以上三種方法都嘗試失敗,那么你可以選擇使用反匯編程序來修改IPA文件的方法繞過證書驗證。對iOS的反匯編內容已超出了本文的討論范圍。對于iOS而言,最常用的反匯編程序是Hopper和IDA。你只需將二進制文件加載到應用程序,并觀察移動應用程序嘗試與應用程序服務器建立SSL連接時調用的函數背后的邏輯,就可以找到證書固定發生的位置。修改IPA很可能會破壞已簽名的應用程序,并導致其無法在iOS設備上進行安裝。通過重簽名IPA文件,可以幫你解決這個問題。

上述內容就是四種繞過iOS SSL驗證和證書固定的方法分別是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲阜市| 汽车| 扶沟县| 平凉市| 夹江县| 玉溪市| 凤凰县| 常德市| 顺平县| 德兴市| 河曲县| 洞口县| 文化| 河源市| 娱乐| 旅游| 泰兴市| 龙门县| 礼泉县| 宝坻区| 平定县| 瓦房店市| 金坛市| 招远市| 开封市| 丹巴县| 石棉县| 广河县| 凤山市| 岳池县| 栖霞市| 高雄市| 怀集县| 鞍山市| 金平| 晋宁县| 宁化县| 嘉义县| 青阳县| 金阳县| 安国市|