艺灵设计

全部文章
×

为了抓包某app,我折腾了10天,原来他是这样防抓包的

作者:艺灵设计 - 来源:http://www.yilingsj.com - 发布时间:2019-03-25 22:57:34 - 阅: - 评:0 - 积分:0

摘要:
为了抓包一款app,无知的我折腾了10天时间,最终在逆向大神的指点下才成功抓包。这10天,一共接触了6款知名抓包软件、几款安卓模拟器、几种对SSL Pinning绕过的工具、初步了解逆向破解思路......

一、开篇闲扯

不知道该从哪个方面来写这10天的收获,但确切的说:这10天我收获很大,也暴露出自己潜在的一些问题。为了让看官更快的知道艺灵接下来要讲啥,所以我会把主要的东西简练成一句话放前面。至于后面的2千来字,全是回忆这10天我是怎么入坑爬坑,再入坑再爬坑以及自己是有多么的无知的过程。

二、核心点

SSL PinningApp逆向反编译用证书的密钥来解锁证书

三、建议

没错,整篇文章要讲的东西只用上面一句话就概括了!下面就是闲扯时刻......

如果看官跟艺灵一样是一个门外汉但又想抓取app的数据,艺灵建议看官花10来分钟的时间阅读剩下2千字。先不说防坑了,起码会给你介绍若干款抓包神器+几款模拟器+开挂神器+反编译神器+绕过SSL Pinning的最简单方法!就算你最后抓包不成,下次抓包时,不用为了找抓包工具和环境而苦恼,也不用纠结于哪款抓包工具更牛!对不?不过话说回来,接下来的内容但愿会让你快速定位问题并对症下药,而不是眉毛胡子一把抓,不停的在坑中徘徊!与坑做无畏的斗争!!!

四、前三天是盲目的不停更换抓包工具

正如小标题所说,前三天我在不停的更换抓包工具。

最先,我使用了业内比较知名的Fiddler工具,但是获取http数据正常,只要是https数据全部状态为400。配图一张:fiddler抓包时https状态为400fiddler抓包时https状态为400

然后我以为是工具问题,于是又换了Charles,结果还是一样。

接着我又换了spy-debugger,结果同上。

接着我又换了mitmproxy,结果同上。

然后我又问@赵哥抓App用啥工具,当时赵哥回我:抓包用Thor。好吧,小白第一次听说,然后就开始在网上搜索,几经折腾,终于在二手的6s上成功安装了Thor 1.3版本,当时内心无比激动!毕竟这玩意现在是收费的,而且网上说的也很牛逼!接着我就在6s上打开了我要抓包的那款App,心里满怀期待!那个激动啊!万万没想的到的是:下一秒竟然翻车了!!!熟悉的界面再次出现在眼前!如图:只要用抓包工具此app就没有网络只要用抓包工具此app就没有网络我瞬间......

一款款比较牛逼的抓包软件相继失败,我开始怀疑人生,心中暗想:我了个去!这个App到底使用了什么鬼技术,这些抓包工具全都抓不了数据,这也太不科学了吧!内心无数的疑问,就不写了,看官自己感受下就行了。

五、初识SSL Pinning

越想越不对劲,接下来我又开始在网上搜索,最后找到了一篇文章介绍说:这是使用了SSL Pinning技术。现在忘记是哪一篇文章了,于是我又按照这个线索专门搜索有关:SSL Pinning相关的资料。

至于啥是SSL Pinning,其实我也不是很懂,我现在的理解就是:这玩意儿采用的是客户端和服务器双向验证技术来防止市场上常见的抓包工具进行抓包。想知道详细的自行网上搜索吧。

其实此时我还并不确定这款App采用的就是SSL Pinning,但是至少有了点头绪了。于是接下来就是换工具进行抓包了。

网上搜索后发现有文章说:使用Xposed+JustTrustMe来突破SSL Pinning,比如这篇文章:https://bbs.pediy.com/thread-226435.htmhttps://blog.csdn.net/hldh214/article/details/84310876。于是我又开始在电脑上的模拟中按教程操作,不得不说:不是所有的模拟器都是那么的好用,也不是所有的模拟器都向官方说的那么牛逼!

在挑选安卓模拟器的时候我又遇到了新坑,暂且不说在模拟器上安装Xposed+JustTrustMe会遇到一些失败的问题这个坑,就说你要抓包的这款app能不能在模拟器上运行吧!

夜神模拟器,大家都比较熟悉了吧,但此款App在最新版的夜神无法运行,一打开就提示:很抱歉,程序已停止运行!相信对于经常使用模拟器的玩家来说,这个弹窗非常熟悉了吧!什么改兼容版本改cpu内核改分辨率啥的全试过了,此款app还是不行!(有些app是可以的)最后放弃夜神模拟器。

再来说说网易推出的mumu模拟器,app可正常运行,在装Xposed+JustTrustMe时遇到了点问题最后解决了,但按文章说的证书操作时,我本地却无法安装Burp Suite自带的.der证书!即使是改名后从sd卡安装也不行,然后这款模拟器也放弃了。

接下来雷电模拟器失败、天天模拟器失败、逍遥模拟器竟然不卡壳一次性通过!此时我内心又开始激动了起来,于是又按照文章教程操作。很显然,Xposed+JustTrustMe并没有发挥出功效。有必要说明一下,网上也有说使用VirtualXposed可以免root抓包的,地址:https://xposed.appkg.com/2799.html,经测试,对此app无效!

