caesar0301/awesome-pcaptools

GitHub: caesar0301/awesome-pcaptools

一个精心整理的网络流量处理与 pcap 文件分析工具的 Awesome 列表合集,涵盖了流量捕获、分析、提取等各个环节。

Stars: 3378 | Forks: 475

## 简介 [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 本项目不包含任何源代码或文件。我只想制作一个用于处理 pcap 文件的工具列表,以供网络流量研究使用。获取更多 awesome 列表,请查看 https://github.com/sindresorhus/awesome **许可证**: CC0 1.0 Universal (CC0 1.0)。 ## Linux 命令 * **Bmon**: (Bandwidth Monitor) 是一个类似于 nload 的工具,用于显示系统上所有网络接口的流量负载。输出内容还包括一个图表以及数据包级别的详细信息。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/bmon-640x480.png) * **Bwm-ng**: (Bandwidth Monitor Next Generation) 是另一个非常简单的实时网络负载监控器,用于报告系统上所有可用网络接口数据传入和传出的速度摘要。[截图](https://a.fsdn.com/con/app/proj/bwmng/screenshots/10965.jpg/245/183/1) * **CBM**: (Color Bandwidth Meter) 一个微型且简单的带宽监控器,用于显示通过网络接口的流量。没有其他多余的选项,只实时显示并更新流量统计信息。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/cbm.png) * **Collectl**: 以类似于 dstat 的风格报告系统统计信息,并且像 dstat 一样,它收集有关各种不同系统资源(如 cpu、内存、网络等)的统计数据。这里是一个关于如何使用它来报告网络使用情况/带宽的简单示例。[截图](https://www.cse.wustl.edu/~jain/cse567-08/ftp/hw/collectl.png) * **Dstat**: 是一个多功能工具(使用 python 编写),可以监控不同的系统统计信息,并以批处理模式报告它们,或将数据记录到 csv 等文件中。此示例展示了如何使用 dstat 来报告网络带宽 [截图](https://www.tecmint.com/wp-content/uploads/2016/09/Dstat-Linux-Monitoring.png) * **Ifstat**: 以批处理模式报告网络带宽。其输出格式便于使用其他程序或工具进行记录和解析。[截图](https://community.linuxmint.com/img/screenshots/ifstat.png) * **Iftop**: 测量流经单个 socket 连接的数据,它的工作方式与 Nload 不同。Iftop 使用 pcap 库捕获进出网络适配器的数据包,然后将大小和数量相加,以得出正在使用的总带宽。虽然 iftop 报告单个连接使用的带宽,但它无法报告特定 socket 连接所涉及的进程名称/ID。但由于基于 pcap 库,iftop 能够过滤流量,并按照过滤器指定的条件报告选定主机连接上的带宽使用情况。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/iftop.png) * **Iptraf-ng**: 是一个交互式且彩色的 IP 局域网监控器。它显示单个连接以及在主机之间流动的数据量。它是已经停止维护的 iptraf 的一个持续维护的分支。[截图](https://wiki.ipfire.org/addons/iptraf-ng/iptraf-ng_monitor.png) * **Jnettop**: [Jnettop](https://sourceforge.net/projects/jnettop/) 是一个流量可视化工具,能够捕获流经其运行主机的流量,并按使用的带宽对数据流进行排序和显示。[截图](https://web.archive.org/web/20130509072433if_/http://jnettop.kubs.info/wiki/?binary=internal%3A%2F%2F76195466cc3bca92f8de7b404e240844.gif) * **Nethogs**: 是一个小型的“网络 top”工具,显示各个进程使用的带宽,并将最耗费资源的进程排在列表顶部。在遇到突发带宽激增时,可以快速打开 nethogs 找到负责的进程。Nethogs 会报告 PID、用户和程序的路径。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/nethogs.png) * **Netload**: 显示关于当前流量负载以及自程序启动以来传输的总字节数的简短报告。没有其他更多的功能。它是 netdiag 的一部分。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/netload.png) * **Netwatch**: 是 netdiag 工具集的一部分,它也显示本地主机与其他远程主机之间的连接,以及每个连接上的数据传输速度。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/netwatch.png) * **Nload**: 是一个命令行工具,允许用户分别监控传入和传出的流量。它还会绘制出一个图表来指示这些流量,图表的比例可以调整。操作简单易用,但不支持太多选项。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/nload.png) * **Pktstat**: 实时显示所有活动连接以及通过它们传输数据的速度。它还显示连接类型(即 tcp 或 udp),以及涉及到的 http 请求的详细信息。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/pktstat.png) * **Slurm**: 是“又一个”网络负载监控器,用于显示设备统计信息以及一个 ascii 图表。它支持 3 种不同风格的图表,每种都可以使用 c、s 和 l 键来激活。功能简单,slurm 不显示有关网络负载的更多细节。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/slurm.png) * **Speedometer**: 另一个小巧而简单的工具,仅用于绘制通过指定接口的传入和传出流量的漂亮图表。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/speedometer.png) * **Tcptrack**: 类似于 iftop,使用 pcap 库捕获数据包并计算各种统计数据,例如每个连接使用的带宽。它还支持标准的 pcap 过滤器,可用于监控特定的连接。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/tcptrack.png) * **Trafshow**: 报告当前的活动连接、其协议以及每个连接上的数据传输速度。它可以使用 pcap 类型的过滤器过滤掉连接。[截图](https://www.binarytides.com/blog/wp-content/uploads/2014/03/trafshow.png) * **Vnstat**: 与大多数其他工具有些不同。它实际上运行一个后台服务/daemon,并一直记录数据传输的大小。接下来,可以用它来生成网络使用历史的报告。[截图](https://www.howtoforge.com/images/vnstat/big/vnstat9.png) ## 流量捕获 * [Libpcap/Tcpdump](https://www.tcpdump.org/): tcpdump 的官方网站,一个强大的命令行数据包分析器;以及 libpcap,一个用于网络流量捕获的便携式 C/C++ 库。 * [Deepfence PacketStreamer](https://github.com/deepfence/PacketStreamer): 高性能的远程数据包捕获和收集工具,面向云原生环境的分布式 tcpdump。 * [Ngrep](https://github.com/jpr5/ngrep/): 努力提供 GNU grep 的大部分常见功能,并将其应用到网络层。ngrep 是一个支持 pcap 的工具,允许你指定扩展的正则或十六进制表达式,以匹配数据包的数据载荷。它目前可以跨以太网、PPP、SLIP、FDDI、令牌环和空接口识别 TCP、UDP 和 ICMP,并像 tcpdump 和 snoop 等更常见的数据包嗅探工具一样理解 bpf 过滤器逻辑。[截图](https://www.cyberciti.biz/media/new/cms/2012/12/ngrep.png) * [clj-net-pcap](https://github.com/ruedigergad/clj-net-pcap): `clj-net-pcap` 是一个用于 Clojure 的数据包捕获库。clj-net-pcap 使用 jNetPcap 并在其周围添加了便利功能,以提高易用性。一篇[关于 clj-net-pcap 的论文](http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6903107)在 COMPSACW 2014 期间发表。 * [jNetPcap](https://sourceforge.net/projects/jnetpcap/): jNetPcap 是一个适用于 Java 的数据包捕获库,可用于 Linux 和 Windows。jNetPcap 利用 libpcap 或 WinPcap,并采用 Java Native Interface (JNI) 来使用 libpcap/WinPcap 提供的功能。 * [Arkime](https://arkime.com/) Arkime(原 Moloch)是一个大规模、开源、带索引的数据包捕获和搜索工具。 * [n2disk](https://www.ntop.org/products/traffic-recording-replay/n2disk/) (商业软件): 具备索引功能的多千兆网络流量记录器。n2disk 是一款网络流量记录应用程序。使用 n2disk,您可以从实时网络接口捕获多千兆速率(在适当的硬件上可超过 10 Gigabit/s)的完整网络数据包,并将它们写入文件而不会丢失任何数据包。 * [Netis Packet Agent](https://github.com/Netis/packet-agent): 这是一个通过 GRE 隧道进行远程数据捕获的实用程序,可让您轻松地从网卡接口捕获数据包,使用 GRE 封装它们并将其发送到远程机器进行监控和分析。 * [OpenFPC](https://github.com/leonward/OpenFPC): OpenFPC 是一组脚本组合,可提供一个轻量级的全包网络流量记录和缓冲工具。其设计目标是允许非专业用户在 COTS 硬件上部署分布式网络流量记录器,同时与现有的警报和日志工具集成。 * [PCAPdroid](https://github.com/emanuele-f/PCAPdroid): PCAPdroid 是一款 Android 应用程序,可让您在无需 root 的情况下监控和导出设备的网络流量。流量可以以 PCAP 格式导出,以便使用 Wireshark 等流行工具(甚至是实时)进行分析。内置的流量监控器可让您检测由用户应用和系统应用建立的可疑连接。 * [PF_RING](https://www.ntop.org/products/packet-capture/pf_ring/): PF_RING 是一种新型网络套接字,可显著提高数据包捕获速度。适用于 Linux 内核 2.6.32 及更高版本。无需修补内核。提供感知 PF_RING 的驱动程序以加速数据包捕获。 * [pmacct](https://github.com/pmacct/pmacct): 是一小套多用途的被动网络监控工具。它可以对转发平面数据进行统计、分类、聚合、复制和导出,即 IPv4 和 IPv6 流量;通过 BGP 和 BMP 收集和关联控制平面数据;收集和关联 RPKI 数据;通过 Streaming Telemetry 收集基础设施数据。 * [softflowd](https://github.com/irino/softflowd): 是一个基于流的网络监控器,使用 libpcap 混杂模式监听网络接口并导出 NetFlow 数据。 * [TTT](https://www2.sonycsl.co.jp/person/kjc/kjc/software.html#ttt): (Tele Traffic Tapper) 是 tcpdump 的另一个衍生工具,但它能够进行实时、图形化和远程的流量监控。ttt 不会取代 tcpdump,相反,它帮助你找出用 tcpdump 深入排查的方向。ttt 监控网络并自动提取时间窗口内流量的主要贡献者。图表默认每秒更新一次。 * [Yaf](https://tools.netsa.cert.org/yaf/yaf.html): 它是一款可靠的软件,非常稳定,能够从 pcap 生成流记录。这对于索引庞大的 pcap 甚至进行数据包捕获非常有用。最新版本甚至可以提取载荷并放入流记录中。 * [sharppcap](https://github.com/dotpcap/sharppcap): 完全托管的、跨平台(Windows、Mac、Linux)的 .NET 库,用于从实时设备和基于文件的设备捕获数据包。libpcap 和 npcap 的可靠且强大的封装。 ## 流量分析/检测 * [Brim](https://www.brimsecurity.com/): Brim 融合了 Zeek 日志的丰富性与数据包的细节。它集成了两者的优点。虽然 Zeek 日志可以快速回答几乎所有问题,但当您需要深入研究细节时,您仍然可以快速访问数据包。Wireshark 总是只需点击一下即可使用。 * [BruteShark](https://github.com/odedshimon/BruteShark): 是一个开源、跨平台的网络取证分析工具,具有多种功能。它包括:密码提取、显示可视化网络地图、重建 TCP 会话、提取加密密码的哈希值,甚至将其转换为 Hashcat 格式以执行离线暴力破解攻击。 * [AIEngine](https://bitbucket.org/camp0/aiengine): 是下一代交互式/可编程的数据包检测引擎,具备无需人工干预的学习能力、NIDS 功能、DNS 域分类、网络收集器等。AIEngine 还帮助网络/安全专业人员识别流量并开发签名,以便在 NIDS、防火墙、流量分类器等上使用。 * [CapAnalysis](http://www.capanalysis.net/ca/) - CapAnalysis 是一个 Web 可视化工具,专为信息安全专家、系统管理员以及所有需要分析大量捕获的网络流量的人士设计。提供了一个[可用的](http://pcap.capanalysis.net/)在线 Web 演示以供测试。 * [CapTipper](https://github.com/omriher/CapTipper): 恶意 HTTP 流量探测器。 * [Chopshop](https://github.com/MITRECND/chopshop): 是一个由 MITRE 开发的框架,旨在帮助分析人员创建和执行基于 pynids 的解码器和 APT 手法检测器。 * [CoralReef](https://www.caida.org/tools/measurement/coralreef/): 是由 CAIDA 开发的软件套件,用于分析由被动式互联网流量监控器收集的数据。它提供了一个编程库 libcoral,类似于带有 ATM 和其他网络类型扩展的 libpcap,可通过 C 和 Perl 使用。 * [DPDK](https://www.dpdk.org/): 是一组用于快速数据包处理的库和驱动程序。它被设计为可在任何处理器上运行。最初支持的 CPU 是 Intel x86,现在已扩展到 IBM Power 8、EZchip TILE-Gx 和 ARM。它主要运行在 Linux 用户空间。FreeBSD 移植版支持 DPDK 的部分功能。 * [DPKT](https://github.com/kbandla/dpkt): Python 数据包创建/解析库。 * [ECap](https://web.archive.org/web/20170715080351/https://bitbucket.org/nathanj/ecap/wiki/Home): (External Capture) 是一个带有 Web 前端的分布式网络嗅探器。Ecap 很多年前(2005 年)就写好了,但在 tcpdump-workers 邮件列表中的一篇帖子要求一个类似的应用程序……所以它来了。如果大家感兴趣的话,再次更新并开发它会是一件很有趣的事。 * [EtherApe](https://etherape.sourceforge.io/): 是一个为 Unix 设计的图形化网络监控器,模仿 etherman 制作。具有链路层、IP 和 TCP 模式,以图形方式显示网络活动。主机和链接的大小随流量而变化。支持按协议进行颜色编码。支持以太网、FDDI、令牌环、ISDN、PPP 和 SLIP 设备。它可以过滤要显示的流量,可以从文件中读取流量,也可以直接从网络实时读取。 * [Ettercap](_URL_51/>): 是一套用于通过 ARP 欺骗(一种 MitM 攻击形式,请在您控制下的网络中使用)进行流量捕获和分析的工具。 * [HttpSniffer](https://github.com/caesar0301/http-sniffer): 一个多线程工具,用于从 PCAP 文件中嗅探 TCP 流统计信息和嵌入的 HTTP 头部。每个承载 HTTP 的 TCP 流都会以 JSON 格式导出到文本文件中。 * [Ipsumdump](https://github.com/kohler/ipsumdump): 将 TCP/IP 转储文件汇总为一种易于人类和程序读取的自描述 ASCII 格式。Ipsumdump 可以从网络接口、tcpdump 文件和现有的 ipsumdump 文件中读取数据包。必要时它会透明地解压 tcpdump 或 ipsumdump 文件。它可以对流量进行随机抽样,根据内容过滤流量,匿名化 IP 地址,并按时间戳对来自多个转储的数据包进行排序。此外,它还可以选择创建包含实际数据包数据的 tcpdump 文件。将它作为插入模块与 CLICK 配合使用也很方便。 * [ITA](https://web.archive.org/web/20181016104652/http://ita.ee.lbl.gov/html/traces.html): The Internet Traffic Archive 是一个受管理的存储库,旨在支持广泛访问 Internet 网络流量的跟踪记录,由 ACM SIGCOMM 赞助。这些跟踪记录可用于研究网络动态、使用特征和增长模式,并为跟踪驱动的模拟提供素材。该存储库也开放用于接收减少原始跟踪数据到更易管理形式的程序、生成合成跟踪记录的程序和分析跟踪记录的程序。 * [Joy](https://www.brimsecurity.com/): joy 是一个被开发出来的流量分析和解析工具。部分目的是协助对加密流量(如 HTTPS 流量)进行分类。它能够将 pcap 文件解析为可用的 json 文件,其中包含有关捕获统计信息和特征的详细信息。 * [Libcrafter](https://github.com/pellegre/libcrafter): 是一个用于 C++ 的高级库,旨在简化网络数据包的创建和解码。它能够构建或解码大多数常见网络协议的数据包,将它们发送到网络上,捕获它们并匹配请求和响应。 * [Libnet](https://github.com/libnet/libnet): 是一组例程集合,用于帮助构建和处理网络数据包。它为低级网络数据包整形、处理和注入提供了一个可移植的框架。Libnet 具有 IP 层和链路层的可移植数据包创建接口,以及许多补充和辅助功能。使用 libnet,可以毫不费力地快速组装出简单的数据包应用程序。 * [Libnids](http://libnids.sourceforge.net/): 由 Rafal Wojtczuk 设计,是网络入侵检测系统 E-component 的一个实现。它模拟了 Linux 2.0.x 的 IP 协议栈。Libnids 提供 IP 碎片整理、TCP 流组装和 TCP 端口扫描检测。libnids 最有价值的特性是可靠性。进行了大量测试,证明了 libnids 能够尽可能贴近地预测受保护 Linux 主机的行为。 * [Multitail](https://www.vanheusden.com/multitail/): 现在包含了一个用于监控 tcpdump 输出的配色方案。它还可以进行过滤,将时间戳转换为时间字符串等等。 * [Netsniff-ng](https://www.github.com/borkmann/netsniff-ng): Netsniff-ng 是一个免费的 Linux 网络实用程序工具包,如果您愿意的话,它可以说是您日常 Linux 网络基础架构的瑞士军刀。 * [NetDude](http://netdude.sourceforge.net/): (NETwork DUmp data Displayer and Editor)。从他们的网页来看,“它是一个基于 GUI 的工具,允许您对 tcpdump 跟踪文件中的数据包进行详细更改。” * [Network Expect](https://www.netexpect.org/): 是一个框架,允许轻松构建能与网络流量交互的工具。按照脚本,可以将流量注入网络,并根据接收到的网络流量做出决策并采取行动。一种解释型语言提供分支和高级控制结构,以指导与网络的交互。Network Expect 使用 libpcap 进行数据包捕获,使用 libwireshark(来自 Wireshark 项目)进行数据包解析任务。(GPL, BSD/Linux/OSX)。 * [nfdump](https://github.com/phaag/nfdump): 是一套功能强大的工具,用于收集、处理和分析来自网络设备的流数据。 * [NFStream](https://github.com/nfstream/nfstream): 是一个 Python 框架,提供快速、灵活且富有表现力的数据结构,旨在使在线或离线网络数据的处理变得简单直观。它旨在成为在 Python 中进行实用、真实世界网络数据分析的基础高级构建块。此外,它还有一个更宏大的目标,即成为为研究人员提供跨实验数据可重现性的通用网络数据分析框架。 * [Ntop](http://www.ntop.org/): Ntop 是一个网络流量探针,显示网络使用情况,类似于流行的 top Unix 命令。ntop 基于 libpcap,并且以一种可移植的方式编写,以便几乎可以在每个 Unix 平台以及 Win32 上运行。 * [Ntopng](https://www.ntop.org/products/traffic-analysis/ntop/): Ntopng 是原版 ntop 的下一代版本,是一个网络流量探针,显示网络使用情况,类似于流行的 top Unix 命令。ntop 基于 libpcap,并且以一种可移植的方式编写,以便几乎可以在每个 Unix 平台、MacOSX 以及 Win32 上运行。 * [Ostinato](https://ostinato.org/): Ostinato 是一个多功能的数据包生成器、pcap 编辑器/播放器和流量生成器,具有直观的 GUI。附加组件包括高速 10/25/40G 流量生成和脚本/自动化 Python API。适用于所有平台 - Windows、MacOS、Linux 以及实验平台 - CML、EVE-NG 和 GNS3。 * [packemon](https://github.com/ddddddO/packemon): 数据包怪物 (っ‘-’)╮=͟͟͞͞◒ ヽ( '-'ヽ) TUI 工具,用于发送任意输入的数据包并监控任何网络接口(默认:eth0)上的数据包。 * [PacketQ](https://github.com/dotse/PacketQ): 为 PCAP 文件提供基本 SQL 前端的工具。输出 JSON、CSV 和 XML,并包含一个带有 JSON-api 的内置 Web 服务器以及一个美观的 AJAX GUI。 * [Pcap2har](https://github.com/andrewf/pcap2har): 使用 dpkt 库将 .pcap 网络捕获文件转换为 HTTP Archive 文件的程序。 * [PcapPlusPlus](https://github.com/seladb/PcapPlusPlus): PcapPlusPlus 是一个多平台的 C++ 网络嗅探、数据包解析和操作框架。它旨在做到轻量级、高效且易于使用。它是 libpcap、WinPcap、DPDK 和 PF_RING 等流行引擎的 C++ 封装。它还包含许多协议的解析和编辑功能,包括 Ethernet、IPv4、IPv6、ARP、VLAN、MPLS、PPPoE、GRE、TCP、UDP、ICMP、DNS 以及第 7 层协议如 HTTP 和 SSL/TLS。 * [pcaptoparquet](https://github.com/nokia/pcaptoparquet): pcaptoparquet 是一个 Python 包,旨在将 PCAP 或 PCAPNG 文件转换为结构化数据格式,主要是 Apache Parquet。该工具侧重于网络流量分析,通过提取、解码和转换数据包数据为适合分析和可视化的可查询数据集。该工具同时支持命令行和编程接口,能够集成到各种网络分析工作流中。 * [pkt2flow](https://github.com/caesar0301/pkt2flow): 一个简单的实用程序,用于将数据包分类为流。它极其简单,旨在完成唯一的任务。对于深度包检测或流分类,分析特定流的特征非常常见。我曾尝试使用现成的工具如 tcpflows、tcpslice、tcpsplit,但所有这些工具要么试图减少跟踪量(需求不足),要么试图将数据包重组成流载荷(需求过度)。我还没有找到一个简单的工具,能在没有进一步处理的情况下直接将数据包分类为流。 * [potiron](https://github.com/CIRCL/potiron): 规范化、索引、丰富并可视化网络捕获数据。 * [pyshark](https://kiminewt.github.io/pyshark/): tshark 的 Python 封装,允许使用 wireshark 的解析器进行 python 数据包解析。目前有不少 python 数据包解析模块,这个之所以不同,是因为它实际上并不解析任何数据包,它只是利用 tshark(wireshark 命令行实用程序)导出 XML 的能力来借用其解析功能。 * [Sanitize](https://web.archive.org/web/20190210101529/http://ita.ee.lbl.gov/html/contrib/sanitize.html): Sanitize 是由五个 Bourne shell 脚本组成的集合,用于通过对主机重新编号和剥离数据包内容来缩减 tcpdump 跟踪数据,以解决安全和隐私问题。每个脚本将 tcpdump 跟踪文件作为输入,并生成缩减后的固定列格式的 ASCII 文件到标准输出。 * [Scapy](http://www.secdev.org/projects/scapy/): Scapy 是一个强大的交互式数据包操作程序。它能够伪造或解码大量协议的数据包,将它们发送到网络上,捕获它们,匹配请求和回复等等。它可以轻松处理大多数经典任务,如扫描、路由跟踪、探测、单元测试、攻击或网络发现(它可以替代 hping,85% 的 nmap,arpspoof,arp-sk,arping,tcpdump,tethereal,p0f 等)。它在许多其他工具无法处理的大量特定任务中也表现得非常出色,例如发送无效帧、注入您自己的 802.11 帧、结合技术(VLAN 跳跃+ARP 缓存投毒,WEP 加密通道上的 VOIP 解码等)等。 * [SiLK](https://tools.netsa.cert.org/silk/): SiLK (the System for Internet-Level Knowledge),是一套为了促进大型网络安全分析而开发的流量分析工具。SiLK 工具套件支持网络流数据的高效收集、存储和分析。 * [Sniff](http://www.thedumbterminal.co.uk/software/sniff.html): 使 tcpdump 程序的输出更易于阅读和解析。 * [Snort](https://www.snort.org/): Snort 是一个开源的网络入侵防御和检测系统 (IDS/IPS),由 Sourcefire 开发,现归 Cisco 所有。结合了基于签名、协议和异常的检测优势,Snort 是全球部署最广泛的 IDS/IPS 技术。拥有数百万次下载和大约 500,000 名注册用户,Snort 已成为 IPS 的事实标准。 * [Socket Sentry](https://github.com/rhasselbaum/socket-sentry): Socket Sentry 是一个 KDE Plasma 的实时网络流量监控器,其理念类似于 iftop 和 netstat 等工具。 * [Squey](https://squey.org): 交互式可视化软件,旨在探索大型 PCAP 以检测异常/弱信号。 * [Suricata](https://suricata-ids.org): Suricata 是一个免费、开源、成熟、快速且健壮的网络威胁检测引擎。Suricata 引擎能够进行实时入侵检测 (IDS)、内联入侵防御 (IPS)、网络安全监控 (NSM) 和离线 pcap 处理。 * [TCP-Reduce](http://ita.ee.lbl.gov/html/contrib/tcp-reduce.html): TCP-Reduce 是一组 Bourne shell 脚本的集合,用于将 tcpdump 跟踪数据缩减为跟踪中存在的每个 TCP 连接的单行摘要。这些脚本仅查看 TCP SYN/FIN/RST 数据包。跟踪中没有 SYN 数据包的连接(例如在跟踪开始时已经在进行的连接)将不会出现在摘要中。错误的数据包(那些丢失部分内容的)将作为 bogon 报告给 stderr 并被丢弃。有时脚本会被带有改变序列号的重传所欺骗,并报告出错误的巨大连接大小——请务必检查大型连接(比如 100 MB 或更多)的合理性。 * [Tcpdpriv](http://ita.ee.lbl.gov/html/contrib/tcpdpriv.html): Tcpdpriv 是一个用于消除在网络接口上收集的数据包(或使用 tcpdump 的 -w 参数创建的跟踪文件)中的机密信息(用户数据和地址)的程序。Tcpdpriv 移除 TCP 和 UDP 的载荷以及其他协议的整个 IP 载荷。它实现了多种地址加扰方法;顺序编号方法及其变体,以及保留地址前缀的哈希方法。 * [Tcpflow](https://github.com/simsong/tcpflow): 一个捕获作为 TCP 连接(流)传输的数据,并以便于协议分析或调试的方式存储数据的程序。像“tcpdump”这样的程序可以显示在线上看到的数据包摘要,但通常不存储实际传输的数据。相比之下,tcpflow 重建实际的数据流,并将每个流存储在单独的文件中以供以后分析。然而,可选择按 tcp 流隔离 pcap 流,以进行细致的检测。[原始链接](http://www.circlemud.org/jelson/software/tcpflow/)。 * [Tcplook](http://ita.ee.lbl.gov/html/contrib/tracelook.html): Tracelook 是一个 Tcl/TK 程序,用于以图形方式查看使用 tcpdump 的 -w 参数创建的跟踪文件的内容。Tracelook 应该查看所有协议,但目前只查看 TCP 连接。该程序速度较慢,且极度消耗系统资源。 * [Tcpreplay](https://github.com/appneta/tcpreplay): 使用 libnet 在接口上回放 pcap 文件。 * [Tcpslice](https://github.com/pyke369/tcpsplice): Tcpslice 是一个用于提取使用 tcpdump 的 -w 标志生成的数据包跟踪文件部分的工具。它可以合并多个跟踪文件,和/或根据时间提取一个或多个跟踪的部分。 * [Tcpsplit](https://github.com/pmcgleenon/tcpsplit): 一个用于将单个 libpcap 数据包跟踪分割为若干子跟踪的工具,沿着 TCP 连接边界断开跟踪,这样 TCP 连接就不会被分割到两个子跟踪中。这对于使大型跟踪文件易于进行深入分析,以及对部分跟踪进行子集化以进行开发分析非常有用。 * [Tcpstat](https://frenchfries.net/paul/tcpstat/ Tcpstat 报告某些网络接口统计信息,就像 vmstat 报告系统统计信息一样。tcpstat 通过监控特定接口或从文件中读取以前保存的 tcpdump 数据来获取信息。 * [Tcptrace](https://github.com/blitz/tcptrace): 由俄亥俄大学的 Shawn Ostermann 编写的工具,用于分析 TCP dump 文件。它可以将多个流行的数据包捕获程序生成的文件作为输入,包括 tcpdump、snoop、etherpeek、HP Net Metrix 和 WinDump。tcptrace 可以生成几种不同类型的输出,其中包含有关看到的每个连接的信息,例如经过的时间、发送和接收的字节和段、重传、往返时间、窗口通告、吞吐量等等。它还可以生成大量图表供进一步分析。 * [TraceWrangler](https://www.tracewrangler.com/): TraceWrangler 是一个在 Windows(或 Linux 上使用 WINE)上运行的网络捕获文件工具包,支持 PCAP 以及现在作为 Wireshark 标准文件格式的新 PCAPng 文件格式。TraceWrangler 最突出的用例是轻松地对 PCAP 和 PCAPng 文件进行清理和匿名化(有时被称为“trace files”、“capture files”或“packet captures”),在移除或替换敏感数据的同时保持易用性。 * [Tstat](http://tstat.tlc.polito.it/): 一个被动式嗅探器,能够凭借海量的流特征在网络层和传输层提供对流量模式的多种洞察。 * [WAND](https://research.wand.net.nz/): 一组基于 libtrace 构建的优秀网络流量处理工具,来自怀卡托大学。我很喜欢这个项目! * [WinDivert](https://github.com/basil00/WinDivert): 是一个用于用户模式数据包拦截的 Windows 库。 * [WinDump](https://www.winpcap.org/windump/): 是 Windows 版本的 tcpdump,使用 WinPcap。 * [WinPcap](https://www.winpcap.org/): Guy Harris 关于 WinPcap 和 WinDump 状态信息摘录。 * [WireEdit](https://wireedit.com/): WireEdit 是一个免费的网络数据包桌面所见即所得编辑器。它允许在完全不了解数据包语法和编码规则的情况下将任何堆栈层作为“富文本”进行编辑。输入和输出文件格式为 Pcap。 * [Wireshark 套件](https://wiki.wireshark.org/Tools): 用于支持数据包分析器和协议解码器的知名工具套件。它还包括一些实用的工具和脚本,以支持大多数常见用法。 * [Xplot](http://www.xplot.org/): xplot 程序编写于 20 世纪 80 年代末,用于支持 TCP 数据包跟踪的分析。 * [yaraPcap](https://github.com/kevthehermit/YaraPcap): 使用 YARA 处理 HTTP Pcap 文件。 * [yaraprocessor](https://github.com/MITRECND/yaraprocessor): 使用 yaraprocessor,YARA 可以针对单个数据包载荷以及部分或全部载荷的拼接运行。它最初是为在 Chopshop 中使用而编写的,但也可以脱离其单独使用。 * [Zeek](https://zeek.org/): (原 Bro) 是一个开源软件平台,为分析人员提供紧凑、高保真的事务日志、文件内容和完全自定义的输出,覆盖范围从最小的家庭办公网络到最大、最快的研究和商业网络。摘自常见问题解答: "Zeek 为网络流量分析提供了一个综合平台,特别关注大规模的语义安全监控。虽然经常被拿来与经典的入侵检测/防御系统相比较,但 Zeek 采取了截然不同的方法,为用户提供了一个灵活的框架,促进了超越传统系统功能的定制化、深入监控。早在 90 年代中期,Zeek 的早期版本就已经投入实际部署,使其建立在 20 多年的研究基础之上。有关更多信息,请参阅 Zeek 概述和我们的宣传文档《为什么选择 Zeek?》。" ## DNS 实用工具 * [dnsgram](https://doc.powerdns.com/authoritative/manpages/dnsgram.1.html): dnsgram 是一个用于调试间歇性解析器故障的工具。它接收一个或多个输入 PCAP 文件,并生成关于 5 秒时间段的统计数据,以便研究间歇性解析器问题。 * [dnsreplay](https://doc.powerdns.com/authoritative/manpages/dnsreplay.1.html): Dnsreplay 获取记录的问题和答案,并将它们重放到指定的域名服务器,然后在事后报告匹配、变差或变好的答案百分比。接着将答案和其他一些指标与 dumpfile 中找到的实际指标进行比较。 * [dnsscan](https://doc.powerdns.com/authoritative/manpages/dnsscan.1.html): dnsscan 接收一个或多个 PCAP 格式的 INFILE,并生成每种查询类型的查询数量列表。 * [dnsscope](https://doc.powerdns.com/authoritative/manpages/dnsscope.1.html): dnsscope 接收一个输入的 PCAP 文件,并生成一些简单的统计数据将其输出到控制台。 * [dnswasher](https://doc.powerdns.com/authoritative/manpages/dnswasher.1.html): dnswasher 接收 PCAP 格式的输入文件并写出一个 PCAP 文件,同时对最终用户的 IP 地址进行混淆处理。这对于在试图保护用户隐私的同时与第三方共享数据非常有用。 ## 文件提取 * [Chaosreader](https://github.com/brendangregg/Chaosreader): 一个免费工具,用于跟踪 TCP/UDP/... 会话并从 snoop 或 tcpdump 日志中获取应用程序数据。这是一种“any-snarf”类型的程序,因为它将从网络流量日志中捕获的数据内提取 telnet 会话、FTP 文件、HTTP 传输(HTML、GIF、JPEG 等)、SMTP 电子邮件等。它会创建一个链接到所有会话详细信息的 html 索引文件,包括 telnet、rlogin、IRC、X11 和 VNC 会话的实时回放程序;以及图像报告和 HTTP GET/POST 内容报告等。 * [Dsniff](https://www.monkey.org/~dugsong/dsniff/): Dsniff 是一组用于网络审计和渗透测试的工具。dsniff、filesnarf、mailsnarf、msgsnarf、urlsnarf 和 webspy 被动监控网络中的有趣数据(密码、电子邮件、文件等)。arpspoof、dnsspoof 和 macf 协助拦截攻击者通常无法获取的网络流量(例如,由于二层交换)。sshmitm 和 webmitm 通过利用 ad-hoc PKI 中的弱绑定,对重定向的 SSH 和 HTTPS 会话实施活跃的中间人攻击。 * [Foremost](https://github.com/jonstewart/foremost): 是一个控制台程序,用于根据文件头、文件尾和内部数据结构恢复文件。这个过程通常被称为数据雕刻。Foremost 可以处理镜像文件,例如由 dd、Safeback、Encase 等生成的镜像文件,或者直接在驱动器上操作。文件头和尾部可以通过配置文件指定,或者您可以使用命令行开关来指定内置的文件类型。这些内置类型会查看给定文件格式的数据结构,从而实现更可靠、更快速的恢复。 * [Justniffer](https://onotelli.github.io/justniffer/): Justniffer 是一个网络协议分析器,可捕获网络流量并以自定义方式生成日志,可以模拟 Apache Web 服务器的日志文件,跟踪响应时间并从 HTTP 流量中提取所有“拦截到”的文件。 * [NetworkMiner](https://www.netresec.com/index.ashx?page=NetworkMiner): NetworkMiner 是一款适用于 Windows(但也适用于 Linux / Mac OS X / FreeBSD)的网络取证分析工具 (NFAT)。NetworkMiner 可用作被动网络嗅探器/数据包捕获工具,以检测操作系统、会话、主机名、开放端口等,而无需向网络发送任何流量。NetworkMiner 还可以解析 PCAP 文件进行离线分析,并从 PCAP 文件中重新生成/重组传输的文件和证书。 * [pcapfex](https://github.com/vikwin/pcapfex) - Packet CAPture Forensic Evidence eXtractor (pcapfex) 是一款用于从数据包捕获文件中查找并提取文件的工具。其强大之处在于易于使用。只需提供一个 pcap 文件,它就会尝试提取所有的文件。它是一个可扩展的平台,因此可以轻松添加要识别和提取的新文件类型。 * [scalpel](https://github.com/sleuthkit/scalpel): Scalpel 是一个开源的数据雕刻工具。 * [Snort](https://www.snort.org/): 是一个由 Sourcefire(现归 Cisco 所有)开发的开源网络入侵防御和检测系统 (IDS/IPS)。结合了基于签名、协议和异常检测的优势,Snort 是全球部署最广泛的 IDS/IPS 技术。 * [Tcpick](http://tcpick.sourceforge.net/): 是一个基于 libpcap 的文本模式嗅探器,可以跟踪、重组和重新排序 TCP 流。Tcpick 能够将捕获的流保存在不同的文件中或在终端中显示它们,因此对于嗅探通过 ftp 或 http 传输的文件非常有用。它可以在终端上显示所有的流,当连接关闭时,支持不同的显示模式,如十六进制转储、十六进制转储 + ascii、仅可打印字符、原始模式等。 * [Tcpxtract](http://tcpxtract.sourceforge.net/): 是一个基于文件签名从网络流量中提取文件的工具。基于文件类型的头和尾提取文件(有时被称为“雕刻”)是一种古老的数据恢复技术。 * [Xplico](http://www.xplico.org/about): Xplico 的目标是从互联网流量捕获中提取所包含的应用程序数据。例如,Xplico 可以从一个 pcap 文件中提取每封电子邮件(POP、IMAP 和 SMTP 协议)、所有 HTTP 内容、每个 VoIP 呼叫 (SIP)、FTP、TFTP 等等。Xplico 不是一个网络协议分析器。Xplico 是一个开源的网络取证分析工具 (NFAT)。Xplico 在 GNU 通用公共许可证下发布,部分脚本在 Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) 许可证下发布。 ## USB ### 捕获工具 * [usbmon](https://www.kernel.org/doc/Documentation/usb/usbmon.txt) - Linux 内核中用于捕获 usb 数据包的子系统。 * [USBPcap](https://github.com/desowin/usbpcap) - 针对 Windows 的解决方案。 ### 分析 * [USBPcapOdinDumper](https://github.com/KOLANICH/USBPcapOdinDumper) - 将包含 `usbmon` 和 `USBPcap` 帧格式(这些捕获来自使用 Odin 或 [Heimdall](https://gitlab.com/BenjaminDobell/Heimdall) 刷 Android 手机)的 .pcap 文件转换为包含帧载荷的一组文件。可用于逆向工程。具有模块化架构,易于转换为其他应用程序格式。 ## 相关项目 * [BPF for Ultrix](https://www.tcpdump.org/other/bpfext42.tar.Z): 适用于 Ultrix 4.2 的 BPF 发行版,包含源代码和二进制模块。 * [BPF+](https://andrewbegel.com/papers/bpf.pdf): 在通用数据包过滤器架构中利用全局数据流优化,作者:Andrew Begel, Steven McCanne 和 Susan Graham。 * [FFT-FGN-C](ftp://ita.ee.lbl.gov/html/contrib/fft_fgn_c.html): 是一个用于合成一种称为分形高斯噪声的自相似过程的程序。该程序速度快但属于近似算法。分形高斯噪声只是自相似过程的一种。在使用此程序合成网络流量时,必须记住您所寻找的流量可能更适合使用其他过程进行建模。 * [Haka](http://www.haka-security.org/): 一种面向安全的开源语言,允许描述协议并对(实时)捕获的流量应用安全策略。Haka 语言的适用范围是双重的。首先,它允许编写安全规则,以过滤/修改/丢弃不需要的数据包,并记录和报告恶意活动。其次,Haka 具有一种语法,能够指定网络协议及其底层状态机。 * [RIPE-NCC Hadoop for PCAP](https://github.com/RIPE-NCC/hadoop-pcap): 一个用于读取数据包捕获 (PCAP) 文件的 Hadoop 库。捆绑了用于读取 PCAP 的代码。可在 MapReduce 作业中用于原生读取 PCAP 文件。还具有 Hive Serializer/Deserializer (SerDe) 以使用类似 SQL 的命令查询 PCAP。 * [Traffic Data Repository at the WIDE Project](https://www2.sonycsl.co.jp/person/kjc/papers/freenix2000/): 对于网络研究人员和运营商而言,了解网络流量的趋势并在其网络流量中发现异常变得越来越重要。本文介绍了 WIDE 项目中正在进行的努力,即收集一套免费工具来构建包含我们骨干流量详细信息的数据存储库。流量跟踪由 tcpdump 收集,并在移除隐私信息后向公众开放。我们回顾了有关用户隐私的问题,然后介绍了用于构建 WIDE 流量仓库的工具。我们将报告早期 IPv6 部署阶段的当前状态和发现。 * [Usenix93 Paper on BPF](https://www.tcpdump.org/papers/bpf-usenix93.pdf): libpcap 接口支持一种基于 BSD 数据包过滤器架构的过滤机制。BPF 在 1993 年冬季 Usenix 论文《The BSD Packet Filter: A New Architecture for User-level Packet Capture》中进行了描述。 ## 贡献者 感谢所有的贡献者 ❤ [![awesome-pcaptools 贡献者](https://contrib.rocks/image?repo=caesar0301/awesome-pcaptools "awesome-pcaptools contributors")](https://github.com/caesar0301/awesome-pcaptools/graphs/contributors)
标签:JS文件枚举, Linux命令行, PCAP处理, 带宽监控, 开源安全工具, 开源工具合集, 情报分析, 流量可视化, 系统性能监控, 网络性能, 网络流量分析, 网络流量采集, 网络诊断, 网络追踪, 计算机科学, 逆向工具, 逆向工程平台, 防御绕过