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. GUI编程--1

    GUI编程--1 GUI是什么 (Graphical User Interface),即用户图形界面编程. 怎么玩 平时怎么运用 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 1.简介 ...

  2. 如何用浏览器读取本地文件(兼容IE8),new bing能帮我吗?

    浏览器读写文件? 有一份老旧而精巧的代码(2006或更早),带js的html,可以只用浏览器来处理一些二进制存档数据. 文件的读写怎么办?通过变动的方法来完成. 利用十六进制编辑软件如WinHEX,直 ...

  3. 西瓜播放器api的坑 直播设置自动播放

    我们先看一下官方DEMO let player = new HlsPlayer({ id: 'mse', url: '//sf1-cdn-tos.huoshanstatic.com/obj/media ...

  4. redis 5种数据类型的增删改查

    string: 增:set name zhangsan 删:del name 改:set name lisi 查:get name hash: 增:hmset name name1 zhangsan ...

  5. 迁移学习(DCCL)《Domain Confused Contrastive Learning for Unsupervised Domain Adaptation》

    论文信息 论文标题:Domain Confused Contrastive Learning for Unsupervised Domain Adaptation论文作者:Quanyu Long, T ...

  6. 数据挖掘系统聚类—R实现

    系统聚类法 聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,最后的结果是希望同类之间的差异性尽可能小,不同类之间的差异性尽可能大.不同的类具有能够表达异于其他类的指标,这样针对不同的类,后续就 ...

  7. pandas之索引操作

    索引(index)是 Pandas 的重要工具,通过索引可以从 DataFame 中选择特定的行数和列数,这种选择数据的方式称为"子集选择".在 Pandas 中,索引值也被称为标 ...

  8. python之操作注册表

    与注册表操作相关的函数可以分为打开注册表.关闭注册表.读取项值.c添加项值.添加项,以及删除项等几类. 描述 HKEY_CLASSES_ROOT,是HKEY_LOCAL_MACHINE\Softwar ...

  9. [Java SE]Java8新特性——默认方法

    1 简述 默认方法就是接口可以有实现方法,而且可以不需要实现类去实现其方法 默认方法(default void hello()) := 一个在接口里面有了一个(默认)实现的方法 1. 子类优先继承父类 ...

  10. kali装机 安装输入法 修改国内源

    1-先配置国内源官方kali源 vim /etc/apt/sources.list 插入如下源 deb http://mirrors.aliyun.com/kali sana main non-fre ...