百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

巧妙的使用 tcpdump 查看原始数据包

nanshan 2025-05-08 03:41 4 浏览 0 评论

使用 'tcpdump' 查看原始数据包

虽然像 Snort 这样的工具在筛选通过我们网络的所有内容方面做得非常出色,但有时需要查看原始数据。为此,我们最好的工具是“tcpdump”。

使用 tcpdump 最基本的方法是简单地发出命令:

您可以使用 -v 选项获得更多详细信息,使用 -vv 可以获得更多信息。

有用的选项

假设您已登录到您管理的远程计算机。通常,您将使用 SSH。如果您在没有任何选项的情况下运行“tcpdump”,则输出将被来自您的 SSH 连接的数据包淹没。为避免这种情况,只需从输出中删除端口 22:

您可以使用许多不同的端口来执行此操作:

代码:

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

如果你想做相反的事情,即只监视某个端口——这对调试网络应用程序很有好处——你可以执行以下操作:

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

如果您的机器有多个网络接口,您还可以指定要收听的一个:

您还可以指定协议:

您将在 /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

是一个也可用于捕获网络数据包的工具。安装后,您可以打开您制作的原始转储文件。它看起来像这样:

这使得查看正在发生的事情变得相当容易。您可以看到源 IP 和目标 IP 是什么以及它是什么类型的数据包。然后很容易解决您可能遇到的网络问题并分析可疑行为。顺便说一句,当我在写这节课并解释我自己的转储时,我在我的个人工作站上看到了一些奇怪的活动。几乎每隔一段时间,我就会在世界上不同 IP 的机器上查询端口 32772。我为端口 32772 运行了一个特定的转储,如下所示:

代码:

tcpdump port 32772 -w dump_32772

我得到的确实看起来很奇怪。即使在谷歌搜索之后,我也找不到任何相关信息,所以我怀疑我可能有木马。我运行了“rootkit hunter”(下一节将详细介绍),但结果却一无所获。最后,一一关机,原来是我一直打开的Skype。尽管这被证明是无害的,但我很高兴我有 tcpdump 向我指出这一点。

读取原始输出

如您所见,即使从 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>

我们拥有的是对www.linux.org的网络服务器请求. 在时间戳之后,您会注意到主机名末尾的 .www(表示端口 80)。这将被发送到请求主机 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.@.@.I;....
        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 请求。至于其余的,它不是人类可读的,但我们很容易知道这是一个合法的数据包。使用这种格式的另一个好处是,即使我们不能准确地解释这个数据包发生了什么,我们也可以将它发送给可能能够理解的人。最后,这是未经任何过滤就通过网络传输的原始数据。

相关推荐

F5负载均衡器如何通过irules实现应用的灵活转发?

F5是非常强大的商业负载均衡器。除了处理性能强劲,以及高稳定性之外,F5还可以通过irules编写强大灵活的转发规则,实现web业务的灵活应用。irules是基于TCL语法的,每个iRules必须包含...

映射域名到NAS

前面介绍已经将域名映射到家庭路由器上,现在只需要在路由器上设置一下端口转发即可。假设NAS在内网的IP是192.168.1.100,NAS管理端口2000.你的域名是www.xxx.com,配置外部端...

转发(Forward)和重定向(Redirect)的区别

转发是服务器行为,重定向是客户端行为。转发(Forward)通过RequestDispatcher对象的forward(HttpServletRequestrequest,HttpServletRe...

SpringBoot应用中使用拦截器实现路由转发

1、背景项目中有一个SpringBoot开发的微服务,经过业务多年的演进,代码已经累积到令人恐怖的规模,亟需重构,将之拆解成多个微服务。该微服务的接口庞大,调用关系非常复杂,且实施重构的人员大部分不是...

公司想搭建个网站,网站如何进行域名解析?

域名解析是将域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转...

域名和IP地址什么关系?如何通过域名解析IP?

一般情况下,访客通过域名和IP地址都能访问到网站,那么两者之间有什么关系吗?本文中科三方针对域名和IP地址的关系和区别,以及如何实现域名与IP的绑定做下介绍。域名与IP地址之间的关系IP地址是计算机的...

分享网站域名301重定向的知识

网站域名做301重定向操作时,一般需要由专业的技术来协助完成,如果用户自己在维护,可以按照相应的说明进行操作。好了,下面说说重点,域名301重定向的操作步骤。首先,根据HTTP协议,在客户端向服务器发...

NAS外网到底安全吗?一文看懂HTTP/HTTPS和SSL证书

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:可爱的小cherry搭好了NAS,但是不懂做好网络加密,那么隐私泄露也会随时发生!大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数...

ForwardEmail免费、开源、加密的邮件转发服务

ForwardEmail是一款免费、加密和开源的邮件转发服务,设置简单只需4步即可正常使用,通过测试来看也要比ImprovMX好得多,转发近乎秒到且未进入垃圾箱(仅以Mailbox.org发送、Out...

使用CloudFlare进行域名重定向

当网站变更域名的时候,经常会使用域名重定向的方式,将老域名指向到新域名,这通常叫做:URL转发(URLFORWARDING),善于使用URL转发,对SEO来说非常有用,因为用这种方式能明确告知搜索引...

要将端口5002和5003通过Nginx代理到一个域名上的操作笔记

要将端口5002和5003通过Nginx代理到域名www.4rvi.cn的不同路径下,请按照以下步骤配置Nginx:步骤说明创建或编辑Nginx配置文件通常配置文件位于/etc/nginx/sites...

SEO浅谈:网站域名重定向的三种方式

在大多数情况下,我们输入网站访问网站的时候,很难发现www.***.com和***.com的区别,因为一般的网站主,都会把这两个域名指向到同一网站。但是对于网站运营和优化来说,www.***.com和...

花生壳出现诊断域名与转发服务器ip不一致的解决办法

出现诊断域名与转发服务器ip不一致您可以:1、更改客户端所处主机的drs为223.5.5.5备用dns为119.29.29.29;2、在windows上进入命令提示符输入ipconfig/flush...

涨知识了!带你认识什么是域名

1、什么是域名从技术角度来看,域名是在Internet上解决IP地址对应的一种方法。一个完整的域名由两个或两个以上部分组成,各部分之间用英文的句号“.”来分隔。如“abc.com”。其中“com”称...

域名被跳转到其他网站是怎么回事

当你输入域名时被跳转到另一个网站,这可能是由几种原因造成的:一、域名可能配置了域名转发服务。无论何时有人访问域名,比如.com、.top等,都会自动重定向到另一个指定的URL,这通常是在域名注册商设...

取消回复欢迎 发表评论: