Wireshark 是一种开源、跨平台的网络数据包分析工具,能够嗅探和调查实时流量并检查数据包捕获 (PCAP)。它通常 被用作最好的数据包分析工具之一。

数据包过滤操作

ip过滤器

IP 过滤器帮助分析人员根据来自数据包(OSI 模型的网络层)的 IP 级别信息过滤流量。这是 Wireshark 中最常用的过滤器之一。这些过滤器过滤网络级信息,如 IP 地址、版本、生存时间、服务类型、标志和校验和值。

筛选                                描述
ip 显示所有 IP 数据包。
ip.addr == 10.10.10.111 显示所有包含 IP 地址 10.10.10.111 的数据包。
ip.addr == 10.10.10.0/24 显示所有包含来自 10.10.10.0/24 子网的 IP 地址的数据包。
ip.src == 10.10.10.111 显示所有来自 10.10.10.111 的数据包
ip.dst == 10.10.10.111 显示发送到 10.10.10.111 的所有数据包

TCP和UDP过滤器

TCP过滤器可帮助分析人员根据来自数据包(OSI 模型的传输层)的协议级信息过滤流量。这些过滤器过滤传输协议级别的信息,如源端口和目标端口、序列号、确认号、窗口大小、时间戳、标志、长度和协议错误。

筛选 描述 筛选 表达
tcp.port == 80 查看所有80端口的 TCP数据包 udp.port == 53 显示所有端口为 53 的UDP数据包
tcp.srcport == 1234 显示来自端口 1234 的所有TCP数据包 udp.srcport == 1234 显示所有来自端口 1234 的UDP数据包
tcp.dstport == 80 显示发送到端口 80 的所有TCP数据包 udp.dstport == 5353 显示发送到端口 5353 的所有UDP数据包

应用层http|dns

应用层协议过滤器帮助分析人员根据来自数据包(OSI 模型的应用层)的应用协议层信息过滤流量。这些过滤器根据协议类型过滤特定于应用程序的信息,例如有效负载和链接数据。

筛选 描述 筛选 表达
http 显示所有HTTP数据包 dns 显示所有DNS数据包
http.response.code == 200 显示所有带有HTTP响应代码“200”的数据包 dns.flags.response == 0 显示所有DNS请求
http.request.method == "GET" 显示所有HTTP GET 请求 dns.flags.response == 1 显示所有DNS响应
http.request.method == "POST" 显示所有HTTP POST 请求 dns.qry.type == 1 显示所有DNS “A”记录

分析 --> 显示过滤器菜单表达式 :查看更多过滤语法

高级过滤

contains

在数据包中搜索一个值。它区分大小写,并通过关注特定字段提供与“查找”选项类似的功能。

例子        查找所有“Apache”服务器。
流程 列出所有数据包的“服务器”字段包含“Apache”关键字的HTTP数据包。
用法 http.server contains "Apache"

matches

搜索正则表达式的模式。它不区分大小写,复杂的查询有一定的误差范围。

例子        查找所有 .php 和 .html 页面。
流程 列出所有 数据 包的“主机”字段匹配关键字“.php”或“.html”的HTTP数据包。
用法 http.host matches "\.(php|html)"

in

搜索特定范围/范围内的值或字段。

例子        查找所有使用端口 80、443 或 8080 的数据包。
流程 列出数据包的“端口”字段值为 80、443 或 8080 的所有TCP数据包。
用法 tcp.port in {80 443 8080}

upper

将字符串值转换为大写。

例子        查找所有“APACHE”服务器。
流程 将所有 HTTP 数据包的“服务器”字段转换为大写并列出包含“APACHE”关键字的数据包。
用法 upper(http.server) contains "APACHE"

lower

将字符串转化为小写

string

将非字符串值转化为字符串。

例子        找出所有奇数帧
流程 将所有“帧编号”字段转换为字符串值,并列出以奇数结尾的帧。
用法 string(frame.number) matches "[13579]$"

Wireshark:流量分析

nmap扫描

Nmap 是一种行业标准工具,用于映射网络、识别实时主机和发现服务。由于它是最 常用的网络扫描工具之一,安全分析师应该识别使用它创建的网络模式。

  • tcp连接扫描
  • syn扫描
  • udp扫描

TCP——flag

标志位说明:https://www.cnblogs.com/-Lucky-/p/17213717.html

笔记 wireshark 过滤器
全局搜索 tcp udp
只有 SYN 标志 tcp.flags == 2
SYN 标志已设置。其余位并不重要 tcp.flags.syn == 1
只有 ACK 标志 tcp.flags == 16
设置 ACK 标志。其余位并不重要 tcp.flags.ack == 1
只有 SYN、ACK 标志 tcp.flags == 18
SYN 和 ACK 已设置。其余位并不重要 (tcp.flags.syn == 1) and (tcp.flags.ack == 1)
只有 RST 标志 tcp.flags == 4
RST 标志已设置。其余位并不重要 tcp.flags.reset == 1
只有 RST、ACK 标志 tcp.flags == 20
RST 和 ACK 被设置 其余位并不重要 (tcp.flags.reset == 1) and (tcp.flags.ack == 1)
只有 FIN 标志 tcp.flags == 1
FIN 标志已设置。其余位并不重要 tcp.flags.fin == 1

