tcpdump+wireshark抓包分析

 


tcpdump是linux下的一个命令行抓包工具
wireshark配备了图形化界面,所以建议是
tcpdump抓包生成.pcap文件放到wireshark里面进行分析

tcpdump核心参数详解

tcpdump的参数是如何构成的:

  1. option可选参数
  2. proto类过滤器:主要是根据协议进行过滤,可识别参数有:tcp udp ip ip6 icmp arp wlan ether
  3. type类过滤器:过滤特殊端口,ip,网段:可识别的关键字有:host net port portrange
  4. direction类过滤器:根据数据流向进行过滤,可识别的关键字:src dst 也可以使用逻辑运算符比如:src or dst

tcpdump的输出

理解输出结构

21:26:49.013621 IP 172.20.20.1.15605 > 172.20.20.2.5920: Flags [P.], seq 49:97, ack 106048, win 4723, length 48

这是一个简单的tcp抓包

  1. 时间戳
  2. 网络协议ip
  3. 发送方ip+端口
  4. >代表数据流向
  5. 发送端ip+端口
  6. 冒号:后跟数据包内容包括flag标识符[P.]代表PUSH标志位为1,seq号,ack号,窗口大小win,数据包长度length

flag标识符

tcp报文的flag有如下几种

  1. [P] PUSH 推送数据
  2. [S] SYN 开始连接
  3. [F] FIN 结束连接
  4. [R] RST 重置连接
  5. [.] 没有flag标志位

常规过滤规则

基于IP地址过滤

使用host进行指定IP地址进行过滤,可以是发送端也可以是接收端
tcpdump host 192.168.10.100
指定捕获和192.168.10.100相关的数据包

如果要细化是发送端还是接收端,可以使用src和dst参数

# 根据源ip进行过滤
$ tcpdump src 192.168.10.100

# 根据目标ip进行过滤
$ tcpdump dst 192.168.10.200

基于网段过滤

如果ip范围是一个网段,可以这样指定

tcpdump net 192.168.10.0/24

同样可以使用src dst来指定发送或接受

基于端口过滤

使用port关键字进行端口过滤

tcpdump port 80

如果想要抓两个端口可以这样写

tcpdump port 80 or port 8080
//或是简写成这样
tcpdump port 80 or 8080

如果要抓取一个范围,可以使用portrange

tcpdump portrange 80-8080

对于一些常见协议的默认端口,可以直接使用协议名
比如http=80 https=443

tcpdump port http or https

基于协议进行过滤

常见的网络协议有:tcp, udp, icmp, http, ip,ipv6 等

tcpdump tcp

可选参数解析

不解析域名提升速度

  1. -n 不把ip转化为域名,避免了dns的过程,会快很多
  2. -nn 不把协议和端口号转化为域名,也会更快
  3. -N 不打印出host 的域名部分,例如使用端口号 80 的数据包将显示为 ... 80 > ...,而不是 ... http > ...

结果输出到文件

使用tcpdump抓包之后,需要用其他的工具进行分析,比如wireshark

使用-w参数后接一个以.pcap为后缀的文件名,可将tcpdump抓取的数据保存到文件中

tcpdump tcp -w tcp.pcap

从文件中读取数据

同样也可以进行文件中的过滤分析

tcpdump icmp or tcp -r 1.pcap

指定抓取个数

-c指定抓包个数
tcpdump tcp -c 5
抓取5个tcp的数据包

指定设备口

-i指定设备口

tcpdump -i eth0   # 指定使用 eth0 接口进行数据包捕获
tcpdump -i wlan0  # 指定使用 wlan0 接口进行数据包捕获
tcpdump -i 1      # 使用接口编号为 1 进行数据包捕获

过滤规则组合

运算规则和C中一致
and &&
or ||
not !

举个例子,我想需要抓一个来自10.5.2.3,发往任意主机的3389端口的包
tcpdump src 10.5.2.3 and dst port 3389

需要多个表达式组合时,可能需要括号,由于括号在shell中是特殊符号,需要用引号将其包含起来
tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'

posted @   LiviaYu  阅读(309)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示