7种抓包工具详细介绍

在处理IP网络的故障时,经常使用以太网抓包工具来查看和抓取IP网络上某些端口或某些网段的数据包,并对这些数据包进行分析,定位问题。

在 IMON项目里,使用抓包工具抓包进行分析的场景在EPG采集、引流模块和软终端监看模块,一般情况下EPG 采集和引流模块比较稳定,软终端监看还涉及SS5代理,这部分出问题的几率比较大,这是就有可能要现场维护人员抓包进行分析、排查、定位问题,确定是网络问题还是软件问题,如果是软件问题则要将抓回的包发给研发解决。

EPG 抓包可分为对鉴权过程、采集过程抓包验证,主要是通过通过抓包分析与IPTV 鉴 权服务器之间的TCP交互。

流媒体交互抓包可分为对组播、点播进行抓包,一般交互的协议分为IGMP、RTSP、RTMP等,组播一般是基于UDP的IGMP流,点播是基于RTP的RTSP流或基于TCP的RTMP流。

软终端抓包主要是抓取软终端与IPTV服务器交互、SS5与IPTV服务器交互的数据包,一般跟流媒体交互的报文协议差不多,也是分为组播IGMP 、点播 RTSP等协议,不过经过测试发现江苏的部分组播(可能是用户不同所致)发送的是RTSP的包。

一、Fiddler

Fiddler 是一个使用 C# 编写的 http 抓包工具。它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。所以 Fiddler 经常被运用在网络爬虫抓包、HTTP API 测试、手机抓包等场景。

推荐原因:

  • 操作简单,上手容易,学习成本低。

  • 能够抓取 HTTP/HTTPS 协议的数据包。

  • 支持伪造 CA 证书来欺骗浏览器和服务器,从而实现解密 HTTPS 数据包。

  • 不仅支持抓取 PC 浏览器的数据包,而且支持抓取手机数据包。

  • 支持设置“断点”,从而能够修改 HTTP 的请求头信息以及请求体的数据。

二、Charles

Fiddler 虽然强大且好用,但是不支持 Mac OS 系统。Charles 是 Fiddler 在 Mac 系统上的代替品。目前 Charles 算是 Mac 系统上最好用的抓包工具。它使用 Java 语言开发的,所以安装以及使用之前,要事先安装好 Java 环境。另外,它还支持 Windows、Linux 等操作系统。

推荐原因:

  • 同样操作简单,使用方便。

  • 支持捕获 HTTP/HTTPS 的数据包

  • 支持修改网络请求参数

  • 支持截获网络请求并动态修改

  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

  • 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。

三、Wireshark

Wireshark 也可以在各个平台都可以安装使用,不过它的功能侧重点和 Charles&Fiddler 有所不同,它主要用来抓取网络中的所有协议的数据报文,对于分析网络协议以及网络问题方面非常专业!

Wireshark 工具的优点:

①可以选择特定的网卡进行流量的捕获,那么就只会抓取关心的网卡经过的数据,针对性很强;

②可以抓取所有协议的报文,并且抓取的报文可以完整的以 OSI 七层网络模型的格式显示,可以清晰的看到客户端和服务器之间每一个交互报文,以及每一个数据包的网络各层级的详细内容显示。所以,这个工具抓包非常适合学习和分析网络协议。

③提供了非常强大的过滤规则。Wireshark 可以提供捕获前过滤,也可以捕获后过滤,并且过滤规则非常详细,可以实现精度和细粒度非常高的包过滤;可以结合 TCPdump 使用,分析线上服务器(Linux 系统)下抓取的数据报文,定位线上问题。

Wireshark 工具的缺点:

如果要灵活的使用它需要具备一定的网络基础,对于初学者有一定的难度;

无法分析 https 数据包,由于 wireshark 是在链路层获取的数据包信息,所以获取到的 https 包是加密后的数据,因此无法分析包内容。当然,我们可以对 https 数据包进行解密, 但是操作具有一定的复杂度,可能要消耗很多时间。

四、BurpSuite

Burpsuite 工具也是基于 Java 语言开发的,所以它也可以跨各平台使用,包括Windows,MacOS 及 Linux 等系统平台。

Burpsuite 可以提供抓包功能,它的工作方式同样也是在浏览器和网站之间做了代理从而实现报文截取的;也能够修改数据内容并转发的功能;甚至还可以选择使用爬虫爬下网站相关的数据…

但是,它绝对不仅仅是一款抓包工具,它集成了很多实用的小工具可以完成更加强大的功能,比如 http 请求的转发、修改、扫描等。同时这些小工具之间还可以互相协作,在 BurpSuite 这个框架下进行定制的攻击和扫描方案。

所以这个工具很多功能测试的人员会使用它进行报文抓取和篡改数据,很多安全测试人员会借用它进行半自动的网络安全审计,开发人员也可以使用它的扫描工具进行网站压力测试与攻击测试,功能作用范围更加广泛。

不过它也有自己的缺点,就是不免费!每个用户一年的费用为 299$,使用成本相对来说有点高。

五、F12

