好用的抓包工具(免费的抓包工具)
-
-
类目:知识大全
-
联系人:
-
微信号:
-
Q Q 号:
-
手机号:
-
浏览量:
336
【商户信息】
【货源详情】
01 概述
无论是开发还是测试,工作中经常需要抓住包的时候。 正文主要介绍如何在各个平台下,高效的抓包。
目前的抓包软件总体可以分为两类:
一种是设置代理以捕获http包,就像Charles、mitmproxy等软件一样。
另一种是直接抓住通过网卡的所有协议包。 其中最有名的是著名的wireshark和linux附带的捕获软件tcpdump。
重点介绍抓住这四个包的工具的特点和使用方法。
02 Wireshark
wireshark想必大多数程序员都不会陌生。wireshark在各个平台都可以安装使用,它可以抓取经过指定网卡的所有协议。wireshark虽然很强大,但是对初学者其实不是很友好。
这是因为它强大到可以抓住所有的包,让初学者在使用时对广阔的数据流感到迷茫。 初学者需要认真学习如何过滤自己感兴趣的数据包,但如果不熟悉wireshark的过滤语法,过滤数据包就很困难。
过滤语法简单介绍
wireshark的过滤语法总结起来其实很简单,比如http://www.Sina.com/contains,=,等等。 例如,如果想只看http的协议内容的话,直接在过滤器输入框中输入http就可以了。
以协议开头,后面可以跟着协议的属性,然后加上一些判断符号,
例如我在如下图:
如果使用目标ip或源ip过滤包,则不能使用http协议作为前缀,因为它们是ip协议的属性。只想看http协议的请求头中uri包含’/api’的协议,就可以这么写:
上面显示了目标计算机的ip为61.135.217.100,并且协议是http数据包。
wireshark支持各种协议。 可以从右上角的expression打开搜索支持协议。 还可以找到协议支持的属性,然后输入所需的值。 软件会自动为我们构建过滤语句。
通过目标ip来过滤可以这么写:
能够抓住所有协议软件包的强大功能
抓到的包很容易分析
优点:
联机服务器没有GUI,只有命令行,因此不能用于联机服务器
无法解析https数据包。 由于wireshark是在链路层获取的包信息,因此获取的https包是加密数据,因此无法解析包的内容。 当然,您可以解密https数据包,但操作会很复杂,可能需要很多时间。
03 缺点:
tcpdump是linux上自带的一个抓包软件(mac也有),功能强大,也可以抓取经过指定网卡的所有协议包。
由于是命令行工具,tcpdump抓取到的包不易于分析,一个常见的做法是将tcpdump抓到的包输出到某个文件,然后将文件拷贝下来用wireshark分析。
Tcpdump
一些简单的过滤参数:
然后,可以直接在wireshark中打开test.cap以直观地分析包。
抓包内容输出到文件:
tcpdump-r test.cap
04 用tcpdump输出cap文件包:
Charles是一款http抓包工具,它是通过代理来实现的抓包。也就是我们在访问网页时需要配置代理,将代理指向Charles监听的端口,之后我们的http请求都会发向Charles的端口,之后Charles会帮我们转发并记录协议内容。
Charles的使用非常简单,部署好代理后,Charles开始抓起包。
Charles
上图中的unknown显示了https加密的数据,因此可以看到不符合协议的具体内容。 通过安装Charles的证书,Charles也可以确认https协议的具体内容。
我们可以直接通过Charles的GUi查看包的内容:
很容易使用。 只需设置代理地址
掌握https协议的构成也很简单,安装查尔斯的证书就可以了
05 优点
mitmproxy是python编写的http捕获工具,虽然只支持http捕获工具,但具有非常强大的特性。 除了捕获外,还可以执行拦截、再现等操作。 和Charles一样,其原理也是基于代理的,使用时代理需要设定为指向它。
mitmproxy是一个命令行工具,但它还提供了mitmweb工具,用户可以在网页上使用该工具。 mitmproxy还支持用户自己编写插件,可以编写脚本来处理请求并发出修改后的请求。
1、安装
必须先在计算机上安装python3和pip3.然后使用pip3进行安装
pip 3安装最大代理
如果在安装mitmproxy期间modulenotfounderror : nomodulenamed“_ SSL”出现错误,则必须安装OpenSSL,然后重新编译并安装python3
安装openSSL,然后运行pip 3安装最小代理
mitmproxy
安装后,在命令行中直接键入mitmproxy即可进入该交互界面。
此时,mitmproxy可以开始侦听8080端口(缺省),然后前往浏览器配置代理。 在浏览器中安装代理的方式有很多,这里不多介绍。
设置代理后,向mitmproxy发送访问浏览器的请求,mitmproxy根据规则屏蔽请求,必须配置屏蔽规则才能屏蔽。 经过的请求全部被输出。
在交互界面中,可以使用快捷键操作请求。 输入问号吗? 中,可以查看快捷键的文档。
2、使用
请求过滤
在请求列表的交互式界面中,可以在按f键后输入一些过滤规则。
能按下具体的过滤语法吗? 按“键,然后按箭头键右侧”—’或l键。
请求拦截
可以通过按I键阻止指定的请求。 如果按mitmproxy收到指定条件的请求,请等待执行resume操作,然后将请求转发给——,而不是立即转发。 在此期间,您也可以手动修改请求。
红色字体表示请求被阻止。 然后,可以按a键恢复请求,也可以输入a键恢复所有被阻止的请求。
查看/编辑请求
将指示光标移动到某个请求上,按回车按钮,即可显示请求的内容。 或者也可以用鼠标直接单击请求。
然后,用左右箭头键可以看到request、response、detail等信息。
要编辑请求,请在此界面中键入e,然后选择要编辑的内容。
然后进入vim编辑界面,编辑相应内容(保存后生效)。
重发请求
当mitmproxy的光标指向某个请求时,按r键可以重新发送这个请求(可以在重新发送之前编辑这个请求)。
按“:”键可以输入命令,通过过滤规则可以批量重新发送请求
replay.client是mitmproxy的内置命令,也可以自己编写命令。 指令的编写可以参考官方网站的文档,但这里不介绍。
插件开发
您可以创建插件并在重新启动时指定插件。 mitmproxy处理请求时会执行插件链,以便您可以编辑和发送请求。
3、下面介绍一些常用的快捷键和功能
该方法处理每个请求并打印序列号。 在mitmproxy -s test.py中启用插件。 使用插件可以绑定各种连接事件。 感兴趣的朋友可以自己去mitmproxy官网阅读文档,这里就不多介绍了。
保存抓到的请求数据
w可以用快捷键将这次捕获的请求包保存到文件中。
mitm proxy-r文件允许您读取和分析以前捕获的请求信息。
借用官网的插件demo:
命令行操作。 可以在没有GUI界面的服务器上使用
06 优点:
对于这几个抓包神器,我总结了下使用场景:
如果只掌握http协议,则推荐使用mitmproxy。 mitmproxy丰富的功能不仅能满足我们包的需求,还能提高我们的工作效率。 例如,测试可以抓住包,一键发送请求,再现错误,或者在开发调试中可以修改请求内容
对于没有在线GUI的服务器:建议使用tcpdump。 虽然mitmproxy还支持命令行捕获,但最好不要在生产服务器上随意安装第三方插件。 此外,大多数服务器都配备了tcpdump。 我们可以把要求的内容输出到文件里,通过复制用wireshark分析自己的电脑。
要捕获非http协议,请直接访问wireshark。 力量很强。 对于Charles,使用mitmproxy后,Charles感觉几乎不能使用。 Charles似乎也可以在编辑后发送,但我觉得不容易使用。 我可能不是很亲近。