logo头像

知其然更要知其所以然

tcpdump工具使用教程第二篇

在上一篇的教程中,我们仔细学习了tcpdump命令的基本使用,如果你还没有阅读,点击这里 了解。为了更好的分析网络流量,熟练使用tcpdump,今天我们就来了解tcpdump的高级用法。

首先是目录:

  • 包头解析
  • 解析和打印
  • 指定用户
  • 时间戳精度
  • 指定协议
    • RADIUS(远程身份验证拨入用户服务)
    • AODV(临时按需距离矢量协议)
    • RPC(远程过程调用)
    • CNFP(思科NetFlow协议)
    • LMP(链路管理协议)
    • PGM(实用通用多播)
    • RTP(实时应用协议)
    • RTCP(实时应用控制协议)
    • SNMP(简单网络管理协议)
    • TFTP(临时文件传输协议)
    • VAT(可视音频工具)
    • WB(分布式白板)
    • VXLAN(虚拟可扩展局域网)
  • 混杂模式
  • 无混杂模式

包头解析

Tcpdump为我们提供了显示每个数据包的链接级头的选项。我们正在使用-e参数在我们的数据流量结果中获取此信息。通常,通过使用此参数,我们将获得以太网和IEEE 802.11等协议的MAC地址。

script
1
2
tcpdump -i eth0 -c5
tcpdump -i eth0 -c5 -e

解析输入数据

众所周知,具体语法与抽象语法的对话称为解析。抽象语法与具体语法的对话称为未解析或打印。现在,我们可以使用-x参数解析数据包并打印抽象语法,我们可以使用-xx参数。除了打印每个数据包的标题外,我们还可以将数据包及其快照打印为十六进制。

script
1
2
tcpdump -i eth0 -c 2 -x
tcpdump -i eth0 -c 2 -xx

如果我们希望由-x参数及其ASCII代码提供此信息,则需要使用-X参数,如果我们希望-xx参数的结果与其ASCII代码一起,则需要使用-XX参数。要在我们的数据分析中使用这些参数,请使用以下命令:

script
1
2
tcpdump -i eth0 -c 2 -X
tcpdump -i eth0 -c 2 -XX

指定用户

如果我们以root用户身份运行tcpdump,那么在打开任何保存的文件进行分析之前,您会发现它会将用户ID更改为user,将组ID更改为其主要用户组。

Tcpdump为我们提供了-Z参数,通过它可以克服此问题,但我们需要提供如下用户名:

script
1
2
tcpdump -i eth0 -c 2 -Z root
tcpdump -i eth0 -c 2 -Z kali


还有另一种方法可以执行此操作,即借助–relinquish-privileges = 参数。

时间戳精度

时间戳是注册到文件,日志或通知的时间,可以记录添加,删除,修改或传输数据的时间。在tcpdump中,有很多参数在-t,-tt,-ttt,-tttt,-ttttt等时间戳值之间移动,其中每个参数都有其独特的工作和效率。

  • -t参数,该参数必须不在每个转储行上显示时间戳。
  • -tt参数,它可以打印时间戳直到几秒钟。
  • -ttt参数,该参数可以打印微秒或纳秒分辨率,具体取决于每个转储行上当前行与上一行之间的时间戳精度。其中微秒是默认分辨率。
  • -tttt参数,该参数可以将时间戳打印为自午夜以来的小时,分​​钟,秒和几分之一秒。
  • -ttttt参数与-ttt非常相似。它可以在每个转储行的当前行和第一行之间进行增量转换。
    要在我们的扫描中应用这些功能,我们需要遵循以下命令:
    script
    1
    2
    3
    4
    5
    6
    tcpdump -i eth0 -c 2
    tcpdump -i eth0 -c 2 -t
    tcpdump -i eth0 -c 2 -tt
    tcpdump -i eth0 -c 2 -ttt
    tcpdump -i eth0 -c 2 -tttt
    tcpdump -i eth0 -c 2 -ttttt

指定协议

在tcpdump中,我们可以强制对数据流量进行扫描以显示某些特定协议。当使用通过选择任何“表达式”定义的强制包功能时,我们可以解释指定的类型。借助-T参数,我们可以强制数据包仅显示所需的协议结果。

所有强制数据包的基本语法将与其他参数-T相同,后跟所需的协议。以下是强制数据包的一些协议:

RADIUS协议

RADIUS代表远程身份验证拨入用户服务。它是一种网络协议,具有其唯一的端口号1812,为连接和使用网络服务的用户提供集中式身份验证以及授权和计费管理。我们可以使用此协议进行扫描。

script
1
tcpdump -i eth0 -c5 -T radius

AODV协议

Adhoc按需距离矢量协议是用于移动ad hoc网络和其他无线网络的路由协议。它是一种路由协议,用于无线网络的低功耗和低数据速率。要在我们的扫描中查看这些结果,请按照以下步骤进行。