F12 是众多抓包工具中最简单、最轻量级的,因为它是浏览器内置的开发者工具来提供捕获浏览器的数据报文的功能。它免安装,直接打开浏览器就可以直接使用,所有使用非常好上手,适合入门级别的新手学习。

它主要针对的是 HTTP 协议和 HTTPS 协议, 可以确认我们的网络数据包的一个状态, 通过分析请求和响应报文里面的内容, 分析出来请求数据和响应数据是否正确, 定位问题是前端问题还是后端问题。

而且 F12 作为浏览器的一部分,是数据收发的一端,抓取到的 HTTPs 报文是可以得到明文数据的;不过因为只能抓当前浏览器的收发报文,层次只能是在应用层 Http(s)协议,不能抓取其他的数据报文。

虽然 F12 抓包调试也能满足我们基本的测试工作需求,但是作用面和强大性和其他的抓包工具还是有一定差距的。

六、●TCPdump ●

TCPdump 我上周发过一篇文章专门介绍过,这是专门作用于 Linux 命令行的抓包工具,它可以提供非常多的参数来对网络数据包进行过滤和定义。

而它抓取到的报文可以直接打印在 Linux 的命令行界面,也可以进行保存成文件,并用 Wireshark 工具打开进行更加细致的分析。

tcpdump 的选项介绍:

-a将网络地址和广播地址转变成名字;

-d将匹配信息包的代码以人们能够理解的汇编格式给出;

-dd将匹配信息包的代码以c 语言程序段的格式给出;

-ddd将匹配信息包的代码以十进制的形式给出;

-e在输出行打印出数据链路层的头部信息;

-f将外部的Internet 地址以数字的形式打印出来;

-l使标准输出变为缓冲型形式;

-n不把网络地址转换成名字;

-t在输出的每一行不打印时间戳;

-v输出一个稍微详细的信息,例如在ip 包中可以包括ttl 和服务类型的信息;

-vv输出详细的报文信息;

-c在收到指定的包的数目后,tcpdump 就会停止;

-F从指定的文件中读取表达式,忽略其它的表达式;

-i指定监听的网络接口;

-r从指定的文件中读取包(这些包一般通过-w 选项产生 );

-w直接将包写入文件中,并不分析和打印出来;

-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议; )。

七、Linux系统下测试

软终端在通过SS5代理服务器进行接入IPTV 环境时,可能需要到 SS5所在的代理服务器上去抓包,抓包方式就是通过TCPDUMP命令来抓取,一般我们把与IPTV网口相关的所有包都抓下来存为PCAP文件进行分析。

抓包命令为tcpdump -i eth1 -wxx.pcap,这样可以把抓过来的包保存到linux 服务器的用户登录当前文件夹下,然后通过SSH 传到本地进行分析,当然了也可以通过过滤规则抓包,详见TCPDUMP的常用命令。

总结

综上所述,测试可以用的抓包工具非常多,然而它们各有各的优势,也有对应的不足,所以根据自己的使用场景,选择最适合的抓包工具才是最重要的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020-12-11

bios怎么恢复出厂设置? 1 第一步 打开电脑 在电脑出现开机提示时按下热键(一般是del或F2)就可以进入到bios设置界面 2 第二步 在bios设置界面中找到并选择“Load Optimized Default”, 然后按下回车键 3 第三步 在弹出窗口中选择“OK“ 然后回车键确定即可 …

JAVA序列化和反序列化的底层实现原理解析 更新时间:2019年11月27日 14:38:39 作者:myseries 这篇文章主要介绍了JAVA序列化和反序列化的底层实现原理解析,文中通

一、基本概念 1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程; (2)序列化:对象序列化的最主要的用处就是在…

笔记本电脑重启快捷键是什么

品牌型号:联想小新Air-14 2020 系统:win10 1909 64位企业版 部分用户可能电脑型号不一样,但系统版本一致都适合该方法。 用电脑用久了的朋友们都知道电脑的快捷键在哪里,笔记本电脑重启快捷键是什么?下面就给大家分享一下笔记…

MySQL max_allowed_packet设置及问题

异常摘要: [SQL] Query jeecgboot-mysql-5.7 start [ERR] 1153 - Got a packet bigger than max_allowed_packet bytes [ERR]原因分析: mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会受max_allowed_packet 参数限制&#xf…

新手iso系统怎么安装 新手安装iso镜像文件详细步骤

操作系统大多是iso格式的文件,尤其是Windows系统,都是.iso镜像,如果电脑可以正常使用,iso镜像文件只需解压出来就可以安装,但是对于新手来说,可能解压iso系统都是个问题,那么新手iso系统怎么安装…

Java获取一天的起止时间(Java8写法使用 LocalDateTime)

Calendar calendar new GregorianCalendar();// 0可以修改,0代表当前时间,-1代表前一天calendar.add(Calendar.DAY_OF_MONTH,0);//一天的开始时间 yyyy:MM:dd 00:00:00calendar.set(Calendar.HOUR_OF_DAY,0);calendar.set(Calendar.MINUTE,0);calend…

Windows10系统以太网显示“未识别的网络”如何解决

