tcpdump使用方法

tcpdump 抓包工具详细图文教程(上) tcpdump 抓包工具详细图文教程!!! 阅读详情
tcpdump是信息安全行业最好的网络分析工具,希望全面理解tcp/ip的人必须要很好的掌握它。很多人喜欢用更高层的分析工具如Wireshark,但我认为这是不对的。
对tcp/ip要理解贯通而不是死记硬背,全面的理解协议可以让你排查问题的水平远远超出一般的分析员,但要再更加精通协议的话唯一的方式就是不断的去接触它。
通过人来分析协议比应用程序更自然,且能提高对协议的理解,所以我建议用tcpdump。

  1. 选项

  1. 下面是一些选项(有例子),对你使用tcpdump有很大的帮助。这些选项很容易被忘记或与其他工具混淆,所以希望这篇文章能作为你的手册(我就是拿它当手册用的)。
    根据正在观察的内容来给tcpdump命令加选项
    首先加一个"-n",不解析域名,总是显示IP。
    第二个是"-X",以16进制和ascii格式显示包。
    最后是"-S",显示绝对的,而不是相对的TCP序列号(有利于发现异常)。

  1. 用tcpdump的好处是可以与数据包进行人工交互。

  1. tcpdump默认只抓取一个包的前68或96个字节,如果要查看更多内容,需要加"-s number"选项,下面是我最常用的选项:
    -i any : 监听所有接口,
    -n : 不解析主机名
    -nn : 不解析主机名和端口名
    -X : 以16进制和ascii格式显示包
    -XX : 和-X一样,但会显示以太网头
    -v, -vv, -vvv : 获取包含信息量更多的包
    -c : 获取指定数量的包,达到该数量后tcpdump停止
    -S : 显示绝对序列号
    -e : 获取以太网头
    -q : 显示少量的协议信息
    -E : 通过密钥来解密IPSEC交互

  1. -s : 设置snaplength(snaplength是抓取的字节数)

  1. tcpdump 4.0已经将默认的snaplength从68字节改成96字节,可以返回更多的信息,但仍然不是全部。

  1. 一些基本用法

  1. 现在我根据想得到的交互种类,来采用不同的选项组合,如下所示:
    1.基本信息 // 用很少的选项查看简要信息
    tcpdump -nS
    2.基本信息(非常冗长) // 查看大量交互,很冗长且没有名词解释
    tcpdump -nnvvS
    3.交互的深入观察 // 为减小负载增加"-X"选项,但不会抓取包的更多信息
    tcpdump -nnvvXS
    4.整包浏览 //"s"增加snaplength,抓取整个包
    tcpdump -nnvvXSs 1514

  1. 这里用下图所示选项抓了两个ICMP包(ping和pong),注意一下我们对每一个包能了解多少。

  1. 公共语法

  1. 表达式可以使你过滤掉各种类型的交互来准确找出你想要的。掌握表达式并且学习将它们创造性的结合起来能使你真正发挥出tcpdump的强大。有三种主要的表达式:type,dir,和proto。

  1. Type选项包括host,net和port。dir选项指明传输方向,包括src,dst,src或dst,src和dst。这些你必须要确保非常熟悉:

  1. - host // 根据ip地址查询交互(不用"-n"也能根据主机名查询交互)

  1. # tcpdump host 1.2.3.4

  1. - src,dst // 找出指定源地址或目的地址的交互
    # tcpdump src 2.3.4.5

  1. # tcpdump dst 3.4.5.6

  1. - net // 根据网络号抓取整个网络

  1. # tcpdump net 1.2.3.0/24

  1. - proto // 工作在tcp,udp,和icmp。注意你不用必须输入proto。

  1. # tcpdump icmp

  1. - port // 查看经过指定端口的交互

  1. # tcpdump port 3389

  1. - src,dst port // 找出指定源端口或目的端口的交互
    # tcpdump src port 1025

  1. # tcpdump dst port 389

  1. - src/dst, port, protocol // 将三个联合在一起
    # tcpdump src port 1025 and tcp

  1. # tcpdump udp and src port 53

  1. 你也可以用选项来找出多个端口而不用一一指定,也可以仅查看大于或小于某一字节大小的包。
    - Port Ranges // 查看经过范围内端口的交互

  1. tcpdump portrange 21-23

  1. - Packet Size Filter // 查看大于或小于某一字节大小的包
    tcpdump less 32

  1. tcpdump greater 128

  1. 也可以用符号来代替
    tcpdump > 32

  1. tcpdump <= 128

  1. 写到一个文件

  1. tcpdump用"-w"选项可以将抓到的内容存入文件,再用"-r"选项读回来,这个功能非常好,可以抓取原始交互之后再用其他工具运行它。
    以这种方式抓取到的交互会存成tcpdump格式的文件,现在网络分析圈内基本都用这种格式,因此文件可以被所有工具读取,包括Wireshark, Snort等。
    - 抓取所有经过端口80的交互存入一个文件

  1. # tcpdump -s 1514 port 80 -w capture_file

  1. - 以后可以再读回来

  1. # tcpdump -r capture_file

  1. 变得有创意
    表达式很好,但tcpdump真正的魅力在于创造性的将表达式联合在一起来准确的找到你想要的。有三种联合的方式(学过电脑的人会很熟悉):
    与
    and or &&
    或
    or or ||
    非

  1. not or !

  1. 更多的例子
    # 从10.5.2.3到端口3389的tcp交互
    tcpdump -nnvvS and src 10.5.2.3 and dst port 3389
    # 从网络192.168到网络10或172.16的交互
    tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
    # 从192.168.0.2到网络172.16的非icmp交互
    tcpdump -nvvXSs 1514 dst 192.168.0.2 and src net and not icmp
    # 从Mars或Pluto到非SSH端口的交互
    tcpdump -vv src Mars or Pluto and not dst port 22

  1. 如你所见,你可以组装查询来找出任何你想要的交互,关键在于首先要精确计算出你想找的交互,然后再拼接语法来隔离出指定类型的交互。

  1. 分组
    在组装查询的时候对选项进行分组要记得用单引号,单引号用于告诉tcpdump忽略某些指定的字符(这里是小括号),同样的方法可以用于对其他表达式进行分组,如host,port, net等。看看以下的命令:
    # 从10.0.2.4到端口3389或22的交互(错误的表达)
    tcpdump src 10.0.2.4 and (dst port 3389 or 22)
    如果你试图运行这个本来非常有用的命令,因为括号的原因会报错,可以对括号进行转义(前面加"/")或者将整个命令放在单引号中:
    # 从10.0.2.4到端口3389或22的交互(正确的表达)

  1. tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'

  1. 进阶
    你也可以筛选出包的指定部分,以及将多个条件合并在一起,前者在找SYN或RST段的时候很有用,后者用于进行更高级的筛选。
    提示:tcp标识的一个字谜:Unskilled Attackers Pester Real Security Folk
    - 显示所有的URG包
    # tcpdump 'tcp[13] & 32!=0'
    - 显示所有的ACK包
    # tcpdump 'tcp[13] & 16!=0'
    - 显示所有的PSH包
    # tcpdump 'tcp[13] & 8!=0'
    - 显示所有的RST包
    # tcpdump 'tcp[13] & 4!=0'
    - 显示所有的SYN包
    # tcpdump 'tcp[13] & 2!=0'
    - 显示所有的FIN包
    # tcpdump 'tcp[13] & 1!=0'
    - 显示所有的SYM/ACK包

  1. # tcpdump 'tcp[13]=18'

  1. 注意:只有PSH,RST,SYN和FIN标识显示在tcpdump的标识字段。URG和ACK也会显示,但显示在tcpdump的其他地方。

  1. 记住这些过滤器工作的原因。上面的过滤器之所以能找到各种类型的包是因为tcp[13]观察的是tcp首部偏移量为13的位置(tcp的标志位为TCP报文的第13个字节),&后面的数字是字节中的位,不等于0代表该位被打开。

  1. 有了这么多强大的工具,就有很多方法来处理事情,下面是另一种抓指定tcp标识的包的方法。
    - 用tcpflags选项(表示TCP报文中标志位字节的偏移量 )抓取tcp标识
    # 'tcp[tcpflags] = tcp-syn' //匹配只有syn标志设置为1的 tcp报文

  1. # 'tcp[tcpflags] & (tcp-syn |tcp-ack |tcp-fin) !=0' //匹配含有syn,或ack或fin标志位的TCP报文

  1. /*
    偏移量有时会忘记。不过tcpdump为你提供更方便的用法,你不用记位这些数字,用字符就可以代替了.
    下面是tcpdump提供的字符偏移量:
    icmptype:表示icmp报文中类弄字节的偏移量
    icmpcode:表示icmp报文中编码字节的偏移量
    tcpflags:表示TCP报文中标志位字节的偏移量
    此外,还提供了很多值来对应上面的偏移字节:
    ICMP中类型字节的值可以是:
    icmp-echoreply, icmp-unreach, icmp-sourcequench, icmp-redi﹔ect, icmp-echo, icmp-routeradvert, icmp-routersolicit,
    icmp-timxceed, icmp-paramprob, icmp-tstamp, icmp-tstam﹑reply, icmp-ireq, icmp-ireqreply, icmp-maskreq, icmp-maskreply.
    TCP中标志位字节的值可以是:
    tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-ack, tcp-urg.

  1. */

  1. 指定的交互
    最后,你将会记住一些快捷的方法来抓取特定的交互,如ipv6和异常/恶意的包。
    - IPv6交互
    # tcpdump ip6
    - RST和SYN标识都打开的交互
    # tcpdump 'tcp[13] = 6'
    - 存在'Evil Bit'的交互

  1. # tcpdump 'ip[6] & 128 != 0'

  1. 结语

  1. 好了,这篇入门文章应该使你更加进步了,但随时查阅man手册仍然是最行之有效的方法,我真心的希望这些能对你有所帮助,如果你有什么问题欢迎随时与我交流。

  1. 英文原文:http://www.danielmiessler.com/study/tcpdump/#options
    以上译文转自:http://blog.chinaunix.net/uid-26490511-id-3046236.html