script
1
tcpdump -i eth0 -c5 -T aodv

RPC

远程过程调用,它是一种协议,一个程序可以使用该协议来请求位于网络上另一台计算机上的程序的服务,而无需了解网络详细信息。过程调用也称为函数调用。要在我们的扫描中获取此协议,请使用以下命令:

script
1
tcpdump -i eth0 -c5 -T rpc

CNFP

Cisco NetFlow协议,它是cisco开发的一种网络协议,用于收集和监视网络流量,由支持NetFlow的路由器和交换机生成的流量数据。它在记录流量统计信息时将其导出,然后由其收集器收集。要获得这些详细的扫描,请遵循以下命令。

script
1
tcpdump -i eth0 -c5 -T cnfp

LMP

LMP(链路管理协议)旨在简化光网络设备的配置和管理。要了解LMP在我们网络中的工作原理,我们需要在扫描中应用此协议。

script
1
tcpdump -i eth0 -c5 -T lmp

PGM

PGM(实用通用组播)它是一种可靠的组播网络传输协议。它可以同时向多个接收者提供可靠的数据包序列。这进一步使其适合于多接收器文件传输。要了解其在我们的数据流量中的作用,请遵循以下步骤。

script
1
tcpdump -i eth0 -c5 -T pgm

RTP

RTP:实时应用协议,它可以编码多媒体数据流,例如音频或视频。它将它们分成数据包并通过IP网络传输。要在流量中分析此协议,我们需要遵循以下命令:

script
1
tcpdump -i eth0 -c5 -T rtp

远程TCP

实时应用程序控制协议,此协议具有RTP的所有功能以及附加控制。借助此功能,我们可以控制其在网络环境中的工作。要了解此协议在数据流量中的工作原理,请应用以下命令。

script
1
tcpdump -i eth0 -c5 -T rtcp

SNMP协议

简单网络管理协议是一种Internet标准协议,用于收集和组织有关IP网络上被管理设备的信息,以修改该信息以更改设备行为。要查看其在我们的流量中的运行情况,请应用此命令。

script
1
tcpdump -i eth0 -c5 -T snmp

TFTP

琐碎的文件传输协议,是一个简单的锁步文件传输协议,它允许其客户端从远程主机获取文件。它用于从局域网启动节点的早期阶段。要了解其流量,请遵循以下命令。

script
1
tcpdump -i eth0 -c5 -T tftp

VAT

VAT:视觉音频工具,由Van Jacobson和Steven McCanne开发。它是一种对声音和视觉组件都进行的电子媒体处理。要了解我们流量中的数据包,我们需要应用以下命令。

script
1
tcpdump -i eth0 -c5 -T vat

WB

该程序允许用户在分布式白板上绘制消息并将其键入到画布上,该消息应与应用程序位于同一覆盖网络上的每个其他用户同步。新用户在连接时还应该收到白板上已经存储的所有内容。要了解其数据包,请遵循此命令。

script
1
tcpdump -i eth0 -c5 -T wb

VXLAN

虚拟Xtensible局域网是一种网络虚拟化技术,旨在解决与大型云计算区域相关的可伸缩性问题。它是第3层提议的封装协议,它将使网络工程师更轻松地扩展云计算。要了解其数据流量,请遵循以下命令。

script
1
tcpdump -i eth0 -c5 -T vxlan

这些是在强制包参数下使用的一些协议,可从扫描中获取固定的所需数据流量。

开启混杂模式

在计算机网络中,混杂模式用作接口控制器,它将导致tcpdump将接收到的流量传递给CPU,而不是将其传递给混杂模式,通常用于一部分LAN上的数据包嗅探或路由器。

通过遵循以下命令来配置混杂模式。

script
1
2
ifconfig eth0 promisc
ifconfig eth0


在我们的网络中启用混杂模式之后,让我们通过应用这些命令来捕获一些数据包。

script
1
tcpdump -i eth0 -c 10

不开启混杂模式

在上一个参数中,我们了解了混杂模式,这意味着网络接口卡会将接收到的所有帧传递给OS进行处理,而传统操作则仅将发往NIC的MAC地址或广播地址的帧传递给操作系统。操作系统。通常,混杂模式用于“嗅探”线路上的所有流量。但是,如果我们要切换到混杂模式的多播模式。然后,我们需要使用–no-promiscuous-mode参数,该参数可帮助我们在不更改网络设置的情况下切换到哪种模式。

script
1
tcpdump -i eth0 -c 5 --no-promiscuous-mode

结语

这是关于tcpdump工具使用教程的第二部分,本篇文章主要讲解了一些tcpdump工具的一些高级使用方法,能够帮助您更好的从网络流量中,发现蛛丝马迹。

相关文章

tcpdump工具使用教程第一篇
tcpdump工具使用教程第三篇