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

站长声明

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

标签:

相关文章

  • 蓝鸟就业获Pre-A轮数千万元融资,青山资本投资

    蓝鸟就业获Pre-A轮数千万元融资,青山资本投资

    投资界11月2日消息,据36氪报道,灵活用工科技平台蓝鸟就业已完成数千万元融资9月底Pre-A轮融资,投资方为青山资本。 凌博资本担任本轮融资独家财务顾问。 此前,该公司曾于今年4月获得紫荆资本数百万天使投资。 获得融资后,蓝鸟就业下一步将加快产品研发。 除了各产品集群的

    06-17

  • 植物肉公司Simulate获得 5000 万美元 B 轮融资,Alexis Ohanian 领投

    植物肉公司Simulate获得 5000 万美元 B 轮融资,Alexis Ohanian 领投

    6 月 9 日消息,据外媒 TechCrunch 报道,美国植物性素食公司Simulate获得 1 万美元 B 轮融资。 本轮融资由 Alexis Ohanian 领投,公司估值已达 2.6 亿美元。 Simulate由BenPasternak于2016年创立,旨在为用户提供健康又美味的植物性肉类食品选择。 2017年,Simulate首款产品

    06-18

  • 商务部:千方百计推动消费持续复苏升级

    商务部:千方百计推动消费持续复苏升级

    商务部部长王文涛在新闻发布会上表示,去年四季度以来消费出现了一些情况,也就是说,下行压力加大。 今年稳定消费压力较大。 我们将认真贯彻落实党中央、国务院决策部署,坚决实施扩大内需战略,统筹疫情防控和促进消费,千方百计推动消费持续复苏和升级,增强消费对经济发展

    06-17

  • 商务部:鼓励企业开展5G、区块链等技术在商务领域的应用创新

    商务部:鼓励企业开展5G、区块链等技术在商务领域的应用创新

    打造头条新闻1月29日下午,商务部发布《商务部办公厅关于加快数字商务建设 服务构建新发展格局的通知》。 《通知》表示,助力发展数字经济、建设数字中国,要更好发挥电子商务作为数字商务最前沿、最活跃、最重要组成部分的创新引领作用,充分释放电子商务的活力。 商业领域数

    06-18

  • BOSS直聘启动“桃花行动”,免费为企业搭建互助渠道

    BOSS直聘启动“桃花行动”,免费为企业搭建互助渠道

    在新型冠状病毒肺炎疫情持续影响下,企业用工出现了一定程度的失衡。 另一方面,防疫物资和生活必需品需求大幅增加,导致防疫物资生产企业、商超、物流送货上门等行业出现人力短缺。 近日,招聘平台BOSS直聘联合店长直聘、蓝鲸招聘推出“桃花行动桃园通道计划”公益项目,针对

    06-18

  • 惠普收购Autonomy超越时代华纳收购AOL,成为史上最糟糕的并购

    惠普收购Autonomy超越时代华纳收购AOL,成为史上最糟糕的并购

    据外媒报道,舆论并未停止对惠普收购Autonomy失败的反思。 美国《纽约时报》援引分析师的话说,这次失败的收购从很多角度来看都更糟糕,甚至超过了被认为是科技史上最糟糕的时代华纳AOL合并。   《纽约时报》表示,在互联网泡沫最严重的时期,时代华纳和美国在线合并,这一

    06-18

  • 合纵文化获数亿元战略投资,鸥翎投资出资

    合纵文化获数亿元战略投资,鸥翎投资出资

    据投资界2月7日消息,合纵文化近日宣布获数亿元战略投资,投资方为鸥翎投资。    据悉,本轮融资完成后,合纵文化将继续拓展海内外音乐空间,同时探索设立“合纵音乐小镇”、“合纵音乐小镇”等综合商业实体。 《合纵街》。   公开资料显示,合宗文化创立于。 是一家以投

    06-18

  • 该公司将在南澳开发一座300MW3.6GWh太阳能储能电站

    该公司将在南澳开发一座300MW3.6GWh太阳能储能电站

    南澳一公顷土地已被开发商收购。 开发商希望采用新颖的技术解决方案,在这片土地上建造一座拥有3.6GWh储能能力的兆瓦级太阳能发电场。 欧洲可再生能源公司 PhotonEnergy 正在致力于推广澳大利亚公司 RayGen 开发的技术。 该技术是一种结合了聚光太阳能发电(CSP)和太阳能光伏

    06-08

  • 传闻开心网、千奥互动等中国社交网站明年将在美国IPO

    传闻开心网、千奥互动等中国社交网站明年将在美国IPO

    据外媒报道,人士近日透露,中国最大的社交网络公司之一的千奥互动已聘请数家投资银行作为公司下一个上半年,我们准备在美国证券市场进行首次公开??募股(IPO)。 千橡互动也成为首个上市的中文Facebook克隆网站。   新闻人士周五透露,千橡互动已聘请瑞士信贷和德意志银行

    06-17

  • 大车拼完成数千万元天使轮融资,胜辉资本

    大车拼完成数千万元天使轮融资,胜辉资本

    投资圈(ID:pedaily)领投 据7月19日消息,近期,其重点发力同城、跨城数字化合约物流服务提供商“太车拼”“金”获数千万元天使轮融资。 本轮融资由胜辉资本领投,零售行业互联网公司“抢滩”战略投资,恒动智汇资本、热金资本跟投,老股东高鹏创宏资本继续追投。 本轮融资

    06-17

  • 双成药业8日登陆深交所,多家PE机构享受IPO盛宴

    双成药业8日登陆深交所,多家PE机构享受IPO盛宴

    据投资界8月8日消息,海南双成药业股份有限公司(简称“双成药业”)今日登陆深交所,发行100万股,本次发行发行价为20元/股,对应市盈率为35.09倍。 本次募集资金将主要用于现有工厂技术改造和新工厂建设项目以及研发中心建设项目。   招股书显示,今年7月,已有5家境内P

    06-18

  • 充电运营平台蔚景云获数千万元A轮融资,Venture Works投资

    充电运营平台蔚景云获数千万元A轮融资,Venture Works投资

    投资社区(ID:pedaily)12月6日消息,据36氪报道,新能源汽车充电运营平台蔚景云获Venture Works投资数十数百万A轮融资。 据悉,本轮融资将用于蔚景云的产品研发和市场开拓。 据了解,蔚景云是一家成立于2016年的新能源运营服务公司,通过整合市场上离散的充电站/桩,提供充

    06-18