• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用tcpdump查看原始数据包

linux 搞代码 3年前 (2022-03-04) 11次浏览 已收录 0个评论

在Linux零碎中只管Snort之类的工具在筛选通过咱们的网络而来的所有内容方面做得十分杰出,但有时必须要查看原始数据。为此,咱们最好的工具是“ tcpdump”。

应用tcpdump的最根本办法是简略地收回以下命令:

tcpdump

您能够应用-v选项取得更多详细信息,而-vv能够获取更多信息。

有用的选项

假如您已登录到要治理的近程计算机。如果您不带任何选项运行“ tcpdump”,则输入将被来自您的SSH连贯的数据包吞没。为防止这种状况,只需从输入中打消端口22:

tcpdump not port 22

您能够应用许多不同的端口来执行此操作:

tcpdump not port 143 and not port 25 and not port 22

如果要进行相同的操作,即仅监督某个端口(这对于调试网络应用程序十分有用),则能够执行以下操作:

tcpdump port 143

您还能够从网络上的特定主机获取数据:

tcpdump host hal9000

如果您的计算机具备多个网络接口,则还能够指定要收听的网络接口:

tcpdump -i eth1

您还能够指定协定:

tcpdump udp

您能够在/ etc / protocols中找到协定列表。

保留输入以备后用

在某些状况下,您可能心愿将输入重定向到文件,以便当前能够具体钻研它或应用其余程序来解析输入。在以下示例中,您依然能够在将输入保留到文件时观看输入:

tcpdump -l | tee tcpdump_`date +%Y%m%e-%k.%M`

在下面的示例中,咱们能够应用日期和工夫来标识每个转储。在解决一天中特定工夫呈现的问题时,这可能会派上用场。

tcpdump还能够抉择将其输入转储为二进制格局,以便当前读取。要创立一个二进制文件:

tcpdump -w tcpdump_raw_`date +%Y%m%e-%k.%M`

稍后,您能够让tcpdump应用以下命令读取文件

tcpdump -r tcpdump_raw_YYYMMDD-H.M

您也能够应用ethereal程序关上原始转储并解释它。

tcpdump为咱们提供了无关往返于网络的所有数据包的信息。

将Ethereal与tcpdump一起应用Ethereal

Ethereal是一种也能够用来捕捉网络数据包的工具。装置后,您能够关上您制作的原始转储文件。

查看正在产生的事件变得相当容易。您能够看到源IP和指标IP以及它是什么类型的数据包。这很容易,而后即可对您可能遇到的网络问题进行故障排除并剖析可疑行为。只是为了减少一则轶事,当我编写本课并解释本人的转储时,我在集体工作站上看到了一些奇怪的流动。我简直每隔固定工夫就查问世界上不同IP的机器上的端口32772。我为端口32772运行了一个特定的转储,如下所示:

tcpdump port 32772 -w dump_32772

读取原始输入

如您所见,即便从tcpdump读取所谓的“人类可读”输入也可能有点神秘。看上面的示例,我只是从转储中选出一个随机数据包:

17:26:22.924493 IP www.linux.org.www > test.linux.org.34365: P 2845:3739(894) ack 1624 win 9648 <nop,nop,timestamp 326501459 24374272>

咱们所领有的是对https://www.linux.org/的Web服…。工夫戳记过后,您会在主机名(即端口80)的开端留神到.www。这将被发送到发出请求的主机test.linux.org的端口34365。“ P”代表TCP“ oush”性能。这意味着应该立刻发送数据。在2845:3739(894)之后的数字中,2845标记第一个数据包的八位位组的编号。数字3739是数据包发送的最初一个字节的数字加1。数字894是发送的数据包的长度。示意“ ack 1624”的局部是“ acknowledge”的TCP术语-示意该数据包已被承受,下一个预期的数据包编号为1624。之后,咱们看到“ win 9648”发送主机正在期待窗口大小为9648个八位位组的数据包。这之后是工夫戳。

当初,如果您认为难以解释,则应用-x选项,它将在十六进制输入中蕴含数据包内容。

18:12:45.149977 IP www.linux.org.www > test.linux.org.34536: . 1:1449(1448) ack 487 win 6432 <nop,nop,timestamp 329284215 27156244>        0x0000:  4500 05dc 6a81 4000 4006 493b c0a8 0006  E...j.@[email protected];....        0x0010:  c0a8 0009 0050 86e8 8fa4 1d47 1c33 e3af  .....P.....G.3..        0x0020:  8010 1920 b4d9 0000 0101 080a 13a0 7a77  ..............zw        0x0030:  019e 5f14 4854 5450 2f31 2e31 2032 3030  .._.HTTP/1.1.200        0x0040:  204f 4b0d 0a44 6174 653a 2054 6875 2c20  .OK..Date:.Thu,.        0x0050:  3135

咱们能够从输入中得悉这是一个HTTP申请。至于其余的,它不是人类可读的,然而咱们很容易晓得这是一个非法的数据包。应用这种格局的另一个益处是,即便咱们无奈齐全解释此数据包的情况,也能够将其发送给可能的人。最终,这是未经任何过滤通过网络传输的原始数据

以上就是良许教程网为各位朋友分享的Linux相干常识。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用tcpdump查看原始数据包

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址