鲸鱼优化算法(WOA)与门控循环单元(GRU)结合的预测模型(WOA-GRU)及其Python和MATLAB实现 Python和MATLAB的实现均突出模型结构和优化过程。2. **全局搜索与局部搜索结合**:WOA在寻优时,既有全局搜索的能力,又具备局部精准搜索的能力,能有效避免陷入局部最优解。2. **简化结构**:与长短期记忆(LSTM)相比,GRU的结构更为简化,避免了多层细胞结构,提高了计算效率。4. **使用WOA进行优化**:通过WOA迭代优化GRU模型中的参数,如学习率、批量大小和GRU单元的权重。3. **良好的表现**:GRU在多个时序数据序列的预测任务中表现优异,特别是在较短的数据序列中。 阅读详情

相关推荐

osgEarth添加线特征

部分关键代码: osgEarth::Annotation::FeatureNode* pathNode = 0; osgEarth::Symbology::Geometry* path = new osgEarth::Symbology::LineString(); Track*track = dynamic_cast<Track*>(entity->getProperty(PS_TRACK)); if (track == nullptr) { return; } st.

wb175208的专栏 2968

TCPDUMP(命令行操作)-抓包、筛选、高级筛选、过程文档记录

TCPDUMP No-GUI的抓包分析工具 Linux、Unix系统默认安装TCPdump—–抓包 抓包 默认只抓68个字节 tcpdump -i eth0 -s 0 -w file.pcap tcpdump -i eth0 port 22 读取抓包文件 Tcpdump -r file.pcap选项介绍-A 以ASCII格式打印出所有分组,并将链路层的头最小化