TCP连接扫描,三次握手

tcp端口开放

SYN -->
<-- SYN,ACK
ACK --> SYN -->
<-- SYN, ACK
ACK -->
RST, ACK --> tcp端口关闭 SYN -->
<-- RST, ACK 捕获 TCP连接扫描模式 tcp.flags.syn==1 and tcp.flags.ack==0 and tcp.window_size > 1024

SYN扫描

端口开放
SYN -->
<-- SYN,ACK
RST-->
端口关闭
SYN -->
<-- RST,ACK 捕获 TCP SYN 扫描模式 tcp.flags.syn==1 and tcp.flags.ack==0 and tcp.window_size <= 1024

UDP扫描, 无连接

端口开放
UDP packet --> 关口关闭
UDP packet -->
ICMP Type 3, Code 3 message. (Destination unreachable, port unreachable) 捕获 UDP扫描模式 icmp.type==3 and icmp.code==3

示例

TCP 连接扫描的总数是多少
tcp.flags.syn==1 and tcp.flags.ack==0 and tcp.window_size > 1024 有多少“UDP close port”消息?
icmp.type==3 and icmp.code==3

ARP欺骗(中间人攻击)

ARP 协议或 地址解析协议( ARP ) 是一种允许设备在网络上识别自己的技术 。地址解析协议中毒(也称为ARP欺骗或中间人 (MITM) 攻击)是一种涉及通过向默认网关发送恶意 ARP 数据包来干扰/操纵网络的攻击。最终目的是操纵“IP转MAC地址表”,嗅探目标主机的流量。

全局搜索:arp
arp请求:arp.opcode == 1
arp响应:arp.opcode == 2
arp扫描:arp.dst.hw_mac==00:00:00:00:00:00
可能的ARP欺骗检测:arp.duplicate-address-detected or arp.duplicate-address-frame
检测到可能的ARP泛洪:((arp) && (arp.opcode == 1)) && (arp.src.hw_mac == target-mac-address)

识别主机

DHCP

DHCP 协议,或 动态主机 配置协议(DHCP), 是负责管理自动IP地址和 所需 通信参数分配的技术。

全局搜索        dhcp
DHCP Request数据包包含主机名信息 dhcp.option.dhcp == 3
DHCP ACK数据包表示已接受的请求 dhcp.option.dhcp == 5
DHCP NAK数据包代表被拒绝的请求 dhcp.option.dhcp == 6

DHCP Request 选项

主机名,客户端mac地址

dhcp.option.hostname contains 'keyword'

DHCP ACK 选项

域名

dhcp.option.domain_name contains "keyword"

隧道流量

ICMP

Internet 控制消息协议 (ICMP) 旨在诊断和报告网络通信问题。它在错误报告和测试中被广泛使用。由于它是一种受信任的网络层协议,有时它被用于拒绝服务(DoS)攻击;此外,攻击者还会将其用于数据泄露和 C2 隧道活动。

全局搜索:icmp

数据包长度,目标地址,封装协议

data.len > 64 and icmp

DNS

域名系统 ( DNS ) 旨在将 IP 域地址转换/转换为 IP 地址。它也被称为互联网电话簿。由于它是 Web 服务的重要组成部分,因此被普遍使用和信任,因此经常被忽略。因此,对手将其用于数据泄露和 C2 活动。

全局搜索:dns

dns contains "dnscat"
dns.qry.name.len > 15 and !mdns

明文分析协议ftp

文件传输协议 ( FTP ) 旨在轻松传输文件,因此它侧重于简单性而非安全性。

全局搜索    ftp

x1x:信息请求响应
x2x:连接消息
x3x:身份验证消息 200标识命令成功 x1x
211:系统状态
212:目录状态
213:文件状态 ftp.response.code == 211 x2x
220:服务就绪
227:进入被动模式
228:长被动模式
229:扩展被动模式 ftp.response.code == 227 x3x
230:用户登录
231:用户注销
331:有效用户名
430:无效用户名或密码
530:没有登陆,密码无效 ftp.response.code == 230 ftp.request.command == "USER"
ftp.request.command == "PASS" 判断 FTP 请求的命令是否为 "PASS"
ftp.request.arg == "password" 判断 FTP 请求中的参数是否为 "password" 列出失败的登录尝试
ftp.response.code == 530
列出目标用户名
(ftp.response.code == 530) and (ftp.response.arg contains "username")
列出静态密码的目标
(ftp.request.command == "PASS" ) and (ftp.request.arg == "password")

明文协议分析 HTTP

超文本传输​​协议 ( HTTP ) 是一种基于明文的请求-响应和客户端-服务器协议。请求/提供网页是标准的网络活动类型,默认情况下,它不会被任何网络边界阻止。由于未加密和网络流量的骨干,HTTP 是流量分析中必须知道的协议之一

全局 http,http2