接下来又搜索到了逆向神器Frida,然后打开命令行,一波操作猛如虎安装成功。接下来按照这篇文章:https://blog.csdn.net/xiaohua_de/article/details/80259920开始使用注入的方法了。然后我又在注入上面卡了几天。

最先开始是命令跑不起来,跑起来后发现模拟器不行,需要用真机环境!但真机需要root,当天我有点纠结。

次日,我也不管了,在网上下了个oppo a33相关的刷机包对手机进行了刷机。这也是我第一次亲手给手机刷机,刷机后开不了机,长按音量键和开机键也没反应,当时把我还吓坏了,心想:这手机该不会就这样变成板砖了吧,我这抓包还没成功呢你就先牺牲了......

又在网上搜索了下,后来长按了30来秒才开机,这时间可真长!本以为刷机后手机就已经root了,但这个刷机包把手机上预装了一堆软件,卸载都卸载不掉。于是接下来就是找root工具对手机进行root!先后试过了几款root工具,都没有成功,最后用刷机精灵成功root!别提我当时多兴奋了,在电脑上卸载了一堆刚对待预安装的软件。然后我把输入法也给卸载了,我以为这是第三方的。直到我打开app要输入内容时才发现:软键盘不见了!然后又是安装第三方软键盘,并没有用。于是进行了恢复出厂设置,再安装才有输入法。唉,我这都搞的啥事啊......

既然现在手机也已经root,那胜利就在眼前了!连上USB,命令行中一波命令跑起来,结果走到./frida-server这一步时,出现各种问题,先后经历了报错无权限等好几波错误,最后一一解决。几经波折,终于把文章中的前8步都走完了,只剩下最后一步了!我又开始激动了起来,但第9步说要挂VPN,挂就挂呗!于是又给手机装VPN,装完了再看Brup Suite结果发现连拦截都不拦截了,直接不走这里!!!而且此时app里一直提示着:证书路径错误的提示。好吧,我承认这个frida我又不会玩......

六、误撞逆向大神得救

在上面的步骤中,我已经开始向逆向沾边了,接下来就是用apk反编译工具。例如文章:https://blog.csdn.net/katrinawj/article/details/80016315 但是,即使我用dex2jarjd-ui按照教程对app进行了脱壳得到了classes-dex2jar.jar文件,但我压根就不会安卓啊!接下来该怎么搞?我要怎么盘classes-dex2jar.jar?一脸迷茫......

差不多也是这个时候,之前在csdn上咨询的那个逆向大神用邮件回复我了。原来他已经搞定了!不得不说:大神就是大神,一出手效果立竿见影!此时,我已经佩服的五体投地!

后来,逆向大神又发来邮件并附带了一篇教程。按照大神的提示,我对几个版本的app进行逆向后也得到了原证书的密钥。话说,我这还是第一次折腾逆向。但此时正在阅读文章的看官应该能想到此时我的心理活动:现在密钥是有了,可我要怎么使用呢?......

虽然文章中附带有Charles配置SSL Proxying Settings的步骤,但我按照步骤操作后并没有实现预期效果。就这样,又瞎耗了一天时间。不得不说:不会英语真的很吃亏的!不会英语真的很吃亏的!不会英语真的很吃亏的!以后一定让我的孩子学好英语,不说做为主语吧,起码阅读无障碍就行。什么孩子?对象还没有呢!这真是一个悲伤的故事......

前面说了,虽然我拿到了证书的密钥,但是还是无法抓包,主要就是原因:
安装的app版本与证书密钥版本不符!!!虽然SSL ProxyingClient Certificates也要注意添加域名和证书,但这个并不是主要的原因,但对破解也非常重要!

好了,最后来一张成功的效果图吧!如图:最后Charles中可以抓取数据了最后Charles中可以抓取数据了

七、最后

废话这么多,最后在大神的指点下成功了,主要还是因为:使用此app某版本反编译后获取了该版本的密钥,然后用此密钥来解锁证书限制。说白了,还是要用原配的钥匙才能开锁!对于不知道密钥的app,我就不知道咋搞了,逆向这东西可真不是个简单的事情!

对于这10天的我来说,就像是捡到了失传已久的独孤九剑、九阳神功、降龙十八掌、乾坤大挪移等众多武林绝学,但可惜骨骼不惊奇没有练武天赋,浪费了这么多神器......

转载声明:
  若亲想转载本文到其它平台,请务必保留本文出处!
本文链接:/xwzj/2019-03-25/ssl-pinning.html

若亲不想直保留地址,含蓄保留也行。艺灵不想再看到有人拿我的技术文章到他的地盘或者是其它平台做教(装)程(B)而不留下我的痕迹。文章你可以随便转载,随便修改,但请尊重艺灵的劳动成果!谢谢理解。

亲,扫个码支持一下艺灵呗~
如果您觉得本文的内容对您有所帮助,您可以用支付宝打赏下艺灵哦!

Tag: App逆向 反编译 安卓模拟器 Burpsuite SSL Pinning Charles spy-debugger mitmproxy Thor Xposed

上一篇: 记一次成功解决anaconda-navigator闪退和SSLError的问题   下一篇: 破解视频之神x资讯网站某版块视频下载

评论区