本文概述
- Wireshark
- tcpdump
- NetworkMiner
- Fiddler
- WinDump
- OmniPeek
- Capsa
- EtherApe
- CommView
- Wifi Explorer
从许多方面来看, 数字业务的格局已经发生了一两次革命。从用Perl编写的简单CGI脚本开始, 现在已经发展为在Kunernetes和其他编排框架上完全自动化运行的集群部署(抱歉, 行话不多, 我根本不补充;这就是如今的一切!) )。
文章图片
典型的容器化, 分布式现代Web应用程序(来源:medium.com)
但是我不禁要笑, 以为基本面仍然与1970年代相同。
我们所拥有的只是对构成网络的硬而物理电缆所支持的抽象的抽象(好吧, 有虚拟网络很好, 但你可以理解)。如果我们想花哨的话, 可以按照OSI模型将网络划分为多个层, 但总而言之, 我们始终在处理TCP / IP协议(警告, 大量阅读!), ping, 路由器, 所有这些都有一个共同的目标-数据包的传输。
那么, 什么是网络数据包?
无论我们在做什么-聊天, 视频流, 游戏, 冲浪, 购买东西-本质上来说, 这是两台计算机(网络)之间的数据包交换。 “ 数据包” 是网络中(或网络之间)流动的最小信息单元, 并且有一种定义明确的方法来构造和验证网络数据包(超出了本文的范围, 但是如果你喜欢冒险的话, 这里有更多)。
文章图片
网络中的数据包流(来源:training.ukdw.ac.id)
用更简单的术语来说, 每个数据包都代表链中的一个链路, 并在源处正确传输, 并在目的地进行验证。即使单个数据包到达了或按顺序发送, 该过程也将中止, 直到收到了所有正确顺序的数据包, 然后才将它们放在一起以形成它们最初表示的数据(例如, 图像)。
既然我们了解了什么是网络, 就变得了解了网络分析仪的功能。该工具可让你查看网络中的各个数据包。
但是你为什么要去麻烦呢?让我们接下来讨论。
为什么我们需要分析数据包?
看起来数据包几乎是网络数据流中的基本构建块, 就像原子是所有物质的基础(是的, 我知道, 这些不是真正的基本粒子, 但是对于我们的目的而言, 这已经足够好了) 。在分析材料或气体时, 我们从不理会单个原子在做什么;那么, 为什么要担心单个级别的单个网络数据包呢?除了我们已经知道的以外, 我们还能知道什么?
如果你以前没有被咬过, 很难说出数据包级分析的重要性, 但是我会尝试的。
数据包分析意味着使你的手变脏并深入管道中找出问题所在。通常, 当所有其他方法均失败时, 你需要分析网络数据包。通常, 这包括看似无望的场景, 如下所示:
- 尽管没有明显的泄露, 但秘密数据莫名其妙地丢失
- 在似乎没有任何证据的情况下诊断缓慢的应用程序
- 确保你的计算机/网络没有受到损害
- 证明或证明攻击者没有piggy带你的WiFi
- 找出尽管流量低但为什么服务器成为瓶颈的原因
文章图片
都是关于大脑! (来源:dailydot.com)
关于真实故事, 我认为在此处找到的博客文章中的此评论是例外的(以防万一, 此处转载):
对我公司而言至关重要的应用程序出现了性能问题, 在客户部署中却面目全非。它是一种股票定价应用程序, 在全球金融公司的股票行情工厂负责人中使用。如果你在2000年左右拥有401(k), 则可能取决于此应用程序。我对你所描述的种类(特别是TCP行为)进行了分析。我指出问题出在操作系统供应商的TCP实施中。有问题的行为是, 每当发送堆栈进入拥塞控制时, 它就永远不会恢复。这导致发送窗口很小, 有时只是MSS的几倍。与操作系统供应商的客户经理和开发人员支持人员进行了一段时间的战斗, 他们不了解该问题, 我的解释或该问题” 不可能” 存在于应用程序中, 因为该应用程序非常不了解TCP欺骗。就像在墙上说话。我每次电话会议都从第一方开始。最终我和一个可以和他讨论很好的人通电话。事实证明, 他将RFC1323扩展放入了堆栈!第二天, 我手上有了操作系统的补丁程序, 从那时起该产品运行良好。开发人员解释说, 存在一个错误, 当堆栈处于拥塞控制时, 该错误会导致带有有效负载*的传入ACK被错误分类为DUPACK。对于半双工应用程序(例如HTTP), 这永远不会发生, 但是我一直支持的应用程序始终在套接字上双向发送数据。当时我没有来自管理层的大量支持(我的经理甚至对我” 总是想使用嗅探器” 来解决问题大喊大叫), 除了我以外, 没有人将OS供应商的TCP实现视为源问题。我自己从操作系统供应商那里获得解决方案的努力使这次胜利尤为可观, 使我赚了很多钱来做自己的事, 并导致桌上出现了最有趣的问题。
文章图片
快炸死!
如果你不想阅读那段文字, 或者如果你觉得这没有多大意义, 那么这位先生可能会遇到性能问题, 这应归咎于他的应用程序, 并且正如预期的那样, 管理层给予了零支持。只是彻底的数据包分析证明了问题不在于应用程序, 而在于操作系统如何处理网络协议!
该修补程序不是应用程序中的优化, 而是操作系统开发人员提供的补丁! ????
男孩, 哦, 男孩。 。 。如果没有数据包级别的分析, 你认为这个人会在哪里?可能是他的工作。如果这不能使你相信数据包分析的重要性(也称为数据包嗅探), 我不知道会怎么做。 ????
既然你知道数据包分析是一种超级能力, 那么我有个好消息:这样做并非一帆风顺!
得益于功能强大且易于使用的数据包分析器(嗅探器), 从数据包级分析中收集信息就像读取销售仪表板一样容易。就是说, 你需要的不仅仅是网络知识。但话又说回来, 这里没有火箭科学, 也没有可以掌握的扭曲逻辑, 只是普通常识。
如果你在网络上使用它们时开始阅读其中一种工具的文档, 那么你很快就会成为专家。 ????
Wireshark 【10个系统管理员和安全分析师的网络数据包分析仪】Wireshark是一个古老的项目(始于1998年), 在深入研究网络方面几乎是行业标准。当你认为它是纯粹由志愿者组织, 并得到一些慷慨赞助者支持的组织时, 给人留下深刻的印象。 Wireshark仍然是开源的(不在GitHub上, 但是代码可以在这里找到), 甚至还召开了一次技术会议!
文章图片
Wireshark的众多功能包括:
- 支持数百种网络协议。
- 可与许多文件格式(tcpdump(libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network GeneralSniffer?(压缩和未压缩), Sniffer?Pro和NetXray?等)互操作。
- 可以在几乎所有平台(Linux, Windows, macOS, Solaris, FreeBSD等)上运行。
- 从以太网, IEEE 802.11, PPP / HDLC, ATM, 蓝牙, USB, 令牌环等实时读取数据。
- 动态进行gzip解压缩。
- 支持解密协议的负载(WPA / WPA2, SNMPv3等)
- 广泛的VoIP分析
- 着色规则可加快视觉扫描速度
tcpdump 如果你是老学校(请阅读铁杆命令行迷), 则tcpdump适合你。
它是标志性的Linux实用程序(例如curl)中的另一个, 它仍然像以往一样重要, 以至于几乎所有其他” 更高级” 的工具都可以在其上构建。就像我之前说过的那样, 这里没有图形化的环境, 但是该工具可以弥补它的不足。
但是安装它可能会很痛苦。尽管tcpdump与大多数现代Linux发行版捆绑在一起, 但如果没有, 则最终将不得不从源代码进行构建。
文章图片
tcpdump命令简短易用, 旨在解决特定问题, 例如:
- 显示所有可用的界面
- 仅捕获其中一个接口
- 将捕获的数据包保存到文件
- 仅捕获失败的数据包
如果你的需求很简单并且需要运行快速扫描, 则可以考虑使用tcpdump(特别是如果你键入tcpdump并发现它已经安装!)。
NetworkMiner NetworkMiner宣传自己是法医网络分析工具(FNAT), 是你会遇到的最好的数据包级分析器之一。这是一个开放源代码工具, 可以被动地分析网络, 并具有令人印象深刻的GUI界面, 可以显示单个图像和其他传输的文件。
文章图片
但这还不是全部。 NetworkMiner具有出色的其他功能, 例如:
- IPv6支持
- 解析PCAP文件
- 从SSL加密流量中提取X.509证书
- IP封装
- 适用于多种类型的流量, 例如FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3等。
- 操作系统指纹
- Geo IP本地化
- 命令行脚本支持
Fiddler 与其他无源网络嗅探器不同, Fiddler位于你的设备与外界之间, 因此需要进行一些设置(这就是为什么他们将其命名为” Fiddler” 吗??)。
这是一款可自定义的(使用FiddlerScript)免费工具, 具有悠久的历史, 因此, 如果你的目标是像老板一样嗅探HTTP / HTTPS流量, 那么Fiddler是你的理想之选。
文章图片
Fiddler有很多可以做的事情, 尤其是如果你想穿上黑客帽衫时:
- 会话操作:翻录打开的HTTP标头和会话数据, 以所需的任何方式对其进行修改。
- 安全测试:可让你模拟中间人攻击并为你解密所有HTTPS流量。
- 性能测试:分析页面加载(或API响应)时间, 并查看响应的哪一部分是瓶颈。
WinDump 如果你错过了tcpdump的简单性, 并想将其引入Windows系统, 请向WinDump打招呼。安装完成后, 可以通过在命令行中键入” tcpdump” 来工作, 就像在Linux系统上使用该实用程序一样。
请注意, 本质上没有任何安装。 WinDump是一个二进制文件, 可以在安装了Pcap库实现的情况下立即运行(建议使用npcap, 因为不再开发winpcap)。
OmniPeek 对于每秒有成千上万MB数据流经过的大型网络, 其他所有人所使用的工具可能会一发不可收拾。如果面对同样的情况, OmniPeek可能值得一看。
这是一种用于分析网络的性能, 分析和取证工具, 尤其是在你需要低级功能和综合仪表板的情况下。
文章图片
资料来源:sniffwifi.com
如果你是一家规模较大的组织, 希望提供认真的服务, 请在此处进行30天的试用。
Capsa 如果你只关心Windows平台, Capsa也是一个有力的竞争者。它具有三个版本:免费, 标准和企业版, 每个版本具有不同的功能。
文章图片
也就是说, 即使是免费版本也支持300多种协议, 并具有有趣的功能, 例如警报(在满足某些条件时触发)。该标准产品具有上述优势, 支持1000多种协议, 并允许你分析对话并重建数据包流。
总而言之, 这是Windows用户的可靠选择。
EtherApe 如果你需要强大的可视化和开源功能, 那么EtherApe是一个不错的选择。虽然预构建的二进制文件仅可用于少数Linux发行版, 但源文件可用(在SourceForge和GitHub上均可), 因此可以选择自行构建。
文章图片
在我看来, 这就是使EtherApe出色的原因:
- 多节点, 彩色编码监控。
- 支持大量数据包格式, 例如ETH_II, 802.2、803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN等(实际上, 很多很多) 。
- 从” 线路” 或tcpdump文件中实时读取数据。
- 支持标准名称解析
- 从最新版本开始, GUI已移至GTK3, 从而带来了更加愉悦的体验。
文章图片
最让我印象深刻的是它能够将数据导出为几种开放和专有格式使用的格式, 例如Sniffer?, EtherPeek?, AiroPeek?, Observer?, NetMon, Wireshark / Tcpdump和Wireshark / pcapng, 甚至是普通十六进制转储。
Wifi Explorer 列表中的最后一个是Wifi Explorer, 它具有Windows的免费版本以及Windows和macOS的标准版本。如果你仅需要进行WiFi网络分析(这几乎是当今的标准), 那么Wifi Explorer将使生活变得轻松。
设计精美, 功能丰富的工具, 可直接切入网络的核心。
文章图片
值得一提的是:关闭这篇文章而不提及我偶然发现的macOS专有网络分析仪-Little Snitch是无益的。它内置了防火墙, 因此具有立即使你完全控制所有流量的额外好处(这看起来很痛苦, 但从长远来看是很大的收获)。
如果你想在网络和安全领域发展职业, 请在此处查看一些最佳的在线课程。
生活中没有什么是完美或完整的, 这个清单也是如此。
我敢肯定, 我错过了许多其他免费/商业/开发中的数据包分析器(嗅探器)。如果是这样, 请帮助我根据你的意见使本文更好。 ?
推荐阅读
- 什么是DQL()
- 如何重命名weblogic域名()
- 如何在WebLogic中生成线程转储
- BEA-000362服务器失败。Parsing Failure in config.xml: java.lang.IllegalArgumentException
- netstat命令在Linux上的用法
- C语言_结构体总结
- 红日ATT&CK实战系列靶机
- 华为防火墙网关间通过IKE方式协商IPSec VPN隧道(共享密钥认证)
- 重读 ES6 标准入门(第3版)