首页 > 其他分享 >学习笔记-Wireshark

学习笔记-Wireshark

时间:2022-11-03 12:33:05浏览次数:86  
标签:00 http contains udp tcp 学习 笔记 Wireshark

Wireshark


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


官网

流量包资源

在线分析

文章 & Reference

插件/增强工具


简介

什么是流量包

流量包指利用 tcpdump 等工具,对计算机上的某个网络设备进行流量抓取所所获得的 PCAP 格式的流量文件。

什么是 wireshark

Wireshark 是非常流行的网络流量分析软件,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程各种问题定位。Wireshark 使用 WinPCAP 作为接口,直接与网卡进行数据报文交换。

什么是 Tshark

网络分析工具下的一个分支,主要用于命令行环境进行抓包、分析,尤其对协议深层解析时,难以胜任的场景中。简单来说就是命令行下的 wireshark


安装

Ubuntu

add-apt-repository ppa:wireshark-dev/stable
apt update
apt install -y wireshark

过滤语法

比较操作符

lt   <      # 小于
le   <=     # 小于等于
eq   ==     # 等于
gt   >      # 大于
ge   >=     # 大于等于
ne   !=     # 不等

逻辑操作符

and  &&     # 两个条件同时满足
or   ||     # 其中一个条件被满足
xor  ^^     # 有且仅有一个条件被满足
not  !      # 没有条件被满足
[n] [...]   # 过滤特定的单词或文字

快速使用

http.request.method == "POST"       # POST 请求
tcp contains "http"                 # 显示 payload 中包括"http"字符串的 tcp 封包.
http contains "flag"
http.request.uri contains "online"  # 显示请求的 uri 包括"online"的 http 封包.
ip.addr == 1.1.1.1                  # IP 为 1.1.1.1 的流量

Ctrl+Alt+Shift+T,切换跟踪 tcp 流

过滤 IP

如来源 IP 或者目标 IP 等于某个 IP

ip.src eq 192.168.1.254 or ip.dst eq 192.168.1.254

或

ip.addr eq 192.168.1.254            # 都能显示来源 IP 和目标 IP

过滤端口

tcp.port eq 80                      # 不管端口是来源的还是目标的都显示
tcp.port == 80
tcp.port eq 2722
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80                   # 只显 tcp 协议的目标端口 80
tcp.srcport == 80                   # 只显 tcp 协议的来源端口 80
udp.srcport == 80                   # 筛选udp协议的源端口为80的流量包
udp.port eq 15000
tcp.port >= 1 and tcp.port <= 80    # 过滤端口范围

过滤协议

tcp
udp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl
oicq
bootp

排除 arp 包,如 !arp 或者 not arp

过滤 MAC

以太网头过滤

eth.dst == A0:00:00:04:C5:84    # 过滤目标 mac
eth.src eq A0:00:00:04:C5:84    # 过滤来源 mac
eth.dst==A0:00:00:04:C5:84
eth.dst==A0-00-00-04-C5-84
eth.addr eq A0:00:00:04:C5:84   # 过滤来源 MAC 和目标 MAC 都等于 A0:00:00:04:C5:84 的

包长度过滤

udp.length == 26                # 这个长度是指 udp 本身固定长度8加上 udp 下面那块数据包之和
tcp.len >= 7                    # 指的是 ip 数据包(tcp 下面那块数据),不包括 tcp 本身
ip.len == 94                    # 除了以太网头固定长度 14,其它都算是 ip.len,即从 ip 本身到最后
frame.len == 119                # 整个数据包长度,从 eth 开始到最后

http 模式过滤

http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”

# GET包
http.request.method == “GET” && http contains “Host: “
http.request.method == “GET” && http contains “User-Agent: “
# POST包
http.request.method == “POST” && http contains “Host: “
http.request.method == “POST” && http contains “User-Agent: “
# 响应包
http contains “HTTP/1.1 200 OK” && http contains “Content-Type: “
http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “

TCP 参数过滤

