抓包工具--charles(青花瓷)及獲取AppStore數據包

大耳朵兒圖圖· 2019-12-04

1.Charles

Charles是一個HTTP代理/ HTTP監視器/反向代理,使開發人員能夠查看他們的機器和Internet之間的所有HTTP和SSL / HTTPS通信。這包括請求、響應和HTTP頭(包含cookie和緩存信息)。

2.Charles 使用與配置

  • 2.1 抓取HTTP請求
打開Charles,打開Charlels主題菜單,找到Proxy
勾選上macOS Proxy就可以了
在macOS Proxy 的下方有Proxy Settings選項,點擊打開

在Port出輸入8888,并且勾選下方Enable transparent HTTP proxying 選項,點擊OK即可.
  • 2.2 找到我們mac的ip,以方便在mac上抓取移動端app的數據包 三種種方式找到我們的mac ip地址 第一種:

(設置中找到網絡即可看到mac ip地址)

第二種:

(在Charles菜單欄中,找到Help-->Local IP Address,打開即可找到ip地址)

第三種:

(終端-->ifconfig)
  • 2.3 手機配置

  • 2.4 然后就可以愉快的抓取http包了.

3.抓取https包

  • Charles可以抓取http協議的包,也能抓取https協議的包.
  • 由于https是經過加密的,抓取的包以密文方式展現的
  • 配置Charles的SSL可以以明文查看https協議傳輸的內容

菜單欄中找到Help-->SSL Proxying -->>Install Charies Root Certificate!

在鑰匙串中,找到Charles Proxy 證書,這個是我信任后的證書
安裝的后的證書是不被信任的.

我們選中證書,右鍵,顯示簡介就可以出現上圖,我們信任證書即可
然后輸入mac密碼確認.
證書到這里已經完成安裝
  • 配置SSL

菜單欄--> Proxy --> SSL Proxying Settings

Host: * 
Port: 443
點擊ok即可完成配置
  • 好了,這里就可以以明文的方式查看https傳輸的詳情了.

4.Charles抓包工具的中文亂碼解決辦法

裝好了,打開Charles后,發現抓到的包content都是亂碼. 下面有個解決辦法,有助于大家參考,解決了問題.

菜單欄找到-->Tools-->Rewrite

開啟Enable Rewrite ,添加charset

Name: UTF-8-Set
點擊Add,添加內容

紅框出添加或者勾選,點擊ok即可完成配置.

我們的問題就可以解決了.

5. AppStore 數據包抓取

如果我們所有的配置都完成了, 我們是不是就可以愉快的抓包了. 當時的心情是開心的. 然而問題就來了, 到底是什么問題呢? 這么神秘嗎? 這個問題算是神秘.

我們到這一步都還OK, 問題出現了, 當我們把密碼和賬號輸入后, 點擊登錄按鈕 提示連接apple 服務器 錯誤 一萬個不開心. 當時AppStore 也打不開了,顯示連接不到apple服務器. 其他軟件可以正常抓取數據. 當時猜測是不是蘋果做了反抓取機制.

后來,找了原因:越獄手機要禁止SSL Pinning證書, AppStore使用的是SSL Pinnign(證書鎖定), 所以沒有辦法通過抓包工具直接抓到包. 因此想抓到包,必須通過安裝插件來禁止SSL Pinning. 這是目前最有效的解決方法了,不知道有沒有用. 抱著嘗試的目的開始操作.

  • 3.越獄機都有cydia軟件,一定要裝上插件OpenSSH 這里就不介紹如何安裝了,請看我寫的逆向工具集(二),地址:https://www.jianshu.com/p/3157223a836b ,有講到OpenSSH.
  • 4.我們連接手機終端,把deb包傳到越獄手機
    scp com.nablac0d3.sslkillswitch2_0.12.deb  [email protected]:var/root/

    安裝sslkillswitch

    dpkg -i  com.nablac0d3.sslkillswitch2_0.12.deb

    安裝中遇到的問題:

    主要cydia沒有安裝插件 preferenceloader
    在cydia中找到該插件,并安裝.就可以解決問題.

