"探索未知:傾聽青花瓷Charles在AppStore的輕聲細(xì)語"

1.Charles

charles--(青花瓷)

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

2.Charles 使用與配置

  • 2.1 抓取HTTP請(qǐng)求


打開Charles,打開Charlels主題菜單,找到Proxy
勾選上macOS Proxy就可以了
在macOS Proxy 的下方有Proxy Settings選項(xiàng),點(diǎn)擊打開
在Port出輸入8888,并且勾選下方Enable transparent HTTP proxying 選項(xiàng),點(diǎn)擊OK即可.
  • 2.2 找到我們mac的ip,以方便在mac上抓取移動(dòng)端app的數(shù)據(jù)包
    三種種方式找到我們的mac ip地址
    第一種:
(設(shè)置中找到網(wǎng)絡(luò)即可看到mac ip地址)

第二種:

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

第三種:


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


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

3.抓取https包

  • Charles可以抓取http協(xié)議的包,也能抓取https協(xié)議的包.
  • 由于https是經(jīng)過加密的,抓取的包以密文方式展現(xiàn)的
  • 配置Charles的SSL可以以明文查看https協(xié)議傳輸?shù)膬?nèi)容
菜單欄中找到Help-->SSL Proxying -->>Install Charies Root Certificate!
C6E600A0-161E-4AF2-8CAC-FA5E6EA88A1F.png
在鑰匙串中,找到Charles Proxy 證書,這個(gè)是我信任后的證書
安裝的后的證書是不被信任的.
信任證書
我們選中證書,右鍵,顯示簡(jiǎn)介就可以出現(xiàn)上圖,我們信任證書即可
然后輸入mac密碼確認(rèn).
證書到這里已經(jīng)完成安裝
  • 配置SSL
SSL Proxying Settings
菜單欄--> Proxy --> SSL Proxying Settings
Host: * 
Port: 443
點(diǎn)擊ok即可完成配置
  • 好了,這里就可以以明文的方式查看https傳輸?shù)脑斍榱?

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

裝好了,打開Charles后,發(fā)現(xiàn)抓到的包c(diǎn)ontent都是亂碼.
下面有個(gè)解決辦法,有助于大家參考,解決了問題.


Rewrite
菜單欄找到-->Tools-->Rewrite
Enable Rewrite
開啟Enable Rewrite ,添加charset
Name: UTF-8-Set
點(diǎn)擊Add,添加內(nèi)容
E6A6F6F7D8C8E5F365EC9111E33EB1F4.png
紅框出添加或者勾選,點(diǎn)擊ok即可完成配置.

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

5. AppStore 數(shù)據(jù)包抓取

如果我們完成了所有的配置,是不是就可以愉快地抓包了呢?心情會(huì)變得開心。但是問題隨之而來,到底是什么問題呢?這么神秘嗎?這個(gè)問題確實(shí)有點(diǎn)神秘。

iTunes Store 與 App Store
登錄

我們到了這一步都還順利,但突然出現(xiàn)了意想不到的問題。當(dāng)我們輸入密碼和賬號(hào)后,點(diǎn)擊登錄按鈕時(shí)卻提示連接到Apple服務(wù)器出錯(cuò),這讓我們非常不開心。當(dāng)時(shí)甚至無法打開AppStore,顯示連接不到Apple服務(wù)器。其他軟件可以正常抓取數(shù)據(jù),所以我們猜測(cè)是不是蘋果設(shè)置了反抓取機(jī)制。

后來,我們找到了原因:越獄手機(jī)需要禁止SSL Pinning證書,而AppStore使用的是SSL Pinning(證書鎖定)。因此,無法通過抓包工具直接抓取包。要想抓取包,必須通過安裝插件來禁止SSL Pinning。這是目前最有效的解決方法,但不確定是否有效。我們決定嘗試一下。

ssl-kill-switch2
sslkillswitch--deb
  • 3.越獄機(jī)都有cydia軟件,一定要裝上插件OpenSSH
    這里就不介紹如何安裝了,請(qǐng)看我寫的"技藝精進(jìn):iOS逆向工具精選" ,有講到OpenSSH.
  • 4.連接手機(jī)終端,將deb包傳輸?shù)皆姜z手機(jī)。
scp com.nablac0d3.sslkillswitch2_0.12.deb  root@host:var/root/

安裝sslkillswitch

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

安裝中遇到的問題:


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

安裝完成后,手機(jī)會(huì)立即重啟,重啟后我們進(jìn)入設(shè)置,最下面會(huì)多了一個(gè)SSL Kill Switch2

SSL Kill Switch 2
Disable Certificate Validation
  • 5.這一步完成后,應(yīng)該可以使用了.雖然禁止了SSL Pinning,我們登錄的時(shí)候仍然是報(bào)服務(wù)器請(qǐng)求錯(cuò)誤.
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

原因是在早期啟動(dòng)時(shí),itunesstored進(jìn)程作為守護(hù)進(jìn)程啟動(dòng),并且在設(shè)備的引導(dǎo)序列中開始了MobileSubstrate和MobileLoader。因此,SSL Kill Switch作為MobileSubstrate的插件,無法注入到itunesstored進(jìn)程中。
解決方法是必須殺掉itunesstored進(jìn)程,因?yàn)閕tunesstored作為守護(hù)進(jìn)程會(huì)自動(dòng)啟動(dòng)。在自啟時(shí),SSL Kill Switch 就會(huì)被注入到itunesstored進(jìn)程中。操作命令如下,我們也可以自己操作一下。

kill進(jìn)程

kill進(jìn)程后,我們重啟App Store,就可以愉快地抓包了。

我第一次操作時(shí)并沒有得到任何結(jié)果,開始覺得這個(gè)方法并沒有解決問題。后來,我嘗試了關(guān)機(jī)重啟,然后再次執(zhí)行kill命令,最后,一切都正常了。

如果你也遇到了類似情況,可以嘗試重啟手機(jī)多次,多操作幾次。

6.總結(jié)

因?yàn)樽罱芯孔トppStore的數(shù)據(jù)包,我開始研究了一下Charles。剛接觸就遇到了一些問題,所以我把自己的解決方法告訴了大家,希望能幫助大家少走彎路,節(jié)省更多的時(shí)間。

本文簡(jiǎn)單介紹了Charles的配置和使用,如何獲取AppStore的數(shù)據(jù)包。當(dāng)然,Charles還有許多其他功能等待你去研究。希望這篇文章能對(duì)你有所幫助。

我還有許多文章準(zhǔn)備更新,敬請(qǐng)持續(xù)關(guān)注。

公眾號(hào):聽木子說心語。文章也會(huì)同步在公眾號(hào)上發(fā)布,有需要的朋友可以關(guān)注一下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評(píng)論 6 542
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,348評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,083評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,442評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,802評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,983評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,542評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,287評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,486評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,710評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評(píng)論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,224評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,462評(píng)論 2 378

推薦閱讀更多精彩內(nèi)容