含笑 9万+

3GPP协议解读_NTN系列(一)_38.811_非地面网络(NTN)的背景、应用场景和信道建模

非地面网络覆盖广,对物理攻击和自然灾害有一定的抵抗性。本文根据3GPP协议对NTN网络的背景、应用场景和信道模型进行了整理。

JCMLSY的博客 4928

计算机网络抓包工具——tcpdump详解

tcpdump是Linux里的字符界面的数据抓包分析软件。tcpdump是一个用于截取网络分组,并输出分组内容的工具。

m0_52165864的博客 4万+

别再手动算K值了!ZEMAX中两种锥透镜建模方法详解(标准面 vs. 轴锥面)

本文详细解析了ZEMAX中锥透镜的两种建模方法:标准面与轴锥面。通过对比两者的精度、计算效率和适用场景,帮助工程师在激光整形、光束匀化等应用中做出最优选择,并提供了参数设置和异常排查的实用技巧。

weixin_42548874的博客 320

硬全桥副边钳位管Vds电压凸台揭秘——寄生参数引发的导通异常

本文深入分析了硬全桥副边钳位管Vds电压凸台现象,揭示了寄生参数如何引发导通异常。通过波形分析和工程实践,详细解析了走线电感的蓄能效应和体二极管的接力作用,并提供了PCB布局优化、元件选型和驱动电路调整等解决方案,帮助工程师有效应对这一常见问题。

