美文网首页iOS开发技巧计算机网络#iOS#HeminWon
Wireshark for Mac版 抓包的基本用法

Wireshark for Mac版 抓包的基本用法

作者: DoubleShawn | 来源:发表于2016-08-22 11:47 被阅读13010次

    Wireshark我使用了一段时间,才知道这是抓包神器,最全最牛逼的抓包软件。当时我之所以要学习Wireshark,是因为要抓取手机端今日头条的请求,看今日头条的懒加载是如何做的,从而无耻学习。我就这么直白,不服来打我呀,打我呀打我呀。

    o( ̄ヘ ̄o#) 哼,言归正传。
    今日头条的手机端的URL为:http://m.toutiao.com

    早期的时候,我使用Charles(大花瓶)抓取的时候,今日头条的请求方式还是普通的GET请求。但是不知道从何时开始,大花瓶已经抓不住他了,已经和那些普通妖艳贱货不一样了。
    已经变得这么的高冷,让别人无法接近。

    从Charles(具体使用方法在本文的最下面)口中得知。

    Charles抓包
    我们已经不能从GET和POST中获取到任何的新闻信息,排除了某宝,二手东,和广告的连接,发现了4个Method为Connect有嫌疑的连接。
    犯罪嫌疑人有4人,如下:
    https://e.crashlytics.com
    https://a3.bytecdn.cn
    https://i.snssdk.com
    https://is.snssdk.com

    首先排除第一个Crashlytics,他是统计Crash的工具。
    然后排除第二个bytecdn。CDN服务商,网络服务商。
    好的接下来两个就是重头戏了。

    Charles能抓到的信息 CONNECT抓到的乱码

    得到的数据辣眼睛

    看来Charles已经只能帮我到这了,Charles虽然很方便,GET和POST请求是他的强项,能直接显示URL、请求头、参数名、参数格式,如果返回的是图片,还能直接在Charles中看到图片。但是Charles处理不了TCP、ICMP、UDP、DNS。看到的数据也有限,基本就是应用层的信息,如果想看到物理层的数据帧情况,链路层的帧头部信息,IP的包头部信息,那Charles已然GG了,而且通过大神指点,知道这明摆的就是TCP传输,用Wireshark解析,这好使。

    我们先熟悉一下 Wireshark for Mac 的界面。


    Wireshark的页面

    点击接口名称之后,就可以看到实时接收的报文。Wireshark会捕捉系统发送和接收的每一个报文。如果抓取的接口是无线并且选项选取的是混合模式,那么也会看到网络上其他报文。

    使用Wireshark时最常见的问题,是当您使用默认设置时,会得到大量冗余信息,而且这些信息包括Mac的还有iPhone的,数据量比Charles大的多,以至于很难找到自己需要的部分,所以一定得学会用过滤器。
    这就是为什么过滤器会如此重要。它们可以帮助我们在庞杂的结果中迅速找到我们需要的信息。

    捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中。需要在开始捕捉前设置。
    显示过滤器:在捕捉结果中进行详细查找。他们可以在得到捕捉结果后随意修改。

    比较常用的过滤器:1.输入Method 2.还有就是IP的搜索。
    例如,输入“TCP”就会只看到TCP报文。输入的时候,Wireshark会帮助自动完成过滤条件。

    输入“TCP”就会只看到TCP报文

    最经常用的:
    ip.src == 10.2.189.0 or ip.dst == 10.2.189.0

    通过IP查找

    其他常用的:
    tcp dst port 3128 显示目的TCP端口为3128的封包。

    ip src host 10.1.1.1 显示来源IP地址为10.1.1.1的封包。

    host 10.1.2.3 显示目的或来源IP地址为10.1.2.3的封包。

    src portrange 2000-2500 显示来源为UDP或TCP,并且端口号在2000至2500范围内的封包。

    not imcp 显示除了icmp以外的所有封包。(icmp通常被ping工具使用)

    src host 10.7.2.12 and not dst net 10.200.0.0/16 显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。

    数据处理:


    数据处理

    如图上,可以发现。
    Frame: 物理层的数据帧概况
    Ethernet II: 数据链路层以太网帧头部信息
    Internet Protocol Version 4: 互联网层IP包头部信息
    Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
    Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议(但是这里没显示出来)

    物理层和链路层还有头部的信息,如果只是普通抓包的话,我们完全用不上。
    传输层协议和HTTP协议是大头。其中有一些明显的数据。(比如URL,请求头啊)

    万事俱备只抓包

    此时找到今日头条的TCP消息,右键,追踪流,TCP流。


    追踪TCP

    今日头条!Gotta catch!!


    Gotta catch

    终于抓到TCP的内容了,建立了长连接以后,
    蓝色的是我对今日头条发送的信息,红色是对方返回的信息。数据还在破解中,抓包过程到此结束。


    TCP的流

    总结

    今日头条把原先的GET和POST方法,经过了TCP的一轮封装,两个IP地址通过端口长连接以后,这是第一层保护;接着我会给服务器发送我请求的信息,请求的信息通过封装后(估计是又回到了Get请求)给服务器发送,服务器再给我返回信息,这是第二层保护;最后服务器发送的信息,是乱码!!!我的天,居然还是乱码。
    嗨!真的好气啊。
    这是第三层保护,通过某种加密方式,把返回的json数据加密了,返回的内容完全看不懂,只有通过App的解密,才能知道今日头条的信息。
    真有你的。

    大体介绍下Charles的流程:

    1.配置iPhone或Android 的wifi配置。首先保证Mac电脑和手机是在同一个局域网内。
    2.设置手机wifi配置,在HTTP代理中选择手选代理,服务器填写Mac的IP地址。端口使用8888。
    (查看Mac的IP地址:系统偏好设置-->网络-->状态-->其IP地址为:xx.xx.xx.xx )
    3.此时再打开Charles,接着Charles会问你,是否允许该设备代理上网,选择Allow。
    4.此时手机的所有GET和POST请求,都逃不过Charles的追踪。

    相关文章

      网友评论

      • 成功的失败者:我也想知道怎么解密这个密文
      • badmask:所以,楼主最后用「今日头条」的数据了没:sob:
        「自如」这个 App 这次升级后,似乎也是介么个情况。
      • ducks:好像没有达到最终结果 ,就是解密 。。 看到明文。。
      • wind1004:赞一个!写的很清楚,比我百度的其他教程好多了,厉害!
      • 3c98ccc235cd:写的不错 谢谢楼主分享 好人一生平安
        DoubleShawn:@3c98ccc235cd 看你的头像啊。。这头像你都用了多少年了
        3c98ccc235cd:@DoubleShawn 就这样都知道我是谁 果然是大神
        DoubleShawn:@3c98ccc235cd 你名字怪能记住的。。
      • 无名lxl:虽然偶从不用这个,但是看看还是涨姿势了
      • atme:写的真不错 大家值得一看
      • 嘴爷:来了,蜗牛上高速,技术贴,赞一个
        DoubleShawn:@嘴爷 共勉!
      • 兔兔狗::+1:🏼:+1:🏼:+1:🏼
        DoubleShawn:@兔兔狗 谢谢兔兔狗~
      • 秦锭:不错
      • 蛋蛋家的小毛驴:不错
        DoubleShawn:@仓鼠仓鼠 谢谢支持!!

      本文标题:Wireshark for Mac版 抓包的基本用法

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