抓包神器TCPDUMP分析总结——涵盖主要使用场景和进阶用法

发布于:2024-10-24 编辑:匿名 来源:网络

1.简介 在网络排查过程中,经常需要抓包。 Windows有wireshark,Linux中最常用的是tcpdump,也是问得最多的一种。

问题:“iptables被限制后,tcpdump还能抓包吗?”,首先看数据包进入操作系统和退出的顺序:网卡nic -> tcpdump -> iptables(netfilter) -> app -> iptables( netfilter) -> tcpdump -> 网卡nic很明显。数据包到达网卡后,tcpdump有能力直接捕获,不受iptables的影响。

此时数据包还没有到达iptables的PREROUTING链。到达APP后,处理后的数据包将从iptables中出去。

,最终会走到POSTROUTING链,然后到tcpdump,所以此时受到iptables的OUTPUT和POSTROUTING链的影响。这两条链的规则决定了tcpdump是否可以捕获出站数据包。

iptables各链的工作顺序如下(图片来自网络):本文将总结日常工作中的一些用法和技巧,同时还附上tcpdump官方文档: -i any host ..1.1 #-i指定网络卡一样。此时,如果与对端主机有数据交互,则屏幕上有输出信息,并且该信息不会保存在文件中。

例如下面的icmp数据包:CTRL+C向进程发送SIGINT信号,中断tcpdump当前的抓包,你会发现这些数据包会默认显示在屏幕上。如果直接用tcpdump分析简单的数据包是没有问题的。

但在大报文交互场景下,需要对特定流进行过滤。这种情况下用tcpdump分析的效率会很低。

正确的做法是用tcpdump抓包并保存为抓包文件。 (.pcap和.cap都可以),然后使用wireshark进行分析。

与此同时,这里仍然存在问题。默认情况下,tcpdump会将IP反向解析为主机名或域名。

-nn 参数可以禁用反向解析以增加可读性。2. 写入文件并检查消息(-w、-r)。

那么改进后的抓包命令可以是: 代码语言:txt copy tcpdump -i any host ..1.1 -nn -v -w client.pcap-nn :禁用反向解析 -v:显示详细抓包信息 -w:写入client.pcap,你可以看到第一条命令。 IP 将不再被解码为主机名或域名。

第二个命令-w写入客户端。在 .pcap 之后,使用 -r 参数指定要查找的消息文件的内容。

3. 指定源IP 或目标IP 或网段(src、dst、net)。如果只想抓一个方向的流量,可以用 src 指定源,用 dst 指定目标: 代码语言:txt copy tcpdump -i any src host ..1.1 -nn 只会抓一个方向的流量。

如图所示,只有icmp回复和arp报文来自1.1方向。 arp缓存表过期后,会发送广播获取mac地址。

dst 指定到达目的方向的报文,过滤本端向对端发送的 icmp 请求: 代码语言:txt copy tcpdump -nn -i any dst ..1.1 指定网段: 代码语言:txt copy tcpdump -nn -i 任何网络。 .1.1/.指定每个数据包捕获的字节数(-s)。

有时候我们在分析数据包的时候,只需要分析头部即可。无需分析每个数据包的数据部分。

这可以最大限度地减少捕获文件的大小。大小,-s指定每条消息前面捕获多少字节:代码语言:txt copy tcpdump -nn -i any -s 84 host ..1.1 #imcp协议默认为“56字节”数据字节+“28字节” ICMP头,共84字节。

如果不指定-s参数,tcpdump默认只会捕获每条消息的前56个字节。 -s 0 可以不限制字节数,每次都捕获整个消息。