weixin_30825581的博客 430

Tcpdump命令详解

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。tcpdump可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具,windows平台有wireshark等工具,tcpdump可以将网络中传输的数据包的“包头”全部捕获过来进行分析,其支持网络层、特定的传输协议、数据发送和接收的主机、网卡和端口的过滤,并提供and、or、not等语句进行逻辑组合捕获数据包或去掉不用的信息。......

qq_57377057的博客 4万+

【产品】 产品设计:如何解决铝合金氧化着色后表面硬度低的问题(硬质氧化)

1、氧化处理技术 1)化学氧化 化学氧化处理所获得的膜层较薄,一般厚度为0.5μm ~4μm,质软不耐磨,抗蚀能力低于阳极氧化膜。 一般不宜单独便用,由于化学氧化膜吸附能力好,主要作用于油漆的底层,化学氧化按其溶液性可分为碱性和酸性两种。按其膜层性质可分为氧化膜,磷酸盐膜、铬酸盐膜及磷酸一铬酸盐膜等(这类型的氧化膜是可导电)。 2)电化学氧化(阳极氧化) 电化学氧化(俗称阳极氧化)是铝及...

产品线负责人 9733

使用tcpdump 进行网络包分析

tcpdump介绍 tcpdump 是一个运行在命令行下的抓包工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。tcpdump 适用于 大多数的类Unix系统操作系统(如linux,BSD等)。类Unix系统的 tcpdump 需要使用libpcap这个捕捉数据的库就像 windows下的WinPcap。 在学习tcpdump前最好对基本网络的网络知识有

Daniel 的技术笔记 不积跬步无以至千里,不积小流无以成江海。 1万+

27、自闭症儿童治疗与玩具设计研究

本研究探讨了自闭症儿童的治疗方法与玩具设计之间的关联,分析了游戏疗法、音乐疗法和职业疗法等在治疗中的应用,并介绍了多种针对自闭症儿童的治疗玩具案例。通过用户研究和多学科合作,提出了以Pro-Ability为核心的设计理念,开发了结合音乐疗法和精细运动训练的智能玩具套件。研究总结了当前成果与局限性,并展望了未来发展方向,旨在为自闭症儿童提供更有效的康复支持。

keras9composer的博客 211

Python 爬虫实战:爬取股票数据做 K 线图可视化

摘要:本文介绍基于Python的股票数据爬取与K线图可视化全流程技术方案。通过Requests库抓取东方财富网股票数据,使用Pandas进行清洗处理,并利用mplfinance库实现专业K线图绘制。文章详细讲解了数据爬取接口分析、反爬策略配置、K线图绘制方法(包含基础K线图和带均线的进阶版本),以及核心统计指标计算。该方案可应用于股票价格趋势分析,为投资决策提供数据支持,同时强调了数据使用的合规性和技术优化方向。

2503_91057718的博客 2048

tcpdump的使用方法

tcpdump是Linux中强大的网络数据采集分析工具之一。tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 1. 常用的参数 $ tcpdump # 默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包。 $ tcpdump -i eth1 # 【参数】-i,指定网卡,如eth0、eth1。 $

休息一下接着来的博客 7627

PCIe-Orders set Blocks之symbol对齐

有序集的使用场合很多,如在链路link阶段,进入polling后,便开始有序集的发送。一个 Ordered Set Block 包含一个同步头,后跟一个有序集。多通道链路的所有 Lane 必须同时传输相同的有序集,而且有序集的第一个符号定义了有序集的类型。但在PCIE中,8GT/s及以上的速率,采用的是128b/130b编码。128-bit是想要传输的payload,实际会传输130-bit,多出来的2-bit就是sync header。Block有两种,通过Sync header区分:10b:表示data

weixin_44700185的博客 813

tcpdump 的使用方法

