首页 > 系统相关 >网络分析工具-tcpdump

网络分析工具-tcpdump

时间:2025-01-01 20:56:57浏览次数:8  
标签:HTTP tcpdump 报文 tcp 网卡 网络分析 工具 数据包

文章目录


前言

当遇到网络疑难问题的时候,抓包是最基本的技能,通过抓包才能看到网络底层的问题


一、tcpdump基础

tcpdump是一个常用的网络分析工具。它基于libpcap,利用内核中的AF_PACKET套接字,抓取网络接口中传输的网络包。

我们对网卡进行抓包的时候,会使得网卡进入“混杂模式”,所谓混杂模式就是让网卡接收所有到达网卡的报文,因为默认情况下,不是给自己的报文网卡是不要的,要么丢弃要么转发,反正不读取内容,而进入混杂模式后,就可以看一眼报文内容了。
在这里插入图片描述
使用tcpdump命令可以使网卡自动进入混杂模式,这一点可以从dmesg系统日志中看到:
[311135.760098] device eth0 entered promiscuous mode
[311142.852087] device eth0 left promiscuous mode

官网链接

https://www.tcpdump.org/manpages/tcpdump.1.html

命令选项详解

在这里插入图片描述

  • -i 指定网络接口(如 eth0 bond0)any表示所有接口

  • -n 不对IP地址进行域名解析,直接显示IP,避免执行dns lookup

  • -nn 不对IP地址和端口号进行名称解析。

  • -c xx捕获包的数量

  • -A 以ASCII码方式显示每一个数据包(不显示链路层头部信息). 在抓取包含网页数据的数据包时, 可方便查看数据

  • -l 基于行的输出,便于你保存查看,或者交给其它工具分析,例如 管道符 tcpdump -l | tee dat

  • -s tcpdump 默认只会截取前 96 字节的内容,要想截取所有的报文内容,可以使用 -s number, number 就是你要截取的报文字节数,如果是 0 的话,表示截取报文全部内容。
    控制时间显示

  • -t 在每行的输出中不输出时间

  • -tt 在每行的输出中会输出时间戳

  • -ttt 输出每两行打印的时间间隔(以毫秒为单位)

  • -tttt 在每行打印的时间戳之前添加日期的打印(此种选项,输出的时间最直观)
    控制详细内容输出

  • -v:产生详细的输出. 比如包的TTL,id标识,数据包长度,以及IP包的一些选项。同时它还会打开一些附加的包完整性检测,比如对IP或ICMP包头部的校验和。

  • -vv:产生比-v更详细的输出. 比如NFS回应包中的附加域将会被打印, SMB数据包也会被完全解码。(摘自网络,目前我还未使用过)

  • -vvv:产生比-vv更详细的输出。比如 telent 时所使用的SB, SE 选项将会被打印, 如果telnet同时使用的是图形界面,其相应的图形选项将会以16进制的方式打印出来(摘自网络,目前我还未使用过)

  • -w 写入数据到文件

  • -r 读取文件

  • -Q 选择是入方向还是出方向的数据包,可选项有:in, out, inout,也可以使用 --direction=[direction] 这种写法

  • -S 使用绝对序列号,而不是相对序列号

  • -D 显示主机所有可用网络接口的列表

  • -e 每行的打印输出中将包括数据包的数据链路层头部信息

常规过滤规则

由于tcpdump是把经过网卡的报文全部都抓出来,所以数量是非常大的,各种乱七八糟的报文都有,是没办法定位问题的,所以tcpdump一定要配合过滤条件使用。这里只讲平时用得到的几个关键参数,再详细的自己谷歌百度,反正我一般情况下用用是够了的。
在这里插入图片描述

tcpdump输出

时间戳 协议 源地址,源端口 > 目的地址, 目的端口 网络包详细信息

TCP Packets
TCP报头的控制部分有8位:
CWR | ECE | URG | ACK | PSH | RST | SYN | FIN
[S] SYN(开始连接)
[.] ACK
[P] PSH(推送数据)
[F] FIN(结束连接)
[R] RST(重置连接)
[S.] 也表示[SYN-ACK], SYN的应答报文
[U] URG
[W] CWR
[E] ECE

一、tcpdump实践

HTTP协议

抓取HTTP GET 流量:

$ tcpdump -s 0 -A -vv ‘tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420’

抓取HTTP POST流量:

$ tcpdump -s 0 -A -vv ‘tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354’

从HTTP请求头中提取HTTP用户代理:

$ tcpdump -nn -A -s1500 -l | grep “User-Agent:”

提取HTTP 请求的主机名和路径:

tcpdump -i docker0 -nn -tttt -v -s0 -l | grep -Ei “POST /|GET /|HOST:”

