12个网络数据包分析工具,适用于系统管理员和安全分析师
您的网络是您业务运营的支柱。确保您了解其中的内部情况。
从许多方面来看,数字化业务的格局已经发生了一两次革命。从最初在Perl中编写的简单的链接,现在已经演变成在Kubernetes和其他编排框架上完全自动化运行的集群部署(对不起,这里有很多专业术语,但这是现在的事实!)。
但是,我不禁微笑地想到,基本原理与20世纪70年代相同。
我们所拥有的只是由物理电缆构成的抽象支持的抽象(好吧,也有虚拟网络,但你明白我的意思)。如果我们想要花哨一些,我们可以按照OSI模型将网络划分为不同层次,但说到底,我们总是在处理链接、路由器等,所有这些都有一个共同目标-数据包传输。
那么,什么是网络数据包?
无论我们在做什么-聊天、浏览、游戏、冲浪、购物-本质上都是两台计算机(网络)之间的数据包交换。一个“包”是在网络(或网络之间)中流动的最小信息单位,有一种明确定义的方法来构建和验证网络数据包(超出了本文的范围,但如果你感到冒险,可以点击这个链接)。
简单地说,每个数据包都代表一个链接,它在源头正确传输并在目的地验证。即使一个数据包到达的顺序有误,进程也会暂停,直到接收到正确顺序的所有数据包,然后它们才被组合在一起形成它们最初代表的数据(例如一张图片)。
现在我们了解了数据包,就可以了解网络分析器是做什么的了。它是一种允许您窥探您的网络上各个数据包的工具。
但是为什么您想要费心去做这个?让我们接下来讨论一下。
为什么我们需要分析数据包?
看起来数据包基本上是网络数据流中的基本构建块,就像原子是所有物质的基础一样(是的,我知道,这些不是真正的基本粒子,但对于我们的目的来说,这已经足够好了)。当涉及分析材料或气体时,我们从不去关心单个原子在做什么;那么,为什么要担心单个网络数据包在个别层面上的事情呢?除了我们已经知道的之外,我们还能知道什么呢?
当您之前没有被咬过一次时,很难向您推销数据包级别分析的重要性,但我会尝试一下。
数据包分析意味着深入了解并解决一些问题。通常情况下,当其他方法都失败时,您需要分析网络数据包。通常情况包括以下看似无望的场景:
- 尽管没有明显的违规行为,但秘密数据的不可解释丢失
- 在似乎没有任何证据的情况下诊断应用程序缓慢的问题
- 确保您的计算机/网络没有遭到侵入
- 证明或证伪攻击者未从您的WiFi中链接
- 弄清楚为什么您的互联网连接速度缓慢,尽管流量很低
总而言之,数据包分析属于某些具体的、固定的类型的证据。如果您知道如何进行数据包分析并拥有一个快照,您就可以避免被错误地指控进行黑客攻击,或仅仅被指责为一名无能的开发者或管理员。
关于一个真实故事,我认为在博客文章中发现的这条评论 here 是异常的(在这里再次重复一下):
我所在公司的一个关键应用程序出现了性能问题,在客户部署中遇到了困难。这是一款股票定价应用程序,被世界各地金融公司的股票行情中心使用。如果你在2000年左右有一份401(k),它很可能依赖于这个应用程序。我进行了你描述的分析,特别是TCP行为分析。我确定问题是在操作系统供应商的TCP实现中。错误的行为是,每当发送堆栈进入拥塞控制时,它就无法恢复。这导致发送窗口非常小,有时只有几个MSS的倍数。
我花了很长时间与操作系统供应商的客户经理和开发人员支持人员进行斗争,他们无法理解问题,我的解释,或者问题不可能出现在应用程序中,因为应用程序对TCP的操作毫不知情。就像对墙壁说话一样。我每次电话会议都从 square 开始。最后,我与一位可以进行良好讨论的人通话。原来他给堆栈加入了RFC1323扩展!第二天,我手头上就有一份操作系统的补丁,从那时起,产品就完美地工作了。
开发人员解释说,在拥塞控制状态下,会将带有有效负载的传入ACK错误地分类为DUPACK。
对于像HTTP这样的半双工应用程序,这种情况永远不会发生,但是我正在支持的应用程序始终在套接字上双向发送数据。
当时我没有得到太多管理支持(我的经理甚至因为“总是想用嗅探器”来解决问题而对我大声喊叫),除了我,没有人关注操作系统供应商的TCP实现是否是问题的根源。独自从操作系统供应商那里解决问题使得这个胜利特别甜蜜,也使我积累了大量权威,让我能够去做我想做的事情,也导致了那些最有趣的问题出现在我的桌子上。
如果你不想阅读那段文字,或者如果它没有多大意义,这位先生面临着性能问题,而这些问题被归咎于他的应用程序,而且管理层如预期地没有提供任何支持。只有通过彻底的数据包分析才能证明问题不在应用程序中,而是操作系统处理网络协议的方式!
修复不是对应用程序的调整,而是由操作系统开发人员提供的补丁!😮
哎呀哎呀……如果不进行数据包级别的分析,你认为这个人会在哪里呢?很可能会失去工作。如果这不能让你相信数据包分析(也称为数据包嗅探)的重要性,那我不知道还有什么能让你相信。🙂
现在你知道数据包分析是一种超能力了,我有好消息:进行数据包级别的分析并不难!
由于功能强大且简单易用的数据包嗅探工具,从数据包级别的分析中获取信息就像阅读销售仪表盘一样简单。话虽如此,你需要对网络内部发生的事情有一些更深入的了解。但是,这里没有火箭科学,没有需要掌握的扭曲逻辑,只是纯粹的常识。
如果你在使用这些工具时阅读其文档,很快你就会成为专家。😀
Wireshark
Wireshark 是一个旧项目(始于1998年),在深入研究网络方面几乎成为行业标准。令人印象深刻的是,考虑到它完全是由志愿者组成的组织,受到一些慷慨赞助商的支持。Wireshark仍然是开源的(并非在GitHub上,但代码可以在here找到),甚至还有一个技术conference以它的名字命名!
Wireshark的许多功能包括:
- 支持数百种网络协议。
- 与许多文件格式兼容(tcpdump(libpcap),Pcap NG,Catapult DCT2000,Cisco Secure IDS iplog,Microsoft Network Monitor,Network General Sniffer®(压缩和未压缩),Sniffer® Pro和NetXray®等)。
- 适用于几乎所有平台(Linux,Windows,macOS,Solaris,FreeBSD等)。
- 实时读取以太网,IEEE 802.11,PPP / HDLC,ATM,蓝牙,USB,令牌环等数据。
- 实时gzip解压缩。
- 支持大量解密协议(WPA / WPA2,SNMPv3等)
- 广泛的VoIP分析
- 颜色规则以加快视觉扫描速度
查看这个令人惊叹的在线课程,了解更多信息teach you mastering Wireshark。
在终端中寻找Wireshark?当然,试试Termshark
tcpdump
如果您是老派(即命令行控),tcpdump是为您准备的。
它是另一个那些标志性工具(如curl)之一,始终与时俱进,以至于几乎所有其他“更高级”的工具都建立在它的基础上。正如我之前说的,它没有图形界面,但该工具绰绰有余。
但是安装它可能会很麻烦;尽管tcpdump随附在大多数现代Linux发行版中,但如果您的发行版没有,那么您将不得不从源代码构建。
tcpdump命令简短而简单,旨在解决特定问题,例如:
- 显示所有可用接口
- 只捕获一个接口
- 将捕获的数据包保存到文件中
- 只捕获失败的数据包
等等。
如果您的需求简单,并且需要运行快速扫描,tcpdump可能是一个很好的选择(特别是如果您键入tcpdump
并发现已经安装!)。查看这篇文章,了解一些实时的tcpdump command examples。
Tproxy
Tproxy是一个简单的开源命令行工具,用于在网络上代理TCP连接。Tproxy使用Go编程语言编写,并作为Go二进制文件打包,因此可以在所有现代Linux和macOS平台上使用。
下面的图片显示了监视Mysql连接的命令行:
它的主要用途是代理HTTP连接并检查HTTP请求和响应的内容。它还可以用于代理其他协议,如SOCKS或TCP。它可以用于在两个主机之间代理TCP连接,或者在实时连接上分析流量。它对于调试和测试使用TCP作为传输协议的应用程序,以及构建TCP代理服务非常有用。
它的目标是提供一个易于使用的界面,以tcpdump命令行实用程序为基础,允许用户代理TCP连接并执行其他高级网络分析,而无需理解底层TCP协议。
下面的命令行显示了gRPC连接:
它充当TCP代理,允许您连接到远程服务和应用程序,就像您在本地机器上一样。它允许在远程主机上构建自定义TCP服务,类似于反向TCP代理,可在处理使用TCP的应用程序时提供各种安全性、故障排除和性能改进。
以下是Tproxy的几个更多用途
- 它对于调试和优化TCP连接非常有用。
- 它还对于了解其他代理程序的工作原理非常有用,例如Burp Suite和ZAP。
- 它可以用于在两个主机之间或主机与远程TCP服务(如数据库或Web服务)之间代理TCP连接。
- 监视MySQL连接和gRPC连接,并检查连接可靠性的重传率和RTT。
大多数用户会发现Tproxy简化了他们的工作流程,并允许他们进行复杂的网络分析和分析Web应用程序,而无需修改应用程序或网络本身。该工具可以从GitHub下载。
NetworkMiner
作为一种法医网络分析工具(FNAT),NetworkMiner是您会遇到的最佳数据包级别分析器之一。它是一个开源工具,可以被动分析网络,并提供了一个令人印象深刻的GUI界面,用于分析可以显示单个图像和其他传输的文件。
但这还不是全部。NetworkMiner还具有其他出色的功能,例如:
- IPv6支持
- 解析PCAP文件
- 从SSL加密流量中提取X.509证书
- 通过IP处理
- 适用于多种类型的流量,如FTP,TFTP,HTTP,SMB,SMB2,SMTP,POP3等。
- 操作系统指纹识别
- 地理IP定位
- 命令行脚本支持
请注意,其中一些功能在商业版本中可用。
Fiddler
与其他被动网络嗅探器不同,Fiddler是一种位于设备和外部世界之间的工具,因此需要一些设置(这就是为什么他们将其命名为“Fiddler”的原因吗?😉)。
这是一个可定制的(使用FiddlerScript)免费工具,具有悠久而卓越的历史,因此,如果您的目标是像专家一样嗅探HTTP/HTTPS流量,那么Fiddler就是最好的选择。
使用Fiddler,您可以做很多事情,尤其是如果您想戴上黑客帽子:
- 会话操作:打开HTTP头和会话数据,以任何您想要的方式进行修改。
- 安全测试:可以模拟中间人攻击,并为您解密所有HTTPS流量。
- 性能测试:分析页面加载(或API响应)时间,并查看响应的哪个部分是瓶颈。
如果您感到迷失,documentation非常好,强烈推荐使用。
WinDump
如果您想念tcpdump的简单性,并希望将其带到Windows系统中,请向WinDump打招呼。安装后,您可以通过在命令行中键入“tcpdump”来使用它,就像在Linux系统上使用该实用程序的方式一样。
请注意,实际上没有什么需要安装的;WinDump是一个二进制文件,可以直接运行,只要您安装了Pcap库实现(推荐使用npcap,因为winpcap已不再开发)。
BruteShark
BruteShark 是一种有效的网络取证分析工具(NFAT),您可以使用它来处理和检查网络流量,例如PCAP文件和直接从网络接口捕获的流量。
它包括重构TCP会话,构建网络映射,提取强加密密码的哈希值,将哈希值转换为Hashcat格式以进行离线暴力破解攻击。
该项目的主要目的是帮助负责分析网络流量和识别弱点的网络管理员和安全研究人员。
BruteShark有两个版本可用:基于图形用户界面(GUI)的Windows应用程序和Linux和Windows的CLI工具。该解决方案中包含的一些项目甚至可以独立使用于Windows和Linux机器上的网络流量分析。
BruteShark还可以执行各种操作,如提取DNS查询、文件雕刻、提取VoIP呼叫(SIP,RTP)、为用户和网络节点构建网络图表、使用Hashcat提取认证哈希(NTLM,HTTP-Digest,CRAM-MD5,Kerberos等)以及检索和编码密码和用户名。
所有项目都是通过.Net Standard和.Net Core实现的,以实现跨平台和现代支持。这个解决方案提供了一个三层架构,并包括一个或多个项目,包括每个层的PL、BLL和DAL。
通过DAL(数据访问层),该项目通过使用WinPcap、libpcap等驱动程序以及SharpPcap等包装库来读取PCAP的原始文件。类似地,BLL(业务逻辑层)负责网络信息分析(TCP、数据包等),PL利用交叉项目,并参考BLL和DAL层。
OmniPeek
对于那些每秒流经大量数据的大型网络,其他人使用的工具可能会不够用。如果你面临相同的问题,也许值得一看。
这是一个用于分析网络的性能、分析和工具,特别适用于在需要低级能力和全面仪表板之间的平衡。
Capsa
如果你只关注Windows平台,Capsa也是一个值得考虑的竞争者。它有三个版本:免费版、标准版和企业版,每个版本都有不同的功能。
话虽如此,即使是免费版本也支持300多个协议,并具有一些有趣的功能,如警报(在满足某些条件时触发)。标准版更强大,支持1000多个协议,并允许您分析对话和重建数据包流。
总的来说,对于Windows用户来说是一个不错的选择。
EtherApe
如果你想要强大的可视化和开源,EtherApe是一个很好的选择。虽然预构建的二进制文件仅适用于少数几个发行版,但源代码可用(在SourceForge和GitHub上都有),所以你可以自己构建。
以下是我个人认为EtherApe的亮点:
- 多节点、彩色编码的监控。
- 支持许多数据包格式,如ETH_II、802.2、803.3、IP、IPv6、ARP、X25L3、REVARP、ATALK、AARP、IPX、VINES、TRAIN、LOOP、VLAN等(实际上还有更多)。
- 从“线缆”实时读取数据或从tcpdump文件读取。
- 支持标准名称解析。
- 最新版本的GUI已迁移到GTK3,使用体验更加愉快。
CommView
如果你是一个只使用Windows的商店,并且重视优先支持的便利性,推荐使用CommView。这是一个功能强大的网络流量分析工具,具有高级功能,如VoIP分析、远程跟踪等。
最让我印象深刻的是它能够将数据导出为多种开放和专有格式,如Sniffer®、EtherPeek™、AiroPeek™、Observer®、NetMon、Wireshark/Tcpdump和Wireshark/pcapng,甚至普通的十六进制转储。
Wifi Explorer
最后是Wifi Explorer,它有一个Windows的免费版本和一个Windows和macOS的标准版本。如果你只需要WiFi网络分析(这在现在是标准配置),那么Wifi Explorer会让生活变得更加轻松。
这是一个设计精美、功能丰富的工具,可以直接进入网络的核心。
荣誉提及:在结束这篇文章之前,我要提到一款我偶然发现的仅适用于macOS的网络分析器——Little Snitch。它内置了防火墙,因此它能立即让您完全控制所有流量,这是一个重大的长远收益(虽然可能看起来有些麻烦)。
接下来呢?
您还应该探索这些network monitoring software以提高基础设施的可见性。如果您想在网络和安全领域建立职业生涯,那么请查看一些best online courses here。