首页 > 其他分享 >wireshark的使用

wireshark的使用

时间:2023-02-23 23:57:48浏览次数:32  
标签:192.168 扫描 tcp TCP 使用 过滤器 数据包 wireshark

基础

一、抓包过滤器表达式的规则

类型Type(host、net、port)

方向Dir(src、dst)

协议Proto(ether、ip、tcp、udp、http、icmp、ftp等)

逻辑运算符(&&与、|| 或、!非)

抓包过滤器语法

1、协议过滤

  在抓包过滤框中直接输入协议名

  tcp,只显示TCP协议的数据包列表

  http,只查看HTTP协议的数据包列表

  icmp,只显示ICMP协议的数据包列表

2、IP过滤

  host 192.168.1.*

  src host 192.168.1.*  源地址

  dst host 192.168.1.*  目标地址

3、端口过滤

  port 80、src port 80、dst port 80

4、逻辑运算符&&与、|| 或、!非

  src host 192.168.1.* &&dst port 80   抓取主机地址为192.168.1.80、目的端口为80的数据包

  host 192.168.1.* || host 192.168.2.*   抓取主机为192.168.1.*或者192.168.2.*的数据包

  !broadcast 不抓取广播数据包

显示过滤器语法

1、比较操作符

== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于

 

2、协议过滤

  和前面一样,在filter框中输入小写协议名。

3、ip过滤

  ip.src ==192.168.1.*   显示源地址为192.168.1.*的数据包列表

  ip.dst==192.168.1.*    显示目标地址为192.168.1.*的数据包列表

  ip.addr == 192.168.1.*     显示源IP地址或目标IP地址为192.168.1.*的数据包列表

4、端口过滤

  tcp.port ==80    显示源主机或者目的主机端口为80的数据包列表。

  tcp.srcport == 80   只显示TCP协议的源主机端口为80的数据包列表。

  tcp.dstport == 80  只显示TCP协议的目的主机端口为80的数据包列表。

5、http模式过滤

  http.request.method=="GET"  只显示HTTP GET方法的数据包

6、逻辑运算符为 and/or/not

  过滤多个条件组合时,使用and/or。ip.addr == 192.168.1.* and icmp   显示192.168.1.*的ICMP数据包

7、数据链路层mac地址过滤

  eth.src == 03:24:18:ad:13:16

8、ip地址

  ip.addr == 192.168.1.*

9、刷选网段的数据

  ip contains "192.168.*"

10、传输层端口之前的数据

  tcp.port == 8080 &&tcp.port == 80

  tcp.srcport == 8080 &&tcp.dstport == 80  (指定方向8080->80)

11、应用层url中包含关键词的http数据包

  http.request.uri contains ".php"

12、应用层内容中包含关键词的http数据包

  http contains "password"

 

二、检测攻击方式

检测主机发现

ARP扫描:用于识别ARP扫描的Wireshark过滤器(第二层上的主机发现技术)

ip协议扫描:用于识别IP协议扫描的Wireshark过滤器

ICMP ping扫描:用于检测ICMP ping扫描的wireshark过滤器(第3层上的主机发现技术)

TCP ping扫描:用于检测TCP ping扫描的Wireshark过滤器(第4层上的主机发现技术)

UDP ping 扫描:用于检测UDP ping扫描的wireshark过滤器(第4层上的主机发现技术)

技术

Wireshark 过滤器

命令/工具

ARP扫描

arp.dst.hw_mac==00:00:00:00:00:00

ARP扫描-l

IP协议扫描

icmp.type==3 和 icmp.code==2

nmap -sO <目标>

ICMP ping 扫描

icmp.type==8 或 icmp.type==0

nmap -sn -PE <子网>

TCP ping 扫描

tcp.dstport==7

nmap -sn -PS/-PA <子网>

UDP ping 扫描

udp.dstport==7

nmap -sn -PU <子网>

 

网络端口扫描检测

TCP SYN/隐形扫描:用于检测TCP SYN/隐形端口扫描,也叫TCP半开扫描

TCP Connect()扫描:用于检测TCP Connect()端口扫描的wireshark过滤器

TCP空扫描:用于识别TCP Null扫描的wireshark过滤器

Tcp fin 扫描:用于识别TCP FIN扫描的wireshark过滤器

TCP Xmass扫描:用于检测 TCP Xmass 扫描的 Wireshark 过滤器

UDP端口扫描:用于识别 UDP 端口扫描的 Wireshark 过滤器

技术

Wireshark 过滤器

命令/工具

TCP SYN 扫描

tcp.flags.syn==1 和 tcp.flags.ack==0 和 tcp.window_size<=1024

nmap -sS <目标>

TCP Connect() 扫描

tcp.flags.syn==1 和 tcp.flags.ack==0 和 tcp.window_size>1024

nmap -sT <目标>

TCP空扫描

tcp.flags==0

nmap -sN <目标>

TCP FIN 扫描

