錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
四種繞過iOS SSL驗證和證書固定的方法

作者: 佚名  日期:2018-10-18 13:20:04   來源: 本站整理

 嚴正聲明:本文僅限于技術討論,嚴禁用于其他用途。
幾個月前,Cody Wass曾發表過一篇關于如何繞過Android驗證和證書固定的文章。這篇文章給予了我很大的靈感,因此我決定也分享一些我在工作當中發現的,關于繞過iOS SSL驗證和證書固定的方法。Cody在他的文章里重申了中間人攻擊,在任何標準滲透測試當中的重要性。通過中間人攻擊,我們可以攔截和fuzz所有的HTTP請求,并檢查是否存在安全漏洞。在下面的例子中,我將使用Burp Suite作為我的Web代理。本文假設讀者對iOS,Xcode,設置手機和在iOS使用Burp攔截HTTP流量有基本的了解。本文我將為大家介紹以下四種,繞過iOS中的SSL驗證和證書固定的方法:
1. 安裝自己的 CA 證書2. 將軟件安裝到 iOS 設備3. 使用 Objection 和 Frida4. 使用反匯編程序修改 IPA 文件
方法1:安裝自己的 CA 證書
安裝自己的CA證書是擺脫SSL errors的第一步。在iOS中安裝CA證書相對容易。首先,要做的就是將CA證書放到設備上。這可以通過打開電子郵件附件或下載證書來完成。然后,我們需要配置移動設備和Web代理,以攔截經過的網絡流量。具體來說對于Burp Suite,你只需在瀏覽器中訪問http://burp并單擊“CA Certificate”即可。
接下來,系統將提示你“Install”證書,如下所示。

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

你可以進入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 Development”。加載后,單擊“Done”,然后單擊“Download Manual Profiles”,將證書加載到計算機上。

將代碼簽名證書加載到計算機上后,我們可以通過運行以下命令來找到它:
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.015176Found 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文件,可以幫你解決這個問題。
總結
就像本文開頭說的,能夠查看和修改從移動應用程序發送至服務器的HTTP請求,是滲透測試工作的重要組成部分。這能夠讓我們測試人員對應用程序的功能,有更為全面的了解。本文中介紹的方法,都是我們在評估期間常用到的方法,用于在出現SSL證書錯誤和固定時查看和操縱流量。如果你對文中所提及的內容有任何的疑問,或是你有更好的方法。那么,歡迎你在下面的評論中告訴我!
參考文獻
https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2015/january/bypassing-openssl-certificate-pinning-in-ios-apps/
http://dji.retroroms.info/howto/iosfrida



熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數和判...
  • IIS 8 開啟 GZIP壓縮來減少網絡請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅動時提示不包含數字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務區域: 遼寧錦州市區
    主要業務: 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網設置,IT服務外包,局域網組建,ADSL共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    主站蜘蛛池模板: 亚洲人片在线观看天堂无码| 国产亚洲?V无码?V男人的天堂 | 日韩精品无码一区二区三区不卡 | 色综合久久久无码网中文| 无码中文字幕日韩专区| 无码人妻少妇久久中文字幕蜜桃 | 国产av无码专区亚洲av果冻传媒 | 精品国产a∨无码一区二区三区| 国产成人无码精品久久二区三区| 成人无码A区在线观看视频| 日韩国产成人无码av毛片 | 青春草无码精品视频在线观| 亚洲欧洲精品无码AV| 国产精品无码亚洲精品2021| 久久午夜夜伦鲁鲁片免费无码影视| 东京热av人妻无码专区| 国产成人精品一区二区三区无码 | 精品国产v无码大片在线观看| 在线观看免费无码视频| 日韩精品人妻系列无码av东京 | 亚洲AV中文无码乱人伦下载 | 无码少妇丰满熟妇一区二区| 久久99久久无码毛片一区二区| 亚洲av成人中文无码专区| 精品人妻系列无码人妻漫画| 少妇中文无码高清| 国产午夜无码专区喷水| 亚洲av无码精品网站| 亚洲av无码国产精品色午夜字幕 | 日韩少妇无码一区二区三区| 黄A无码片内射无码视频| 久久久久久无码Av成人影院 | 精品无码一区二区三区在线| 亚洲av中文无码乱人伦在线观看| 国产午夜无码福利在线看网站 | 中文无码乱人伦中文视频在线V| 狠狠噜天天噜日日噜无码| 国产激情无码一区二区app| 无码射肉在线播放视频| 亚洲AV无码日韩AV无码导航| 中文字幕无码乱码人妻系列蜜桃|