提取HTTP请求的信息【密码,Cookie, Token等】:
先用POST请求,然后找到登录的URI,使用grep 找到上下20行,找到Post参数。

tcpdump -s 0 -A -vv ‘tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354’ | grep -i ‘POST /api/auth/login’ -C20

抓取eth0接口42050端口的请求,request和respones

tcpdump -i eth0 -A -s 0 ‘tcp port 42050 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)’

ICMP

抓取ICMP报文

tcpdump -n icmp

非 ECHO/REPLY 类型的 ICMP
通过排除 echo 和 reply 类型的数据包使抓取到的数据包不包括标准的 ping 包:

tcpdump ‘icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply’

状态抓包

RST状态的包

tcpdump -i eth0 -nn port 34997 and ‘tcp[tcpflags]&tcp-rst != 0’


标签:HTTP,tcpdump,报文,tcp,网卡,网络分析,工具,数据包
From: https://blog.csdn.net/cui_win/article/details/144859240

相关文章

  • 用 nodejs 实现一个命令行工具,统计输入目录下面指定代码的行数
    以下是一个使用Node.js实现的命令行工具,用于统计输入目录下指定代码文件的行数。实现思路接收命令行参数,获取输入目录和文件扩展名(例如,.js、.html、.css等)。递归遍历输入目录,查找所有符合指定扩展名的文件。对于每个找到的文件,读取文件内容并统计行数。输出统计结果。......
  • 设计一套全站请求耗时统计工具
    以下是一套可以用于全站请求耗时统计工具的设计方案,涵盖了从前端到后端的相关环节:一、整体架构该统计工具主要分为前端数据采集模块、数据传输模块以及后端数据处理与分析模块,整体架构如下:前端数据采集模块负责在用户端(浏览器)收集各个请求的相关信息,包括请求发起时间、请求完......
  • uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝扫码支付/收付款
    uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝扫码支付/收付款等功能,界面漂亮颜值高,视频商城小工具等,蚂蚁森林种树养鸡农场偷菜样样齐用于视频,商城,直播,聊天等sumer-alipay介绍uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝......
  • 【红队工具】Ehole(棱洞) v3.1 重点资产系统指纹识别
    【红队工具】Ehole(棱洞)v3.1重点资产系统指纹识别声明B站UP主泷羽sec笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。✍......
  • 提升资源管理效率必备工具推荐
    一、数据传输1、Textify(PC)作为一名技术人员,需要经常研究各种技术,因此,复制粘贴的操作十分常见。Textify可以快速复制各种控件中的文本,包括浏览器中当前页面的标题、聊天窗口中各个部分的文字、桌面应用窗口各种控件中的文字等,是复制文本必不可少的利器。当浏览到一个非常棒......
  • MATLAB滤波器设计FDATool工具箱使用说明
            MATLAB集成了一套功能非常强大的滤波器设计与分析工具FDATool,它可以很方便地设计出个滤波器。        此处应用的MATLAB版本为R2016b一、启动FDATool工具箱在命令行窗口中输入fdatool命令,打开FDATool工具箱             如果界面......
  • 你使用过Wireshark抓包工具吗?
    是的,我使用过Wireshark这个抓包工具。虽然作为前端开发,我主要关注的是Web页面的构建和用户交互,但有时也需要深入了解网络通信层面的问题。这时,我就会使用Wireshark来抓取和分析网络通信数据包。Wireshark是一个功能强大的网络协议分析工具,它可以捕获并详细显示网络数据包的内容,让......
  • Everything(文件快速搜索工具)v1.4.1.1026
    Everything是速度最快的文件搜索软件,可以瞬间搜索到你需要的文件。如果你用过Windows自Everything是速度最快的文件搜索软件,可以瞬间搜索到你需要的文件。如果你用过Windows自带的搜索工具、TotalCommander的搜索、Google桌面搜索或百度硬盘搜索,都因为速度或其他原因而不满意;或......
  • Java反射导致Metaspace OOM分析方式、工具与解决方法
    1.前言MetaspaceOOM是Java应用常见的异常,出现MetaspaceOOM时,大部分情况是因为反射生成的类占用了Metaspace太多空间导致的以下主要包含四个部分的内容:Java反射导致MetaspaceOOM的原因及分析方式与工具Java反射导致MetaspaceOOM的解决方式解决Java反......
  • 不用工具直接使用Google谷歌搜索!2024最新可用的16个Google谷歌镜像,谷歌学术镜像站(持
    Google(谷歌)退出中国后,国内一直不能正常使用Google搜索。但是在搜索可靠性与准确度方便,Google是无法绕过的搜索引擎。无论是百度Baidu或者卷土重来的Bing,在实际的搜索场景,其实是无法达到Google谷歌的水准的。另外Google在搜索领域以及公共信息领域持续不断的深耕,已经建立了庞大的......