问题标签 [tcpdump]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
60187 浏览

networking - 在wireshark中保存显示/过滤的数据包

我在 Wireshark 中应用了一个过滤器,只显示传入我的 PC 的数据包。当我将过滤/显示的数据包保存到 .csv 文件时,我实际上保存了所有数据包(未过滤)。如何仅保存显示/过滤的数据包?

0 投票
0 回答
318 浏览

shell - 进程替换 tcpdump 脚本错误

如果我在终端中编写以下命令,它将完美运行

如果我把它放在一个脚本中,我会得到一个错误,比如“unexpected”(“ in line ...”我没有确切的错误行,因为我正在通过 ssh 在服务器上工作,现在我没有访问权限到它。服务器应该在BSD上运行,现在我不知道使用哪个shell。我需要将这些行放在脚本中,因为我需要对大量pcap.gz文件执行此命令。

0 投票
1 回答
5466 浏览

c - 重建数据包以通过 pcap 注入

情况如下:在我的场景中,我有 3 台计算机,A、B 和 C。

计算机 A 向计算机 B 发送数据。计算机 B 使用 pcap 捕获这些数据包,附加标头,重做校验和,并将其从另一个以太网接口注入计算机 C。所以基本上 A 向 C 发送数据,尽管从 C 的角度来看,数据来自计算机 B。

我的问题是这样的:按照 TCPDUMP 的关于剖析捕获的数据包的教程,我学会了计算偏移量并使用类型转换来获取以太网、ip 和 tcp 标头结构。这样做的方法如下所示:

因为我想注入捕获的数据包以将其从计算机 B 发送到计算机 C,所以我必须修改一些源/目标信息并在完成后重新计算校验和。但是,我的问题是,由于这些数据现在被分成以太网头、IP 头和 TCP 头的结构,我如何将它们重新组合成一个u_char可以pcap_inject使用的结构?

是否可以在这里进行某种连接?

0 投票
1 回答
358 浏览

ruby - 使用 Seq No 、 Ack No 和/或 Datasize 区分 TCP 连接

我通过收集的数据包转储来聚合连接,使用 TCPDUMP 收集。我的代码是用 Ruby 编写的。代码将使用 4 元组 (SrcIP,SrcPort,DstIP,DstPort) 区分连接。1. 如果连接之间的时间超过 2Hrs,那么它是一个新连接 2. 如果我们看到我们已经看到一个 FIN 或 RST,那么新数据包来自一个新连接 3. 如果 SYN 的数量超过两个(每个方向一个)然后连接是一个新的连接。

我无法解决的情况如下如果相同的两台主机(具有相同的 4 元组)之间的新连接发生在 2 小时内,并且 TCPDUMP 丢弃了以前的 RST 或 FIN 数据包,并且它还丢弃了两个或更多的 SYN 数据包连接。在这种情况下,我设置的上述条件都不起作用。剩下的唯一一组信息是新的一组数据包的时间,Seq Nos,Ack Nos和数据大小。仅使用此信息,我就可以确定连接是新连接还是旧连接?

我试图查看序列 No 或 SeqNo 和 AckNo 之间是否存在模式,但似乎没有一个是确定的。

0 投票
2 回答
14342 浏览

networking - tcpdump 过滤 ssl 数据包

我需要使用 tcpdump 过滤掉所有 SSL 数据包。我知道只有第一个数据包可以被识别为 ssl。是否可以匹配第一个数据包,然后过滤掉 SSL 流的其余部分?

0 投票
4 回答
2056 浏览

linux - 需要从 tcpdump 输出中提取中间的十六进制部分

这是捕获的数据包的 tcpdump 十六进制输出。

使用的命令是..

这些...可以是任何它们是对应于指定十六进制字符的各自 ascii 字符。我需要提取中间的十六进制部分。

我需要以下格式的输出。请在这方面给我一些建议。

我试过这个,但似乎不正确..

也尝试了一些东西,cut -b但这给出了奇怪的输出。

如果可能的话,建议使用 awkNRNF. 我是 awk 的新手,所以对它们了解不多。

我试过这个并将它们...作为输出。

输出 :

有没有办法使用 awk 打印除最后一列之外的所有列(即打印除上述指定之外的所有内容)。

0 投票
4 回答
11814 浏览

linux - 同时捕获两个不同端口上的网络流量

我希望同时捕获两个不同端口上的 tcpdump 流量。

我试过这个..

尽管它起作用了,但问题是它首先会等待端口 21 上的流量,当被中断时,它会等待端口 22。

另一个问题是它不会捕获端口 22 上的流量,直到捕获端口 21 上的流量。

我想要一个无订单的解决方案意味着无论数据包到达的任何顺序,如果它们是用于端口 21 或 22 的,它们都应该被捕获。

请帮我解决这个问题!

编辑 :

抱歉,在我尝试运行的实际命令是这个之前,我没有指定它。

现在我需要同时使用 50 和 51 ..

0 投票
2 回答
533 浏览

tcpdump - 如何获取 TCPDump 测试数据

第一次海报,长期读者。老实说,很害怕发帖。

我正在为学校的一个班级编写 TCPDump 跟踪分析器。非常简单,分析来自 Unix TCPDump 应用程序的十六进制格式的跟踪。通常我们在 pcap 输出上运行 TCPDump 以获得我们的程序输入,如下所示:

除了 IP 选项和 TCP 选项之外,我们已经让它完成了它需要做的所有事情。我们为 IP 选项的子集编写了大量代码,这些代码很容易实现,但对于如何获得反映真实、非人为/构造的跟踪的有意义的测试数据却一无所知。我们尝试使用我们想要测试的选项手动创建数据包,并且效果很好,但它不一定反映我们或未来用户可能实际输入的内容。

任何人都可以就如何获取一些实际测试数据提出一些建议吗?

我们正在查看的 IP 选项是:End-of-Option、No-Option、Strict Source Route、Loose Source Route、Record Route、Security、Extended Security 和 Timestamp。

我们正在查看的 TCP 选项是:End-of-Option、No-Option、MSS、WSCALE、SACK-Permitted、SACK、TSOPT。

到目前为止,我所做的大多数谷歌搜索都没有结果。提前致谢。

0 投票
2 回答
8871 浏览

c - “重播”tcpdump 文件

我正在编写一个程序来分析某些类型的数据包。我得到了包含 tcpdump 格式的测试数据包的转储文件。有没有办法将此转储发送到其中一个接口?我认为 tcpdump 将能够自己做到这一点(不幸的是它不是)。我唯一能做的就是通过wireshark查看数据包(这显然不是要走的路)。

我可以使用 libpcap 函数pcap_open_offline(),但不幸的是,我使用pcap_loop()了似乎无法使用的函数,pcap_open_offline()并且重写代码pcap_next()会非常痛苦。是否有任何程序可以将数据包发送到接口?

0 投票
3 回答
17567 浏览

python - 从 tcpdump 中剥离有效负载?

是否有一种自动方式(在 tcpdump 中或通过帮助应用程序 Out There)生成仅包含以太网、IP 和第 4 层(在我的情况下为 TCP)标头的 pcap 文件,以便在结果 pcap?我发现由于标头大小经常变化,因此不可能选择不会捕获任何有效负载数据的捕获大小。