tcp.flags                   # 显示包含 TCP 标志的封包。
tcp.flags.syn == 0x02       # 显示包含 TCP SYN 标志的封包。
tcp.flags.reset == 1        # 过滤 TCP RST 包。先找到 RST 包,然后右键 Follow -> TCP Stream 是常用的排障方式
tcp.window_size == 0 && tcp.flags.reset != 1
tcp.analysis.retransmission # 过滤所有的重传包

包内容过滤

tcp[20]                     # 表示从 20 开始,取 1 个字符
tcp[20:]                    # 表示从 20 开始,取 1 个字符以上
tcp[20:8]                   # 表示从 20 开始,取 8 个字符
udp[8:1]==32
udp[8:3]==81:60:03          # 偏移 8 个 bytes,再取 3 个数,是否与 == 后面的数据相等
eth.addr[0:3]==00:06:5B

matches(匹配)和 contains(包含某字符串)语法

ip.src==192.168.1.107 and udp[8:5] matches “\\x02\\x12\\x21\\x00\\x22″
ip.src==192.168.1.107 and udp contains 02:12:21:00:22
ip.src==192.168.1.107 and tcp contains “GET”
udp contains 7c:7c:7d:7d    # 匹配 payload 中含有 0x7c7c7d7d 的 UDP 数据包,不一定是从第一字节匹配。

捕获USB流量

相关工具

相关文章


案例

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

标签:00,http,contains,udp,tcp,学习,笔记,Wireshark
From: https://www.cnblogs.com/haidragon/p/16854064.html

相关文章

  • JDK动态代理学习笔记
    JDK动态代理学习2022.10.23今天在看Java基础的时候,看到Reflect方面,资料提到各种框架离不开Reflect,同时动态代理也依赖于Reflect去随便搜了点动态代理的文章,看了看如何调......
  • 学习python第四天
    类和对象python中几乎所有东西都是对象,拥有属性和方法1.创建类使用class关键字: 每次使用类创建新对象时,都会自动调用_init_()函数 通过_init_()......
  • 深度学习相关面试题
    人工智能大数据与深度学习 公众号:datayx1.CNN的特点以及优势改变全连接为局部连接,这是由于图片的特殊性造成的(图像的一部分的统计特性与其他部分是一样的),通过局部连接和参......
  • 李沐《动手学深度学习》TensorFlow 2实现
    人工智能大数据与深度学习 公众号:datayx内容简介此书的结构:本仓库主要包含code和docs两个文件夹(外加一些数据存放在data中)。其中code文件夹就是每章相关jupyternotebook......
  • TensorFlow 最佳学习资源大全(含课程、书籍、博客、实战项目)
    人工智能大数据与深度学习 公众号:datayxTensorFlow从0到1学习资料大全,含入门指南、在线博客、视频教程、书籍推荐和实战项目等注:♥资料获取方式关注微信公众号datayx ......
  • 软件技术基础学习笔记(2)——实习一个命令行统计数统计创程序
    软件技术基础浙江理工大学软件技术基础作业目标实习一个命令行统计数统计创程序姓名学号周彬豪20203330300093软件技术基础学习笔记(2)——实习一个命令......
  • Logstash 学习使用
    一、概要1.1、官网地址https://www.elastic.co/cn/logstash/1.2、介绍Logstash能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用Grok从非结构化数据中......
  • ECharts学习笔记
    目录ECharts学习笔记原文链接ECharts配置语法第一步:创建HTML页面第二步:为ECharts准备一个具备高宽的DOM容器第三步:设置配置信息图形示例饼图柱状图下钻柱状图E......
  • 学习vue3(五)(插槽slot,Teleport传送组件,keep-alive缓存组件,依赖注入Provide / Inject)
    插槽slot插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot>表示,父组件可以在这个占位符中填充任何模板代码,如HTML、组件等,填充的内容会替换子组件的<slot......
  • 使用深度强化学习改进POMDP
    论文提出一种ADRQN架构来增强在部分可观测领域的学习表现,架构的特点在于同时考虑动作和观测作为模型的输入。如下图中的模型所示,我们的动作和观测在经过相关的维度变换之......