抓包神器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分析总结——涵盖主要使用场景和进阶用法

站长声明

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

标签:

相关文章

  • 杭州将把创业投资引导基金规模从10亿元扩大到30亿元

    杭州将把创业投资引导基金规模从10亿元扩大到30亿元

    据新华社报道,投资界5月26日消息,为深入实施创新驱动发展战略,充分发挥发挥创业投资促进创新创业的积极作用 杭州市发展改革委、市财政局近日决定,规范杭州市创业投资引导基金运作,扩大引导基金规模从10亿元到30亿元。 杭州市发改委、市财政局联合印发的《杭州市创业投资

    06-18

  • 疯狂的NVIDIA

    疯狂的NVIDIA

    如果要评选年度最热门的公司,NVIDIA一定有一席之地。 2019年生成式AI的爆发,使得一种只在消费电子产品中出现的现象在企业级芯片的采购中很少出现:科技行业的每个人都等待数月并花费大量资金。 购买一个你可能看不到真面目的产品,Nvidia H,这是一款可以在训练 AI 过程中显

    06-18

  • 曹操出行完成38亿元B轮融资,这是今年国内网约车领域首笔股权投资,

    曹操出行完成38亿元B轮融资,这是今年国内网约车领域首笔股权投资,

    据投资界(ID:pedaily)9月6日消息,曹操旅游宣布完成38亿元B轮融资。 人民币。 本轮融资不仅是今年以来网约车公司境内首笔股权投资,也是今年以来网约车旅游公司境内单笔金额最大的融资。 吉利控股集团董事长李书福表示,布局大众出行是吉利科技转型战略的关键举措之一。

    06-18

  • 摩根士丹利或因Facebook上市遭调查

    摩根士丹利或因Facebook上市遭调查

    美国金融业监管局负责人表示,摩根士丹利或面临监管机构调查。 据悉,该分析公司上周在Facebook首次公开募股前向其进行了报告。 机构投资者散布负面消息。 金融业监管局主席及其首席执行官理查德凯彻姆今天在一封电子邮件中表示,如果这些指控属实,将导致投资者对金融业监管

    06-18

  • 刚刚,谷歌又被欧盟罚款113亿人民币

    刚刚,谷歌又被欧盟罚款113亿人民币

    雷锋网消息:北京时间3月20日晚,欧盟反垄断领导人玛格丽特维斯塔格召开新闻发布会,正式宣布谷歌将被罚款14.9亿人民币欧元(约16.9亿欧元)。 因谷歌涉嫌垄断在线搜索广告而被罚款 10 亿美元(1 亿元人民币)。 这是谷歌自2008年以来第三次收到欧盟的反垄断罚款。 在这次会议

    06-18

  • 天山股份利润双双下滑,净利润同比下降7.31%至15.16亿元

    天山股份利润双双下滑,净利润同比下降7.31%至15.16亿元

    天山股份(77.SZ)发布年报。 公司实现营业收入86.92亿元,同比下降10.28%,净利润15.16亿元,同比下降7.31%,加权平均净资产收益率14.26%,基本每股收益1元/股。

    06-18

  • 共享电动汽车再次受到资本青睐, “巴歌旅游”宣布完成2500万元A轮融资,

    共享电动汽车再次受到资本青睐, “巴歌旅游”宣布完成2500万元A轮融资,

    据投资界7月18日消息,新能源汽车分时租赁平台“巴歌出行”宣布完成万元A轮融资。 智行创新领投,联想之星跟投。   巴歌旅游CEO孙杨表示,本轮融资将助力其城市扩张和规模化运营,并将其盈利模式快速复制到全国更多城市。    此前,巴歌出行于今年3月获得宝嘉租车1万元天

    06-18

  • 中国联通将率先推出iPhone 4S,中国电信10月开售传闻已破灭

    中国联通将率先推出iPhone 4S,中国电信10月开售传闻已破灭

    10月8日消息,根据业内人士的爆料以及多家投行的预测,苹果刚刚发布的iPhone 4S在中国大陆仍然有其第一家合作伙伴。 首先是中国联通,其次是中国电信。 预计中国电信将晚于中国联通推出CDMA版iPhone 4S。 此前有关中国电信将在10月份销售iPhone 5的传言自然已经破灭。    此

    06-18

  • 麦当劳不再使用一次性餐具,花了两年时间用婴儿奶瓶材料重新设计 - Feel Good每周

    麦当劳不再使用一次性餐具,花了两年时间用婴儿奶瓶材料重新设计 - Feel Good每周

    Feel Good浠嬬粛鑰愬厠鈥滃緟椋庢潵鈥濓紝闆剁⒊鐗╂祦鍥紑鍚汉璞″拰骞筹紝闇?瑕佲?滆湝铚傗?濆棥鍡′袱澹?016骞翠负楹﹀綋鍔宠璁$幆淇濋鍏佛煉hristopher Raeburn锛氭垜瑙佽瘉浜嗕汉浠鍙寔缁椂灏氭?佸害鐨勮浆鍙橈紝鍥炴敹鏉愭枡琚敤鏉ュ埗浣滈珮绔

    06-21

  • 新锐个人护理品牌“Rock Zoo”连续完成两轮千万美元融资,打造年轻一代生活方式品牌

    新锐个人护理品牌“Rock Zoo”连续完成两轮千万美元融资,打造年轻一代生活方式品牌

    新锐个人护理品牌“Rock Zoo”近日完成融资数千万美元A轮和A+轮融资,其中A轮融资由明讯资本领投,源码资本跟投; A+轮融资由创新工场领投,先锋长青、源码资本、清流资本跟投。 本次募集资金将主要用于研发投入、产品拓展、品牌建设、团队储备和扩张。 Rock Zoo于今年1月开设

    06-17

  • 解码乐居机器人:一支年轻的科技创新团队破茧而出

    解码乐居机器人:一支年轻的科技创新团队破茧而出

    在世界机器人大会上,工信部部长苗圩强调“加快机器人产业发展是机器人产业发展的重要方向”制造业高质量发展。 发展过程中面临诸多问题和挑战。 机器人产业关键核心技术有待进一步提升,应用场景和领域有待进一步拓展。 “我国的机器人产业发展到现在,已经有很多多年掌握核

    06-18

  • 滴滴进军俄罗斯市场,鞑靼斯坦成为走出去的第一站

    滴滴进军俄罗斯市场,鞑靼斯坦成为走出去的第一站

    投资界(ID:pedaily)7月28日消息,据共和国投资发展局官网发布的消息鞑靼斯坦共和国,滴滴最近已聘请司机为喀山市提供出行服务做准备。 喀山将成为滴滴进军俄罗斯市场的第一站。 周五,俄罗斯机密信息网络Avito发布了滴滴在喀山招募司机的通知。 。 通知显示,“孔夫子”公

    06-18