tcp.flags==0x001

nmap -sF <目标>

TCP Xmass 扫描

tcp.flags.fin==1 && tcp.flags.push==1 && tcp.flags.urg==1

nmap -sX <目标>

UDP端口扫描

icmp.type==3 和 icmp.code==3

nmap -sU <目标>

 

网络攻击检测

技术

Wireshark 过滤器

命令/工具

ARP中毒

arp.duplicate-address-detected 或 arp.duplicate-address-frame

arpspoof, ettercap

ICMP 洪水

icmp 和 data.len > 48

fping, hping

VLAN hoping

dtp 或 vlan.too_many_tags

弗罗格,耶尔森氏菌

不明原因的丢包

tcp.analysis.lost_segment 或 tcp.analysis.retransmission

不适用

 

ARP中毒(ARP 欺骗)

  用于检测ARP中毒的wireshark过滤器

arp.duplicate-address-detected or arp.duplicate-address-frame

 

ICMP 洪水

  用于检测 ICMP 泛洪(拒绝服务技术)的Wireshark 过滤器

icmp and data.len > 48

 

VLAN hoping(一种绕过 NAC(网络访问控制)的技术)

  攻击者经常使用该技术通过利用 Cisco 交换机的错误配置来访问不同的 VLAN

 

检测无线网络攻击

客户端取消身份验证:用于检测无线网络上的取消身份验证帧。

客户解除关联:用于检测无线网络上的分离帧

假AP信标洪水:用于检测无线网络上的虚假 AP 信标泛滥

身份验证拒绝服务:用于检测无线网络上的身份验证拒绝服务攻击

技术

Wireshark 过滤器

命令/工具

客户端取消身份验证

wlan.fc.type_subtype == 12

aireplay-ng,mdk3,mdk4

客户解除关联

wlan.fc.type_subtype == 10

mdk3, mdk4

假 AP 信标洪水

wlan.fc.type_subtype == 8

mdk3, mdk4

身份验证拒绝服务

wlan.fc.type_subtype == 11

mdk3, mdk4

 

数据包信息

 

用例子简单上手wireshark

一、分析ICMP流量

服务器A:192.168.86.135

服务器B:192.168.86.143

不同子网下,ping请求的拓扑图

相同子网下,机器的ping请求不经过默认网关即可相互通信。服务器A可以根据自己的子网掩码,计算出B是否属于不同子网,从而判断是否经过默认网关。

相同子网情况下,服务器B会通过ARP广播查询A的MAC地址。如果是不同子网,服务器A首先会与默认网关进行通信然后转发给服务器B,因为跨子网通信需要默认网关转发,在与默认网关进行通信前会通过ARP广播查询默认网关的MAC地址,从而进一步通信。在不同子网情况下,如果服务器A收到了B发出的ARP广播,也可以说明默认网关成功将A发出的ping请求发送给了B。

A回复了B的请求

后面就是服务器A向服务器B发出的ping请求以及B的回复了。

二、TCP流量分析

1、wireshark开启捕捉,在浏览器中访问www.bnaidu.com,接着ping www.baidu.com ,收集ip地址

2、使用过滤器获取地址为14.215.177.39的数据包 ip.addr == 14.215.177.39

  由上图可以看到,前三条报文是TCP三次握手,第四个包是HTTPS的(TLSv1.2),Https是使用TCP进行连接的。

3、第一次握手

  客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接

数据包的关键属性如下:
SYN :标志位,表示请求建立连接
Seq = 0 :初始建立连接值为0,数据包的相对序列号从0开始,表示当前还没有发送数据
Ack =0:初始建立连接值为0,已经收到包的数量,表示当前没有接收到数据
4、第二次握手
  服务器发回确认包, 标志位为 SYN,ACK。将确认序号(Acknowledgement Number)字段+1,即0+1=1
数据包的关键属性如下:
[SYN + ACK]: 标志位,同意建立连接,并回送SYN+ACK
Seq = 0 :初始建立值为0,表示当前还没有发送数据
Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位。(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)
5、第三次握手
  客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1。并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方,并且在Flag段写ACK的+1
数据包的关键属性如下:
ACK :标志位,表示已经收到记录
Seq = 1 :表示当前已经发送1个数据
Ack = 1 : 表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)。
  这就是TCP三次握手,连接之后便会开始数据交互。

  借大佬文章进行总结学习

  https://mp.weixin.qq.com/s?__biz=MzI0NDYxMzk1Mg==&mid=2247496672&idx=1&sn=c3cb62eb008679da7f25a178809f31cd

  https://mp.weixin.qq.com/s?__biz=MzIxMDI2ODM1OA==&mid=2651501905&idx=1&sn=afcc8200d2ade475164a31b7870ce0f1

标签:192.168,扫描,tcp,TCP,使用,过滤器,数据包,wireshark
From: https://www.cnblogs.com/CatG0d/p/wireshark.html

相关文章