网络抓包工具及其原理

为什么要抓包

  • 查看网络接口的发包和回包,分析app的行为
  • 定位网络问题
  • 了解网络协议的细节
  • 通过篡改数据包构造某些场景的测试用例
  • 获取web网站的cookie session状态信息
  • 估计网络接口的性能

常见的抓包工具:

常见的网络抓包工具大体上按照抓包节点可以分成两类:
一种是通过代理中间服务截取协议包,例如Whistle,Charles,Fiddler,miniproxy一种是在网卡链路层截取数据包,例如warshark, tcpdump
还有像,Chrome浏览器的调试工具,这种属于工具本身内置的能力。

根据其实现方式,它们的能力界限各有特点。下面是一个大致的比较:

工具 适用平台 截包原理 配置和安装 主要功能和特点 优点 缺点
Fiddler Windows/Mac/Linux http代理 easy 支持基本的包过滤,内容查看,断点,重放,改包,弱网模拟以及自定义扩展等 功能齐全 经典版只能运行在Windows平台上,最近也有跨平台版本,但是不免费;扩展依赖老套的.Net框架,需要会写C#
Charles Mac/windows http代理 依赖jdk 支持断点调试,https包抓包,重放,改包,模拟3G慢速网络,模拟小型压力测试 功能比较全 不免费
Whistle 运行在浏览器上,跨平台 http代理 依赖nodejs 对于特定的http协议,有丰富的功能 只能抓http协议
Chrome/FireFox的网络分析工具 运行在浏览器上 无须安装,浏览器自带 可以满足基本的请求协议内容审查,重放的需求 使用方便直接 缺少一些抓包工具实现的一些高级高能,如rewrite,断点,弱网模拟,串改包内容的功能
tcpdump Linux/Windows/Mac 截取网卡包 Linux系统一般自带,不需要安装,可以直接使用 Unix like系统一般自带这个工具,命令行;在windows上安装依赖wincap Unix类的系统基本不需要安装。 使用时方便直接,尤其是在Unix-like的机器上,熟悉其命令可以开箱即用 命令行工具,数据都是白的,通常需要自己写脚本分析,有些用户喜欢在服务端抓取后交给warshark分析 对于加密协议包分析复杂,需要自行解密,包分析困难,要借住warshark
Warshark WIndows和Mac主流操作系统 截取网卡包 easy,依赖libcap warshark几乎可以抓取经由网卡的所有网络协议的数据包 需要学习 可以抓取几乎所有网络协议的数据 一般服务器没有UI,远程抓包需要办一些手续;对加密数据,如https需要用户自己想办法解包

总结:
通过以上的比较,大体上,这几个主流的抓包工具基本上可以满足我们日常的抓包需求

  1. 抓取http/https包, 抓取app手机应用的包,或有比较高级的需求,比如包篡改,app行为分析,首选Fiddler和whistle,或者用破解版的Charles(不提倡)。通常没有扩展和插件开发的需要,首选whistle,跨平台,能力几乎近似,但是如果你要考虑开发插件实现一些自己的定制化需求,就得具体看你熟悉哪种语言,熟悉C#当然使用Fiddler也是可以的,熟悉python用于爬虫,渗透场景可以使用mitmproxy ,Whistle的扩展需要对JavaScript和nodejs有一定的掌握。

  2. Web上的http/https请求,仅仅是希望看下数据请求参数和返回,获取uri,参数这些基本的诉求,可使用浏览器自带的http分析工具,没必要安装抓包工具

  3. 抓取其它协议,如tcp,直播协议HLS,RTMP这些低层次的网络协议包,首选warshark;简单的网络分析和问题定位在可以直接敲tcpdump命令,系统复杂的网络分析任务可使用warshark,warshark支持远程抓包,对于tcpdump的优势是它有UI可以比较友好地分析数据包

抓包工具能力图:


抓包能力概图
  1. rewrite

  2. replay

  3. breakpoint
    断点使得请求在发送之前暂停下来,你可以做一些事情,例如修改参数。断点支持再before request断点,这时可以改变请求参数,也可以在after response断点,这时可以改变回包参数;
    频繁的修改,可以用rewrite功能进行替换。

  4. throtting
    抓包工具一般也可用于调整Internet连接的带宽和延迟。这个功能可以用来模拟调制解调器的各种条件。
    比方说,带宽可以限制到每秒任意字节,利用这点可以模拟任何连接速度,延迟也可以设置为任意的毫秒数。从而大致上可以模拟一个弱网环境。

  5. proxy
    代理是抓包工具最基本的功能,通过代理,我们可以做一些基本的事情,查看网络协议的发送,接收细节
    在发送参数,和返回数据上作修改,进行开发调试

6.反向代理
反向代理在本地端口上创建一个 Web 服务器,该服务器透明地将请求代理到远程 Web 服务器。反向代理上的所有请求和响应都可能记录在 Charles 中。

如果您的客户端应用程序不支持使用 HTTP 代理,或者您想避免将其配置为使用代理,则反向代理非常有用。创建到原始目标 Web 服务器的反向代理,然后将客户端应用程序连接到本地端口;反向代理对客户端应用程序是透明的,使您能够查看 Charles 中以前可能无法查看的流量。

7 端口转发。
可以使用代理工具配置tcp/udp协议的端口转发 内网渗透中的端口转发

抓包原理

网络数据收发是一个数据流,我们要查看数据包的细节,一般的方法是,在客户端和服务器之间进行截获。
一般有两种方式:
一种是设置代理抓取http包,比如Charles、mitmproxy这些软件。
另一种是直接抓取经过网卡的所有协议包,其中最出名就是大名鼎鼎的wireshark以及linux自带的抓包软件tcpdump。

  • 在本地网卡出包前上抓,比如tcpdump从网卡的链路层抓取数据;
  • 伪造中间人代理服务器截获,服务器完成报文解析工作,并转发数据;
    Fiddler Charles和Whistle基本上都是这样实现的。
image.png

参考文档:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容