超级详细Tcpdump 的用法 http contains “http://odp.mmarket.com/rs/res/21/2012/01/13/a066/427/22427066/picture2.jpg” http://network.51cto.com 2005-12-26 11:55 jeffyan CU 我要评论(2) 摘要:第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0

weixin_42816196的博客 1667

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

tcpdump使用方法总结

tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是

linux_tcpdump的博客 825

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

事到如今已经不敢问的tcpdump的使用方法

1 构成 master: SZE-L0149625 node1: SZE-L0149628 在 node1 上启动 httpd。 在 master 上通过 curl 执行请求。 master -------------------- > node1 curl http://node1:2800 httpd(port=2800) 复制代码2 环境 master, ...

weixin_33726318的博客 2191

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Tcpdump 抓包分析指令使用方法

tcpdump是一个强大的网络数据包抓包分析工具,用于抓取数据包和分析网络流量。并以可阅读的格式展示,包括源和目标地址、端口、协议类型等信息。tcpdump还有很多过滤选项,可以帮助我们筛选有用的信息,精准筛选特定流量,便于网络故障判断、网络性能分析、安全审计等等。tcpdump支持多种协议和格式,服务器管理员、网络工程师、安全专家都经常会用到这个工具。

par@ish的博客 2501

tcpdump如何抓接口包_TCPDUMP抓包方法

命令行参数tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名] [ -s snaplen ][ -T 类型 ] [ -w 文件名 ] [表达式 ]-n: 不把网络地址转换成名字-a: 将网络地址和广播地址转变成名字;-e: 在输出行打印出数据链路层的头部信息;-t: 在输出的每一行不打印时间戳;-v: 输出一个稍...

weixin_39909001的博客 2871

tcpdump方法使用总结

1)  想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包 2)  截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信 3)  获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包 4)  获取主机210.27.48.1接收或发出的telnet包 5)  对本机的udp 123 端口进行监视123

thuluyang的专栏 549

tcpdump常用方法

tcpdump常用方法tcpdump抓取80端口tcpdump排查DNS解析 tcpdump抓取80端口 # 抓取80端口 tcpdump -i any -n port 80 tcpdump排查DNS解析 # 排查dns是否解析成功 # tcpdump -i any port domain -nn |grep 域名关键字 tcpdump -i any port domain -nn |grep zoom ...

教Linux的李老师 2723

tcpdump的常用方法

有root的权限才能使用。如果是普通用户,要使用sudo 。 1) 抓全量包 tcpdump -i any -w /tmp/11.cap 2) 针对网卡抓包 Tcpdump -i eth0 -w /tmp/11.cap 3) 针对某个IP地址抓包 Tcpdump -i any host xx.xx.xx.xx -w /tmp/11.cap 4) 针对某个端口抓包 Tcpdump -i any port...

a18827547638的博客 4448

tcpdump的常见方法

tcpdump广泛应用于网络故障诊断、网络安全监控和协议分析等领域。本文将详细介绍tcpdump的使用方法,包括安装、基本命令结构、选项、过滤表达式以及实际应用场景。

玖拾说架构 701

tcpdump工具的使用方法与常见选项

tcpdump工具的使用方法与常见选项 tcpdump 命令 是一款 sniffer 工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。 直接启动tcpdump将监视第一个网络接口上所有流过的数据包 tcpdump 监视指定网络接口的数据包 tcpdump -i eth1 如果不指定网卡,默认 tcpdump 只会监...

如故的博客 2717

tcpdump如何抓接口包_tcpdump抓包方法

http://blog.chinaunix.net/u1/43765/showart_344169.html命令行参数tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名] [ -s snaplen ][ -T 类型 ] [ -w 文件名 ] [表达式 ]-n: 不把网络地址转换成名字-a: 将网络地址和广播地址转...

weixin_39743722的博客 219

Android tcpdump抓包方法详解

Android手机怎么抓TCP数据包?由于Android系统是基于linux,所以可以TCPdump这个工具,但手机必须拥有Root权限方可运行。下面与大家分享TCPdump安装与使用方法。 1、首先下载《Tcpdump工具包》,解压后有个tcpdump文件; 2、将tcpdump上传到手机中; adb push tcpdump /data/local

六桥风月IT随笔 1474
上一篇: 你需要知道的16个Linux服务器监控命令
下一篇: 10 个你需要了解的 Linux 网络和监控命令
浪里一淘
博客等级 码龄15年 19粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值