GET请求         http.request.method == GET
POST请求 http.request.mothod == POST
所有请求 http.request http响应状态码
http.response.code == xxx 用户代理
http.user_agent contains "xxxx" 指向从服务器请求的资源
http.request.url contains "xxxx" 服务器 http.server contains "apache"
主机名 http.host contains "keyword"

还有一些参考:https://tryhackme.com/module/wireshark

wireshark基本使用的更多相关文章

  1. wireshark 相关提示

    Packet size limited during capture      提示说明标记的包没有抓全,在某些操作系统中,默认只抓96个字节,tcpdump中有"-s"参数可用于 ...

  2. Wireshark

    0. install Wireshark on Ubuntu 14 sudo apt-get install -y wireshark sudo addgroup -quiet -system wir ...

  3. 通过Wireshark抓包进行Cookie劫持

    首先在目标A机器上运行Wireshark并开启浏览器,开启前关闭其他占用网络的软件,这里我拿51CTO.com做测试. 正常登陆51CTO用户中心,此时使用 http.cookie and http. ...

  4. 运维之网络安全抓包—— WireShark 和 tcpdump

    ------------------------------------------------本文章只解释抓包工具的捕获器和过滤器的说明,以及简单使用,应付日常而已----------------- ...

  5. 【转】[fix] Wireshark error: There are no interfaces on which a capture can be done. on Mac OS X

    I got the following error message when trying to open a network interface for capture using Wireshar ...

  6. kali linux之窥看女神上网隐私(ettercap+wireshark+zenmap +dsniff)

    作者:小波 http://www.cnblogs.com/xiaobo-Linux/ 无聊就玩了玩,不要干一些坏事哟~~网上也有一些文章关于kali linux的,就实战了一番.kali是用的debi ...

  7. Ubuntu16.04 LTS下apt安装WireShark

    Ubuntu16.04 LTS下apt安装WireShark 安装与配置 首先通过apt安装WireShark: $ sudo apt install wireshark 会同时安装许多的依赖包,其中 ...

  8. wireshark lua脚本

    1.目的:解析rssp2协议   2.如何使用wireshark lua插件 将编写的(假设为rssp2.lua)lua文本,放入wireshark 安装目录下,放哪里都行只要dofile添加了路径. ...

  9. 网络抓包wireshark(转)

    转自 网络抓包wireshark   抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经 ...

  10. ubuntu下非root用户下获得使用wireshark的权限

    在非root用户下不能使用wireshark用来抓包,所以需要进行以下操作: sudo groupadd wireshark sudo chgrp wireshark /usr/bin/dumpcap ...

随机推荐

  1. MYSQL DQL语句(基础)

    MySQL引入 数据库的好处 持久化数据到本地 可以实现结构化查询,方便管理 数据库的相关概念 DB:数据库(database):存储数据的"仓库",它保存了一系列有组织的数据. ...

  2. 温故知新----线程之Runnable与Callable接口的本质区别

    温故知新----线程之Runnable与Callable接口的本质区别 预备知识:Java中的线程对象是Thread,新建线程也只有通过创建Thread对象的实例来创建. 先说结论 1 Runnabl ...

  3. 深入理解 python 虚拟机:字节码灵魂——Code obejct

    深入理解 python 虚拟机:字节码灵魂--Code obejct 在本篇文章当中主要给大家深入介绍在 cpython 当中非常重要的一个数据结构 code object! 在上一篇文章 深入理解 ...

  4. Rancher(V2.6.3)安装K8s教程

    Rancher(V2.6.3)安装K8s教程 一,安装前环境准备: 1,升级Linux服务器内核 Ubuntu20.04: #查看当前内核版本 uname -rs #查看软件库中可下载的内核 sudo ...

  5. 源码安装slurm

    一.源码安装munge 1.下载munge 下载地址:https://github.com/dun/munge/releases 2.安装编译 tar -Jxvf munge-0.5.15.tar.x ...

  6. python实现桌面截图功能

    PIL中的ImageGrab模块 import time import numpy as np from PIL import ImageGrab img = ImageGrab.grab(bbox= ...

  7. [数据库/Java]数据库开发过程中产生的MySQL错误代码及其解决方案

    前言 吐槽一下,均是这两天遇到的破烂事儿,搞定了也好,以后出现此类问题也就放心些了. 下列遇到的问题大都是因为MySQL从5.x版本升级到8.0.11(MySQL8.0涉及重大改版)后,跟着连带着出现 ...

  8. ES_ChatGPT问答

    Q1:springboot项目,如何使用elasticsearch的api增删改查?查询中有哪些方式,如果模糊查询.排序查询.分页查询?分别阐述下这些查询方式的用法?最后举一个完整的例子 答: 在Sp ...

  9. LeeCode 二叉树问题(三)

    二叉树的应用问题 LeeCode 222: 完全二叉树的节点个数 题目描述 给你一棵 完全二叉树 的根节点 root,求出该树的节点个数. 完全二叉树的定义 除最底层节点可能没填满外,其余每层节点树都 ...

  10. Java学习笔记02

    1. 运算符和表达式 运算符 ​ 就是对常量或者变量进行操作的符号. ​ 如:+ - * / 表达式 ​ 用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式. ​ 如:a + b ​ ...