包: 代码语言:txt 复制 tcpdump -nn -i any -s 0 host ..1.1 如果是icmp,icmp头56字节,默认64字节: 5.指定端口和协议(端口,最好是捕获有问题的端口或协议比捕获所有端口范围和协议更能对症下药,语法也很简单: 代码语言:txt copy tcpdump -nn -i any -s 0 icmp #只捕获icmp协议。 icmp运行在网络层,所以不需要指定端口来捕获icmp,那么可以这样编写tcp端口捕获: 代码语言:txt copy tcpdump -nn -i any - s 60 tcp port 80 #作为演示,这里只捕获了60个头。

同样的原理,对于byte字节也适用,那么udp可以这样写: 代码语言:txt copy tcpdump -nn -i any -s 0 udp port 22捕获端口范围,需要使用 portrange 参数: 代码语言:txt copy tcpdump -nn -i any tcp portrange 53-80 如果不确定协议,只需指定端口: 代码语言:txt copy tcpdump -nn -i any -s 0 port .tcpdump 的逻辑表达式(或、与、非)逻辑语句,顾名思义,只要接触过一点编程的话,就会知道它指的是是或否,以及或、和、不是。其中,not也可以用作!。

这三个参数比较常用,可以帮助我们过滤掉有用的信息,并在它引用的地方输入。使用 和 指定目标和协议: 代码语言:txt copy tcpdump -nn -i any -s 0 host ..1.1 和 icmp 使用 或 指定多个过滤条件: 代码语言:txt copy tcpdump -nn -i any -s 0 host ..1.1 或 icmp 或 src net ..1.1/32 使用 或 或 !排除过滤条件:代码语言:txt copy tcpdump -nn -i any -s 0 ! net .16.0.0/16 和 icmp 以及! tcp 指定抓包的网段掩码就够了。

综上所述,您可以举一反三,组合起来灵活运用。只要抓包逻辑语法正确,哪怕又臭又长:代码语言:txt copy tcpdump -nn -i any -s 0 dst host ..1.and icmp and src net ..1.1/32 或者\( 主机 ..1.1 \) 和 ! tcpbash 解析每个命令的最大字符数。

那些又臭又长又无意义的语句是没有用的。它不适合在生产环境中使用。

相反,您可以在日常练习中拼凑并测试多种组合。当您达到熟练程度后,您可以轻松找到您想要获取哪些包以及如何在生产环境中使用它们。

7、指定数据包大小过滤(大于、小于) tcpdump 提供了指定每个数据包大小的过滤方法,这在需要过滤大数据包或特定大小数据包的场景下特别有用。过滤大于字节的数据包: 代码语言: txt copy tcpdump -nn -s 0 -i any host ..1.1 及以上和 icmp 过滤小于字节的数据包: 代码语言: txt copy tcpdump -nn -s 0 -i any Host 。

.1.1 与 less 和 icmp 一起使用,缩小范围: 代码语言:txt 复制 tcpdump -nn -s 0 -i any host ..1.1 与 less 和greater .Flags 标签解释 以下命令捕获完整的连接,包括 3 个双向握手和四向挥手: 各个Flags的含义如下: Flags含义 [S] SYN [.] ACK [S.] SYN, ACK [P.] PUSH [R.] RST [F.] FIN [DF] Don't Fragment(不分片),当DF=0时,允许分片 [FP.]FIN、PUSH、ACK。前面提到,如果使用 tcpdump 不容易直观地分析消息,可以使用 -w 将其保存到文件中,然后使用wireshark 进行分析。

:建立三次握手后,Tcp Keep-Alive保持连接,然后客户端主动挥手断开连接。客户端对应的行为如下: 9、指定抓包数量、包大小、轮询抓包(-c、-W、-C、-G) 在某些场景下,是需要分割抓包文件并轮询抓包,那么可以使用这些参数: -c 指定抓包数量 -W 写入抓包文件的最大数量,以MB为单位 -C 写入的大小上限抓包文件 -c 指定抓包 2 个: 代码语言:txt copy tcpdump -i any -s 0 net ..1.1/32 -c 2- C 指定写入文件大小上限为 1M: 代码语言: txt copy tcpdump -i any -s 0 -C 1 -v -w client.pcap -W 指定写入10个抓包文件,每个文件仅抓包1M,循环写入: 代码语言:txt copy tcpdump -i任何-s 0 -C 1M -v -W 10 -w client.pcap保存格式会在文件后缀中添加一个0-N的数字。

-G参数指定多少秒轮询并保存文件,通常采用时间格式。命令:代码语言:txt copy tcpdump -nn -i any -s 0 -G 5 -Z root -v -w %m-%d-%H:%M:%S.pcap #每五秒保存一次文件。

-Z参数指定每次写入新文件时,都会以root权限执行。 -w 时间格式是date命令的时间格式值,可以在时间之间使用。

-G 通常与 -C 配合使用,每次指定每个文件的固定大小: 代码语言:txt copy tcpdump -nn -i any -s 0 -C 1 -G 5 -v -w %m-%d -%H:%M:%S.pcap 还可以与 timeout 命令一起使用,在固定时间后停止抓包: 代码语言:txt copy timeout 10 tcpdump -nn -i any -s 0 -G 5 -v - w %m -%d-%H:%M:%S.pcap 仅捕获 10 秒,每 5 秒轮询并保存文件。 10. 捕获具有指定标志位的数据包。

虽然不常用来捕获具有指定Flag位的数据包,但wireshark通常用于分析和过滤。不过,如果你熟悉tcpdump上的这个功能,并且知道你想要什么数据包,那么tcpdump可以在这一层进行过滤。

发送对您有用的消息并减少不必要的消息数量。只捕获SYN标志位不为0,且只捕获一个数据包: 代码语言:txt copy tcpdump -nn -i any -s 0 -c 1 'tcp[tcpflags] & tcp-syn != 0' 捕获一次完整的握手所需flags:代码语言:txt copy tcpdump -nn -i any -s 0 'tcp[tcpflags] & (tcp-syn|tcp-ack|tcp-fin) != 0' 与host ..1.1同时,也可以用二进制表示,但可读性较差:代码语言:txt copy tcpdump -nn -i any -s 0 'tcp[13] & (1|2|18) != 0' and net ..1.1 /32 和 tcp 端口 80 tcp 字段存储在 tcp 标头的第 14 个字节中。

在编程中,从0开始计数,所以tcp13代表tcp头字段。附上过滤常用的几个字段的含义: 表达式含义 tcp13=2 捕获SYN包,二进制格式为:tcp23=18 捕获返回SYN的ACK包,二进制格式为:tcp13&2=2 捕获SYN和SYN对应的ACK包 tcp13=24 捕获PSH-ACK包 tcp13&1=1 捕获FIN-ACK包 tcp13&4=4 捕获RST包 其它协议如icmp: 代码语言:txt copy tcpdump -nn -i any -c 2 -s 0 host ..1.1 and 'icmp[icmptype] = icmp-echo or icmp[icmptype] = icmp-echoreply' 3.总结上面总结的是??一些比较常用的方法和工作中的技巧。

在不同的问题场景下,如果知道要抓什么包,知道自己需要什么包,抓包就越好。有了精准,定位问题就不会像大海捞针一样,分析包的过程也会变得更加高效、从容。

抓包神器TCPDUMP分析总结——涵盖主要使用场景和进阶用法

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 通知:即日起,禁止携带Note 7登机,且不得作为航空货物托运或承运

    通知:即日起,禁止携带Note 7登机,且不得作为航空货物托运或承运

    中国民航局昨天发布公告,针对三星Galaxy Note 7手机出现的问题手机,为确保航空运输安全,自10月1日起,3月27日起,三星Galaxy Note 7手机不得携带登机,也不得托运。 具体规定为:旅客及船员严禁随身或手提行李中携带三星Galaxy Note 7手机;严禁将三星Galaxy Note 7手机放

    06-17

  • 李佳琦再次受到质疑,“全网最低价”谁说了算

    李佳琦再次受到质疑,“全网最低价”谁说了算

    双11的战线越来越长,促销方式越来越难懂,冲突也越来越早发生。 今年的商战是由京东发起的。 因花西子眉笔价格得罪网友后,李佳琦直播间再次陷入困境。 上次,一个新的货币计量单位“华西币”诞生了。 这一次,“全网最低价”应该被重新理解。 双11的“简单商战”,谁没说实

    06-21

  • 人造肉生产商v2food获3500万美元A轮融资

    人造肉生产商v2food获3500万美元A轮融资

    据投资界11月30日消息,澳大利亚植物性肉类替代品研发制造商v2food获3500万美元A轮融资,由联邦科学与工业研究组织 (Commonwealth Scientific and Industrial Research Organization) CSIRO 创新基金旗下资本部门 Main Sequence Ventures 出资,私人投资公司 Horizo??n Inve

    06-18

  • 广东设立半导体产业基金 规模110亿

    广东设立半导体产业基金 规模110亿

    天眼查App显示,近日,广东省半导体及集成电路产业股权投资基金二期合伙企业(有限合伙)成立,执行事务办公室为广东粤财基金管理有限公司。 公司投资额0.1亿元人民币,经营范围为私募股权基金从事股权投资、投资管理、资产管理等活动。 合伙人信息显示,该基金由广东粤财投资

    06-18

  • 沉浸式推理互动体验平台“戏剧侦探”获数百万天使融资,经纬中国投资

    沉浸式推理互动体验平台“戏剧侦探”获数百万天使融资,经纬中国投资

    据投资界5月15日消息,沉浸式推理互动体验平台“戏剧侦探”近日获得来自经纬中国的投资。 经纬中国天使轮融资100万元。 本轮融资主要用于产品研发、内容生态建设和团队建设。   剧探本质上是一个“内容+社交”的互动平台,构建强大的社交场景,用脚本驱动场景化社交。 目前

    06-18

  • 路透社:半导体集团 ASMI 预计 2022 年下半年营收增加

    路透社:半导体集团 ASMI 预计 2022 年下半年营收增加

    据路透社报道,荷兰半导体供应商 ASM International (ASMI) 周二预测 2022 年下半年营收增加,因为预计上半年供应链问题将持续存在。 ASMI 在一份声明中表示:“根据目前的情况,我们预计下半年的收入将高于上半年。 ”英特尔和应用材料等半导体集团受到供应链挑战的打击,尽

    06-08

  • 西瓜视频已与BBC、Discovery达成内容合作,独家播出纪录片《哈勃三十年》

    西瓜视频已与BBC、Discovery达成内容合作,独家播出纪录片《哈勃三十年》

    纪录片将成为西瓜视频内容布局的另一重点。 4月22日,西瓜视频与BBC Studios宣布达成内容合作。 双方将共同制作两部新纪录片:《哈勃三十年:揭示宇宙奇观》和《灵长王国》。 同时,BBC将为西瓜视频提供数百部纪录片内容。 西瓜视频还携手另一部纪录片《发现巨头》。 西瓜视频

    06-18

  • 看亚洲之星:现代KOL开创了赢得和影响客户的新方式

    看亚洲之星:现代KOL开创了赢得和影响客户的新方式

    2016年,杭言浩回到家乡马来西亚槟城岛,亲眼目睹了年轻人如何依靠互联网追名逐利,财富,甚至能够靠它谋生。 在互联网上,任何人都可以成为明星15分钟——只需要一段成功的TikTok(抖音海外版)视频。 “然而,真正的影响力是明确自己的独特性,并为他人提供宝贵的知识和经

    06-18

  • 中期协:今年第一季度我国期货市场成交额同比增长83.08%

    中期协:今年第一季度我国期货市场成交额同比增长83.08%

    中国中期协会:今年一季度,我国期货市场成交量同比增长83.08%。 今年一季度,我国期货市场累计交易量18.49亿手,累计成交额0.36万亿元,同比分别增长69.86%和83.08%。 %。 其中,钢材、化工品、油脂、能源等期货品种交易量同比快速增长。 数据还显示,今年3月份全国期货市场

    06-18

  • 据美通社报道,生物科技公司Adcentrx Therapeutics于4月29日宣布完成由剑桥资本

    据美通社报道,生物科技公司Adcentrx Therapeutics于4月29日宣布完成由剑桥资本

    投资社区(ID:pedaily)领投的5000万美元A轮融资,重点关注突破性抗体偶联药物(“Adcentrx”) ADC旗下生物科技公司Therapeutics(“Adcentrx”)宣布完成1万美元A轮融资。 本轮融资由康桥资本领投,博裕资本旗下早期投资平台万物资本跟投。 此次融资将加速Adcentrx在ADC领

    06-18

  • 【话题互动获奖名单&精选点评】开源大模型如何帮助创业项目打造竞争力?

    【话题互动获奖名单&精选点评】开源大模型如何帮助创业项目打造竞争力?

    亲爱的参与者,感谢您参与我们的互动话题“开源大模型如何帮助创业项目打造竞争力?”在这次活动中收到的许多热情的回应和观点给我们带来了启发。 再次感谢您的支持和参与,期待在以后的活动中见到您!这些是本主题讨论中精选的评论。 我们深感荣幸并衷心感谢大家的热情分享。

    06-17

  • 全景影像技术研发公司Insta360获数亿元C+轮融资,拟在A股上市

    全景影像技术研发公司Insta360获数亿元C+轮融资,拟在A股上市

    据投资界3月20日消息,全景影像科技研发公司Insta获得数亿元C+轮融资。 本轮投资方包括迈高控股、华金资本、浪美创投等。 本轮资金将用于产品研发、营销和渠道拓展,提升品牌影响力。 此前,Insta曾于今年3月获得迅雷网络、启明创投、IDG投资的数亿元B轮融资,并于同年7月获得

    06-17