01概述
无论是开发还是测试,在工作中经常会遇到需要抓包的时候 。本篇文章主要介绍如何在各个平台下,高效的抓包 。
目前的抓包软件总体可以分为两类:
- 一种是设置代理抓取http包,比如Charles、mitmproxy这些软件 。
- 另一种是直接抓取经过网卡的所有协议包,其中最出名就是大名鼎鼎的wireshark以及linux自带的抓包软件tcpdump 。
02Wireshark
wireshark想必大多数程序员都不会陌生 。wireshark在各个平台都可以安装使用,它可以抓取经过指定网卡的所有协议 。wireshark虽然很强大,但是对初学者其实不是很友好 。
这也正是由于它太强大,它可以抓取所有包,所以初学者在使用时面对茫茫数据流不知所措 。初学者需要认真的去学习怎么过滤得到自己感兴趣的包,但是如果不熟悉wireshark的过滤语法,要过滤数据包将举步维艰 。
过滤语法简单介绍wireshark的过滤语法总结起来其实也很简单,就是以协议开头,后面可以跟着协议的属性,然后加上一些判断符号,比如contains、==、>、<等等 。比如只想展示http的协议内容,则直接在过滤器输入框中输入http即可 。
如下图:
比如我只想看http协议的请求头中uri包含’/api’的协议,就可以这么写:
文章插图
如果想通过目标ip或者来源ip来过滤包,就不可以以http协议为前缀了,因为这些是ip协议的相关属性 。通过目标ip来过滤可以这么写:
文章插图
上面表示目标机器的ip是61.135.217.100并且协议是http的包 。
wireshark支持很多种协议,我们可以通过右上角的expression来打开搜索支持的协议,还可以找出协议支持的属性,然后填入期待的值,软件会自动为我们构建过滤语句 。
文章插图
优点:
- 功能强大,可以抓取所有协议的包
- 抓到的包容易分析
- 由于线上服务器没有GUI,只有命令行,因此无法在线上服务器使用
- 无法分析https数据包,由于wireshark是在链路层获取的数据包信息,所以获取到的https包是加密后的数据,因此无法分析包内容 。当然,我们可以对https数据包进行解密,但是操作具有一定的复杂度,可能要消耗很多时间 。
03Tcpdump
tcpdump是linux上自带的一个抓包软件(mac也有),功能强大,也可以抓取经过指定网卡的所有协议包 。由于是命令行工具,tcpdump抓取到的包不易于分析,一个常见的做法是将tcpdump抓到的包输出到某个文件,然后将文件拷贝下来用wireshark分析 。
一些简单的过滤参数:
文章插图
抓包内容输出到文件:
文章插图
之后我们可以把test.cap直接用wireshark打开,就可以很直观的分析包了 。
用tcpdump输出cap文件包:
04Charles
Charles是一款http抓包工具,它是通过代理来实现的抓包 。也就是我们在访问网页时需要配置代理,将代理指向Charles监听的端口,之后我们的http请求都会发向Charles的端口,之后Charles会帮我们转发并记录协议内容 。Charles的使用非常简单,配置好代理后,Charles就开始抓包了 。
我们可以直接通过Charles的GUi查看包的内容:
文章插图
上图中的unknown表示https加密后的数据,所以看到不协议的具体内容 。我们可以通过安装Charles的证书,让Charles也可以查看https协议的具体内容 。
文章插图
优点
- 使用简单,只需配置一下代理地址就可以
- 要抓取https协议的配置也很简单,只要安装下charles的证书就可以了
05mitmproxy
mitmproxy是Python写的一款http抓包工具,虽然只支持http抓包,但是它的特性非常强大,它不仅可以抓包,还可以对请求进行拦截、重现等操作 。和Charles一样,它的原理也是基于代理,使用的时候需要设置代理指向它 。
推荐阅读
- Fiddler 抓包工具 - 全网最全最细教程,没有之一
- 网络监控的所有接线布线方式
- 2021年,全球顶级网络安全公司TOP20有哪些?
- 青钱柳茶的禁忌,青钱柳茶的四大禁忌
- cup是什么中文意思?cup是什么网络用语
- 为什么孙悟空能戏弄三清?四大天王和孙悟空
- 四大菩提子排名,龙眼菩提子最新价格
- 使用EMNIST数据集训练第一个pytorch CNN手写字母识别神经网络
- 网络安全学习:内网渗透案例,打破渗透瓶颈
- 东吴四英杰第一位是谁?东吴四大将