android抓包为什么有些数据抓不了?抓包的辛酸历程
一、開篇閑扯
不知道該從哪個方面來寫這10天的收獲,但確切的說:這10天我收獲很大,也暴露出自己潛在的一些問題。為了讓看官更快的知道藝靈接下來要講啥,所以我會把主要的東西簡練成一句話放前面。至于后面的2千來字,全是回憶這10天我是怎么入坑爬坑,再入坑再爬坑以及自己是有多么的無知的過程。
二、核心點(diǎn)
SSL Pinning、App逆向反編譯、用證書的密鑰來解鎖證書
三、建議
沒錯,整篇文章要講的東西只用上面一句話就概括了!下面就是閑扯時刻......
如果看官跟藝靈一樣是一個門外漢但又想抓取app的數(shù)據(jù),藝靈建議看官花10來分鐘的時間閱讀剩下2千字。先不說防坑了,起碼會給你介紹若干款抓包神器+幾款模擬器+開掛神器+反編譯神器+繞過SSL Pinning的最簡單方法!就算你最后抓包不成,下次抓包時,不用為了找抓包工具和環(huán)境而苦惱,也不用糾結(jié)于哪款抓包工具更牛!對不?不過話說回來,接下來的內(nèi)容但愿會讓你快速定位問題并對癥下藥,而不是眉毛胡子一把抓,不停的在坑中徘徊!與坑做無畏的斗爭!!!
四、前三天是盲目的不停更換抓包工具
正如小標(biāo)題所說,前三天我在不停的更換抓包工具。
最先,我使用了業(yè)內(nèi)比較知名的Fiddler工具,但是獲取http數(shù)據(jù)正常,只要是https數(shù)據(jù)全部狀態(tài)為400。配圖一張:fiddler抓包時https狀態(tài)為400
然后我以為是工具問題,于是又換了Charles,結(jié)果還是一樣。
接著我又換了spy-debugger,結(jié)果同上。
接著我又換了mitmproxy,結(jié)果同上。
然后我又問@趙哥抓App用啥工具,當(dāng)時趙哥回我:抓包用Thor。好吧,小白第一次聽說,然后就開始在網(wǎng)上搜索,幾經(jīng)折騰,終于在二手的6s上成功安裝了Thor 1.3版本,當(dāng)時內(nèi)心無比激動!畢竟這玩意現(xiàn)在是收費(fèi)的,而且網(wǎng)上說的也很牛逼!接著我就在6s上打開了我要抓包的那款A(yù)pp,心里滿懷期待!那個激動啊!萬萬沒想的到的是:下一秒竟然翻車了!!!熟悉的界面再次出現(xiàn)在眼前!如圖:只要用抓包工具此app就沒有網(wǎng)絡(luò)我瞬間......
一款款比較牛逼的抓包軟件相繼失敗,我開始懷疑人生,心中暗想:我了個去!這個App到底使用了什么鬼技術(shù),這些抓包工具全都抓不了數(shù)據(jù),這也太不科學(xué)了吧!內(nèi)心無數(shù)的疑問,就不寫了,看官自己感受下就行了。
五、初識SSL Pinning
越想越不對勁,接下來我又開始在網(wǎng)上搜索,最后找到了一篇文章介紹說:這是使用了SSL Pinning技術(shù)。現(xiàn)在忘記是哪一篇文章了,于是我又按照這個線索專門搜索有關(guān):SSL Pinning相關(guān)的資料。
至于啥是SSL Pinning,其實(shí)我也不是很懂,我現(xiàn)在的理解就是:這玩意兒采用的是客戶端和服務(wù)器雙向驗(yàn)證技術(shù)來防止市場上常見的抓包工具進(jìn)行抓包。想知道詳細(xì)的自行網(wǎng)上搜索吧。
其實(shí)此時我還并不確定這款A(yù)pp采用的就是SSL Pinning,但是至少有了點(diǎn)頭緒了。于是接下來就是換工具進(jìn)行抓包了。
網(wǎng)上搜索后發(fā)現(xiàn)有文章說:使用Xposed+JustTrustMe來突破SSL Pinning,比如這篇文章:https://bbs.pediy.com/thread-226435.htm、https://blog.csdn.net/hldh214/article/details/84310876。于是我又開始在電腦上的模擬中按教程操作,不得不說:不是所有的模擬器都是那么的好用,也不是所有的模擬器都向官方說的那么牛逼!
在挑選安卓模擬器的時候我又遇到了新坑,暫且不說在模擬器上安裝Xposed+JustTrustMe會遇到一些失敗的問題這個坑,就說你要抓包的這款app能不能在模擬器上運(yùn)行吧!
夜神模擬器,大家都比較熟悉了吧,但此款A(yù)pp在最新版的夜神無法運(yùn)行,一打開就提示:很抱歉,程序已停止運(yùn)行!相信對于經(jīng)常使用模擬器的玩家來說,這個彈窗非常熟悉了吧!什么改兼容版本、改cpu內(nèi)核、改分辨率啥的全試過了,此款app還是不行!(有些app是可以的)最后放棄夜神模擬器。
再來說說網(wǎng)易推出的mumu模擬器,app可正常運(yùn)行,在裝Xposed+JustTrustMe時遇到了點(diǎn)問題最后解決了,但按文章說的證書操作時,我本地卻無法安裝Burp Suite自帶的.der證書!即使是改名后從sd卡安裝也不行,然后這款模擬器也放棄了。
接下來雷電模擬器失敗、天天模擬器失敗、逍遙模擬器竟然不卡殼一次性通過!此時我內(nèi)心又開始激動了起來,于是又按照文章教程操作。很顯然,Xposed+JustTrustMe并沒有發(fā)揮出功效。有必要說明一下,網(wǎng)上也有說使用VirtualXposed可以免root抓包的,地址:https://xposed.appkg.com/2799.html,經(jīng)測試,對此app無效!
接下來又搜索到了逆向神器Frida,然后打開命令行,一波操作猛如虎安裝成功。接下來按照這篇文章:https://blog.csdn.net/xiaohua_de/article/details/80259920開始使用注入的方法了。然后我又在注入上面卡了幾天。
最先開始是命令跑不起來,跑起來后發(fā)現(xiàn)模擬器不行,需要用真機(jī)環(huán)境!但真機(jī)需要root,當(dāng)天我有點(diǎn)糾結(jié)。
次日,我也不管了,在網(wǎng)上下了個oppo a33相關(guān)的刷機(jī)包對手機(jī)進(jìn)行了刷機(jī)。這也是我第一次親手給手機(jī)刷機(jī),刷機(jī)后開不了機(jī),長按音量鍵和開機(jī)鍵也沒反應(yīng),當(dāng)時把我還嚇壞了,心想:這手機(jī)該不會就這樣變成板磚了吧,我這抓包還沒成功呢你就先犧牲了......
又在網(wǎng)上搜索了下,后來長按了30來秒才開機(jī),這時間可真長!本以為刷機(jī)后手機(jī)就已經(jīng)root了,但這個刷機(jī)包把手機(jī)上預(yù)裝了一堆軟件,卸載都卸載不掉。于是接下來就是找root工具對手機(jī)進(jìn)行root!先后試過了幾款root工具,都沒有成功,最后用刷機(jī)精靈成功root!別提我當(dāng)時多興奮了,在電腦上卸載了一堆剛對待預(yù)安裝的軟件。然后我把輸入法也給卸載了,我以為這是第三方的。直到我打開app要輸入內(nèi)容時才發(fā)現(xiàn):軟鍵盤不見了!然后又是安裝第三方軟鍵盤,并沒有用。于是進(jìn)行了恢復(fù)出廠設(shè)置,再安裝才有輸入法。唉,我這都搞的啥事啊......
既然現(xiàn)在手機(jī)也已經(jīng)root,那勝利就在眼前了!連上USB,命令行中一波命令跑起來,結(jié)果走到./frida-server這一步時,出現(xiàn)各種問題,先后經(jīng)歷了報錯、無權(quán)限等好幾波錯誤,最后一一解決。幾經(jīng)波折,終于把文章中的前8步都走完了,只剩下最后一步了!我又開始激動了起來,但第9步說要掛VPN,掛就掛唄!于是又給手機(jī)裝VPN,裝完了再看Brup Suite結(jié)果發(fā)現(xiàn)連攔截都不攔截了,直接不走這里!!!而且此時app里一直提示著:證書路徑錯誤的提示。好吧,我承認(rèn)這個frida我又不會玩......
六、誤撞逆向大神得救
在上面的步驟中,我已經(jīng)開始向逆向沾邊了,接下來就是用apk反編譯工具。例如文章:https://blog.csdn.net/katrinawj/article/details/80016315?但是,即使我用dex2jar、jd-ui按照教程對app進(jìn)行了脫殼得到了classes-dex2jar.jar文件,但我壓根就不會安卓啊!接下來該怎么搞?我要怎么盤classes-dex2jar.jar?一臉迷茫......
差不多也是這個時候,之前在csdn上咨詢的那個逆向大神用郵件回復(fù)我了。原來他已經(jīng)搞定了!不得不說:大神就是大神,一出手效果立竿見影!此時,我已經(jīng)佩服的五體投地!
后來,逆向大神又發(fā)來郵件并附帶了一篇教程。按照大神的提示,我對幾個版本的app進(jìn)行逆向后也得到了原證書的密鑰。話說,我這還是第一次折騰逆向。但此時正在閱讀文章的看官應(yīng)該能想到此時我的心理活動:現(xiàn)在密鑰是有了,可我要怎么使用呢?......
雖然文章中附帶有Charles配置SSL Proxying Settings的步驟,但我按照步驟操作后并沒有實(shí)現(xiàn)預(yù)期效果。就這樣,又瞎耗了一天時間。不得不說:不會英語真的很吃虧的!不會英語真的很吃虧的!不會英語真的很吃虧的!以后一定讓我的孩子學(xué)好英語,不說做為主語吧,起碼閱讀無障礙就行。什么孩子?對象還沒有呢!這真是一個悲傷的故事......
前面說了,雖然我拿到了證書的密鑰,但是還是無法抓包,主要就是原因:
安裝的app版本與證書密鑰版本不符!!!雖然SSL Proxying和Client Certificates也要注意添加域名和證書,但這個并不是主要的原因,但對破解也非常重要!
好了,最后來一張成功的效果圖吧!如圖:最后Charles中可以抓取數(shù)據(jù)了
七、最后
廢話這么多,最后在大神的指點(diǎn)下成功了,主要還是因?yàn)?#xff1a;使用此app某版本反編譯后獲取了該版本的密鑰,然后用此密鑰來解鎖證書限制。說白了,還是要用原配的鑰匙才能開鎖!對于不知道密鑰的app,我就不知道咋搞了,逆向這東西可真不是個簡單的事情!
對于這10天的我來說,就像是撿到了失傳已久的獨(dú)孤九劍、九陽神功、降龍十八掌、乾坤大挪移等眾多武林絕學(xué),但可惜骨骼不驚奇沒有練武天賦,浪費(fèi)了這么多神器......
總結(jié)
以上是生活随笔為你收集整理的android抓包为什么有些数据抓不了?抓包的辛酸历程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: signature=486e344006
- 下一篇: ansible的错误