好用的抓包工具(免费的抓包工具)

2022-07-23 03:38:26  浏览:336  作者:管理员
  • 好用的抓包工具(免费的抓包工具)

  • 【商户信息】

  • 类目:知识大全


  • 联系人:


  • 微信号:

  • 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似乎也可以在编辑后发送,但我觉得不容易使用。 我可能不是很亲近。

评论区

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机新闻】

返回顶部