HTTPS抓包与手机抓包,看这一篇就够了

作者: Mocha_Lee | 来源:发表于2017-11-16 00:50 被阅读661次

    前言

    关于抓包的话题我之前也写过,这次主要针对HTTPS与手机抓包。最近这方面工作做的不少,一边记录一边分享。


    正文

    1 HTTPS抓包

    对于HTTPS的抓包在之前我的文章中也写到过,关注微信公众号“燕幕自安”查看我的历史文章。主要是使用Fiddler4来实现的,上次说过的,这次就不说了。

    不可否认,Fiddler4是在windows下是很友好、很好用的网络分析软件了,它主要针对HTTP(S)协议,不仅仅可以做报文获取,重发等功能也很好用。

    这次要介绍的是另一个神器--Charles.

    原理:所有针对HTTPS抓包的原理都是一样的,通过做中间代理人,可观察到明文报文,类似于中间人攻击(MITM),如果要理解这一点需要对HTTPS的密钥交换和证书有所了解。不赘述。

    下面有请Charles出场。

    姓名:Charles

    用途:HTTP协议网络报文分析

    (Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP andSSL / HTTPStraffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).)

    适用平台:Windows、Mac、Linux

    下载地址:https://www.charlesproxy.com/download/

    下载完成,正确安装之后,试用版本需要在打开时等待10s,破解也很简单,(链接:http://pan.baidu.com/s/1qYTz48s 密码:t9el)将jar文件替换到charles安装目录下的lib目录中即可。

    然后是配置安装根证书,为了让计算机信任我们的证书,我们需要将Charles提供的证书安装在计算机上,如下:

    如果此时证书还是不被信任的,让不信任变成信任:打开IE浏览器—>工具—>Internet选项—>内容—>证书—>把中级证书颁发机构中的charles证书导出来—>再把导出来的证书导入到受信任的根证书颁发机构中。这样就ok了。

    这样的环境只能抓取非SSL加密的报文,如果需要抓取SSL加密的链接,继续设置SSL。如下:

    (写*:443是为了抓取去往所有站点的443端口数据)

    现在就可以拦截所有HTTPS数据报文了。如下:

    2 手机数据抓包

    针对手机数据抓包,给出两个办法。

    1. 使用上述Charles配置的环境,对手机报文抓取

    2. 利用手机APPPacket Capture拦截收集数据报文

    下面分别说这两种方案。

    方案1

    之前我们已经部署好了Charles抓包的环境,现在我们只要将手机的数据报文流经PC上的Charles即可。

    为此,我们将电脑和手机链接在同一局域网内(使用同一wifi即可),然后查看计算机的ip地址,windows之下使用cmd命令ipconfig即可,然后在手机连接Wifi的界面设置代理,如下:

    charles默认代理端口为8888,如果修改了此处对应修改。

    安卓也有类似的操作界面,长按修改网络什么的。(暴露了自己的土豪手机hiahiahia)。

    设置好以后需要在手机端安装证书,在浏览器里访问chls.pro/ssl 来自动下载安装证书(需要设置手机解锁密码)。

    安卓手机到这一步就完成了,【重要】iphone手机需要在设置->通用->关于手机->证书信任设置里面打开该证书的开关。

    此时,在手机里使用APP,在Charles里面就能看到访问的数据信息了,包括HTTPS。(初次连接的手机Charles会弹窗需要点一下Allow)

    方案2

    Packet Capture是很强大的一个网络分析APP,在我分析华为云备份的协议报文时,手机始终不信任Charles证书,所有报文均被加密,后来是该应用拯救了我。使用简便,不用证书等设置,下载打开即可使用。

    APP在Google应用市场就有,不能翻墙的话,点这里下载:https://www.coolapk.com/apk/app.greyshirts.sslcapture

    安装完成后界面如下:

    点击绿色箭头进行全局捕获,点击带1那个绿色箭头可对某一应用分别捕获。

    完成后,点击列表中的某次抓取查看详情。如下:

    在该界面,点击右上角的下载按钮可以保存文件成pcap格式,通过PP助手等导出后可以在PC上的WireShark上打开分析。


    后记

    最近做了很多协议逆向的工作,感觉协议逆向要是和APP逆向结合起来才嗯那个威力更大,不然在协议中莫名其妙出现的密文或者不知名的字符串等,根本无法破解,需要与APP逆向结合,才能完整了解和模拟整个通信协议。

    以上提到的软件(wireshark、charles、fiddler4、packet capture)均是我正在使用的,如果你有使用上的障碍或者有好的软件推荐,请在后台留言(留言请注明邮箱,我看到会回复邮件说明)与我取得联系。

    如果觉得文章靠谱,也请该文章给需要的人。

    谢谢支持!


    非经过本人同意,严禁转载。

    如有问题,请关注公众号留言(注明邮箱),我看到会及时回复的。

    相关文章

      网友评论

      • 菠萝蜜菠萝炒饭:为什么我都设置了,还是抓不到解密的包,抓到的包和没设置一样,是我的软件版本太低么,手机也设置验证charles 的证书了,电脑也装了,端口也设置 * 443, SSL 也enable 了,代理也设置了,就是没卵用
      • fcb7b1dcda45:我还想问下我下载的绿色箭头只有一个,没有针对某个应用的箭头,是因为版本的原因吗?
        Mocha_Lee:关注公众号“燕幕自安” 回复作者 就有我的联系方式啦 @君莫愁_4b1c
        fcb7b1dcda45:@Mocha_Lee 为什么我保存后,在手机文件里面找不到啊?方便加下好友吗?
        Mocha_Lee:你试一下文中提供的下载链接 @君莫愁_4b1c
      • fd93bb4b8ebc:楼主,请问一下抓包问题,就是能不能抓取直播地址,类似Chrome里面network选项下边的media,类似那种,能够直播看到m3u8的下载地址,手机一直没发抓取。
        Mocha_Lee:@君莫愁_4b1c
        一种是显示乱码,修改右边显示的类型就可以 一种是本来数据就不是可见字符 这种就得分析hex了
        我估计你抓到的可能是后者
        可以导出来用wireshark看 更直观一点
        fcb7b1dcda45:使用packet capture显示数据是乱码怎么解决?
        Mocha_Lee:你可以试试用Charles抓一下看看,我没有试过抓取直播的报文和分析,但是如果你是想下载直播视频的话,Github上有个工具应该会帮助到你,我们同事试过可以支持很多视频网站的下载和直播下载。工具名:youtube-dl,github地址:https://github.com/rg3/youtube-dl

      本文标题:HTTPS抓包与手机抓包,看这一篇就够了

      本文链接:https://www.haomeiwen.com/subject/wbykvxtx.html