如果你的Win10系统电脑连不上网,那么可能会是三种情况导致的:受限未识别网络、拨号不成功或者网线没插好。其中,本地连接(以太网)提示“未识别的网络”情况是我们最经常碰到的。如果你的Win10系统无法访问网络,且在有线连接路由器…

Dubbo默认超时时间

默认超时时间为1秒(1000毫秒) 消费者单个服务的超时时间限制 DubboReference(version "1.0.0" ,timeout 2000)全局设置 dubbo:consumer:timeout: 2000测试代码:消费 DubboReference(version "1.0.0")public UserTestService userTestService;Testpub…

如何在bios里调节风扇转速 bios设置风扇转速的方法

CPU的温度对电脑的正常运行有很大的影响,如果温度过高那么电脑就不能正常工作,风扇在降低温度中发挥着很大的作用,那么如何在bios里调节风扇转速呢?下面就给大家分享bios设置风扇转速的方法。 1、启动电脑按快捷键进入BIOS里面,…

Java 中Date from()用法及代码示例

Java Date类的from(Instant inst)方法返回从Instant对象获取的date实例。 用法: public static Date from(Instant inst)参数:该方法采用一个Instant类型的参数inst,该参数需要转换。 返回值:该方法返回一个日期,该日期表示时间…

win7开机黑屏怎么解决?win7开机黑屏出现reboot and select的解决方法

很多用户有遇见电脑黑屏的情况,而且还出现 reboot and select proper boot deviceor insert boot media in selected boot device 的提示,win7开机黑屏怎么解决呢?可能是硬盘接口数据线出现松动了,也可能是硬盘坏了。今天小编整理了相关的教…

win10系统进入监护人模式的方法

现在很多的小学生也会一直玩电脑很多家长就担心影响孩子学习因此想要设置监护人模式但是不知道win10系统监护人模式怎么进入,今天就给你们带来了win10系统进入监护人模式的方法,快来看看吧。 win10系统进入监护人模式的方法: 1、首先点击左…

Java日期时间(LocalDate、LocalTime、LocalDateTime)

文章目录Java日期时间(LocalDate、LocalTime、LocalDateTime)前言1、LocalDate1.1、LocalDate常用API1.2、LocalDate 与 String 之间的转换1.3、LocalDate 与 Date之间的转换2、LocalTime2.1、LocalTime常用API2.2、LocalTime与 String 之间的转换3、Loc…

解决win10电脑声音太小的问题

右击任务栏声音图标,点击选择菜单中的“播放设备”。 如果声音图标未显示,请在控制面板(大图标查看方式)中,点击选择“声音”。 在声音对话框,点击选中扬声器,然后点击下面的“属性”。 在扬声器 属性对话框&#xff0…

win7 ie临时文件夹怎么修改存放位置

首先,鼠标左键双击打开Internet Explorer,然后点击右上角的设置图标,点Internet选项。 打开之后,找到并点击“设置” 打开之后,找到并点击“移动文件夹” 然后找一个存放IE临时文件的位置,设好了之后点确定。 要让IE临时文件的移动生效,要对移…

LocalDateTime工具类:根据当前、周、月、季度、半年、年等维度获取时间hutool工具包获取农历日期,生肖,传统节日

1. 简介 Java8提供了全新的日期处理包(java.time.*),根据Java8日期新特性封装日期时间工具类LocalDateTimeUtils。 2. 工具类方法目录 说明方法名称当前时间LocalDateTimeUtils.now()Date 转 LocalDateTimeLocalDateTimeUtils.convert(new…

笔记本蓝牙怎么打开

笔记本蓝牙有什么用呢?我们可以用蓝牙耳机连接上笔记本的蓝牙,然后就可以听音乐,看电影等操作。所以接下来就来给小伙伴说说怎么打开笔记本蓝牙。 以win8为例进行演示 1、首先,把鼠标拉倒最右下角,然后点设置。 2、然后&#x…

Java8时间间隔计算Period.between与LocalDate.until区别LocalDate,LocalDateTime计算两个时间的相差时间

记录一线上问题,编辑会员卡信息,有效期截止时间由2022-04-17修改为2023-04-18,操作成功之后显示剩余的有效天数为24天,实际上怎么也得有三百多天.之前本地测试一直没有问题,现将定位过程记录一下. 本地复测之后发现计算的是24天,果然有问题. Period period Period.between(Loc…

MySQL中DATE_FORMAT()函数的说明和简介

MySQL DATE_FORMAT函数简介 要将日期值格式化为特定格式,请使用DATE_FORMAT函数。 DATE_FORMAT函数的语法如下: DATE_FORMAT(date,format);DATE_FORMAT()函数接受两个参数: date:是要格式化的有效日期值format:是由…

win8升级win10出现错误代码1049怎么回事

最近有用户把自己的win8系统升级到win10后遇到了错误代码1049,那么这是咋回事呢?下面小编就给大家介绍一下win8升级win10出现错误代码1049的解决方法。 1、报错信息如下所示,完全不理解是什么意思,点击《转到存储》菜单,看到的是…