安裝完成后,手機會立即重啟,重啟后我們進入設置,最下面會多了一個SSL Kill Switch2

  • 5.這一步完成后,應該可以使用了.雖然禁止了SSL Pinning,我們登錄的時候仍然是報服務器請求錯誤.
Why SSL Kill Switch didn’t work

I initially thought the issue to be that?the strategy used by the SSL Kill
Switchto disable certificate validation somehow wasn’t enough to 
bypass?*itunesstored*’s certificate pinning. However, it turns out that the SSL 
Kill Switch was just not being injected into the?*itunesstored*?process at all, 
for a couple reasons:

The?itunesstored?process is started as a daemon by?launchd early during 
the device’s boot sequence, before MobileSubstrate and MobileLoader get 
started. Therefore, none of the MobileSubstrate tweaks installed on the 
device, including the SSL Kill Switch, get injected into this process.
The SSL Kill Switch had a?MobileLoader filter?so that the code disabling 
certificate validation would only be loaded into apps linking the UIKit bundle 
(ie. applications with a user interface). This was initially done to restrict the 
effect of the SSL Kill Switch to App Store apps only. 
However,?itunesstored?is a daemon that doesn’t have a user interface, 
hence the filter prevented MobileLoader from injecting the SSL Kill Switch 
into the process.
After figuring this out, getting?*itunesstored*?to stop validating SSL 
certificates was very straightforward. First of all, make sure you’re using the 
latest version of the?SSL Kill Switch(at least v0.5). Then, all you need to do is 
kill the?itunesstored?process:
iPad-Mini:~ root# ps -ef | grep itunesstored
501   170     1   0   0:00.00 ??         0:01.95 /System/Library/PrivateFrameworks/iTunesStore.framework/Support/itunesstored
  0   432   404   0   0:00.00 ttys000    0:00.01 grep itunesstored

iPad-Mini:~ root# kill -s KILL 170

原因是tunesstored進程在早期啟動時作為守護進程啟動 該設備的引導序列,在MobileSubstrate和MobileLoader獲得之前開始了. 因為SSL Kill Switch作為MobileSubstrate的插件,沒有辦法注入到進程itunesstored中. 如何解決: 必須殺掉itunesstored進程,itunesstored作為守護進程會自啟,自啟時SSL Kill Switch 就注入了itunesstored進程,如何操作呢? 其實上面文章也給出了操作命令. 我們自己也操作一下.

kill進程后,我們重啟App Store,就可以愉快的抓包了. 我當時第一次操作后,并沒有任何結果. 我自己開始覺得這個方法沒有解決問題. 后來,我嘗試關機重啟, 然后再操作一次kill命令, 最后,完全正常了. 如果大家也是這樣,可以重啟手機多次,多操作幾次. 如果沒有其他的解決辦法,這就是唯一的好方法.

6.總結

因為最近要抓取AppStore的數據包, 也就研究了一下Charles, 剛接觸就遇到了這些問題, 所以把自己的解決辦法告訴大家, 希望大家少走彎路, 節省更多的時間.

本文章簡單的介紹了, charles 的配置及使用, AppStore的數據報獲取. 還有很多charles的功能待你去研究. 這篇文章希望能夠能幫到你. 簡書:我的博客 更多文章請持續關注.

广东26选5开奖结果查 2O丨9什么项目最赚钱 qq分分彩 麻将全集欢乐二人麻将 河北家乡棋牌麻将下载安装 海王捕鱼机设置 体育比分哪里正规 天津快乐10分 电脑上玩什么软件赚钱 520彩票群 陕西钉钉推广员赚钱吗 89国际彩票游戏 网络经纪人怎样赚钱 紫金彩票首页 杨颖从小独立赚钱 诺亚彩票安卓 农村做手艺最赚钱