使用 Wireshark 检测网络攻击
2022-11-28 20:5:32 Author: 网安之道(查看原文) 阅读量:19 收藏

使用 Wireshark 检测网络攻击

在本文中,我们将研究 Wireshark 显示过滤器,并了解如何在Wireshark中检测各种网络攻击。

我们将研究一些通常由对手完成的场景,例如各种主机发现技术、网络端口扫描方法、各种网络攻击(如拒绝服务、中毒、泛洪)以及无线攻击。

本文的目的是提供一系列可操作且实用的方法,用于使用 Wireshark 过滤器检测这些网络攻击。

检测主机发现(侦察)

包含 Wireshark 过滤器,可以帮助识别试图在我们的网络上找到活动系统的对手。

使用这些过滤器,我们应该能够检测到各种网络发现扫描、ping 扫描和其他通常在侦察(资产发现)阶段完成的事情。

这是汇总表,下面有更多详细信息:

技术

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 <子网>

ARP扫描

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

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

这是 Wireshark 中 ARP 扫描的样子:

在 ARP 扫描期间,攻击者通常会在广播 (ff:ff:ff:ff:ff:ff) 上发送大量 ARP 请求,目标地址为 MAC 地址 00:00:00:00:00:00,以便发现本地网络上的活动 IP 地址。我们通常会看到这样的东西:

Who has 192.168.0.1? Tell 192.168.0.53Who has 192.168.0.2? Tell 192.168.0.53Who has 192.168.0.3? Tell 192.168.0.53Who has 192.168.0.4? Tell 192.168.0.53Who has 192.168.0.5? Tell 192.168.0.53...

在这种情况下,攻击者的 IP 地址为 192.168.0.53。

如果我们在短时间内看到许多这样的 ARP 请求要求许多不同的 IP 地址,则可能有人试图通过 ARP 扫描(例如通过运行arp-scan -l)来发现我们网络上的活动 IP。

IP 协议扫描

这是一个用于识别 IP 协议扫描的 Wireshark 过滤器:

icmp.type==3 and icmp.code==2

这是 Wireshark 中 IP 协议扫描的样子:

IP 协议扫描是一种允许攻击者发现目标操作系统支持哪些网络协议(例如通过运行nmap -sO <target>)的技术。

在 IP 协议扫描过程中,我们可能会看到很多 ICMP type 3 (Destination unreachable) code 2 (Protocol unreachable) 消息,因为攻击者通常会发送大量不同协议号的数据包。

ICMP ping 扫描

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

icmp.type==8 or icmp.type==0

这就是 ICMP ping 扫描在 Wireshark 中的样子:

使用此过滤器,我们可以过滤 ICMP Echo 请求(类型 8)或 ICMP Echo 回复(类型 0)。

如果我们在短时间内看到太多这样的数据包针对许多不同的 IP 地址,那么我们可能正在目睹 ICMP ping 扫描。有人试图识别我们网络上所有活动的 IP 地址(例如通过运行nmap -sn -PE <subnet>)。

TCP ping 扫描

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

tcp.dstport==7

这是 Wireshark 中 TCP ping 扫描的样子:

TCP ping 扫描通常使用端口 7(回显)。如果我们看到大量此类流量发往许多不同的 IP 地址,这意味着有人可能正在执行 TCP ping 扫描以查找网络上的活动主机(例如,通过运行nmap -sn -PS/-PA <subnet>)。

UDP ping 扫描

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

udp.dstport==7

这是 Wireshark 中 UDP ping 扫描的样子:

与 TCP 类似,UDP ping 扫描通常使用端口 7(回显)。如果我们看到大量此类流量发往许多不同的 IP 地址,这意味着有人可能正在执行 UDP ping 扫描以查找网络上的活动主机(例如,通过运行nmap -sn -PU <subnet>)。

网络端口扫描检测

包含 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 <目标>

TCP SYN/隐形扫描

这是一个 Wireshark 过滤器,用于检测 TCP SYN/隐形端口扫描,也称为 TCP 半开扫描:

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

这是 Wireshark 中 TCP SYN 扫描的样子:

在这种情况下,我们将过滤掉 TCP 数据包:

  • SYN 标志集

  • 未设置 ACK 标志

  • 窗口大小 <= 1024 字节

这基本上是 TCP 3 次握手(任何 TCP 连接的开始)的第一步,具有非常小的 TCP 窗口大小。

尤其是小窗口大小是在 SYN 扫描期间,nmap 或 massscan 等工具使用的特征参数,表明基本上只有很少或没有数据。

如果我们在短时间内看到太多此类数据包,则很可能有人在做:

  • SYN 扫描我们的网络(例如通过运行nmap -sS <target>)

  • SYN 端口扫描整个网络(例如通过运行nmap -sS -pXX <subnet>)

  • SYN 洪水(拒绝服务技术)

TCP Connect() 扫描

这是一个用于检测 TCP Connect() 端口扫描的 Wireshark 过滤器:

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

这是 Wireshark 中 TCP Connect() 扫描的样子:

在这种情况下,我们将过滤掉 TCP 数据包:

  • SYN 标志集

  • 未设置 ACK 标志

  • 窗口大小 > 1024 字节

与 SYN 扫描的唯一区别是更大的 TCP 窗口大小,表示标准 TCP 连接,实际上也期望传输一些数据。

如果我们在短时间内看到太多此类数据包,则很可能有人在做:

  • 我们网络中的端口扫描(例如通过运行nmap -sT <target>)

  • 端口扫描网络(例如通过运行nmap -sT -pXX <subnet>)

TCP空扫描

这是一个用于识别 TCP Null 扫描的 Wireshark 过滤器:

tcp.flags==0

这是 Wireshark 中 TCP Null 扫描的样子:

TCP Null 扫描通过发送没有设置任何标志的数据包来工作。这可能会穿透某些防火墙并发现开放端口。

如果我们在我们的网络中看到这样的数据包,则可能有人正在执行 TCP 空扫描(例如,通过运行nmap -sN <target>)。

TCP FIN 扫描

这是一个用于识别 TCP FIN 扫描的 Wireshark 过滤器:

tcp.flags==0x001

这是 Wireshark 中 TCP FIN 扫描的样子:

TCP FIN 扫描的特点是发送仅设置了 FIN 标志的数据包。这可能(再次)潜在地穿透某些防火墙并发现开放端口。

如果我们在我们的网络中看到很多这样的数据包,那么可能有人正在执行 TCP FIN 扫描(例如,通过运行nmap -sF <target>)。

TCP Xmass 扫描

这是一个用于检测 TCP Xmass 扫描的 Wireshark 过滤器:

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

这是 Wireshark 中 TCP Xmass 扫描的样子:

TCP Xmass 扫描通过发送设置了 FIN、PUSH 和 URG 标志的数据包来工作。这是另一种穿透某些防火墙以发现开放端口的技术。

如果我们在我们的网络中看到这样的数据包,那么可能有人正在执行 TCP Xmass 扫描(例如,通过运行nmap -sX <target>)。

UDP端口扫描

这是一个用于识别 UDP 端口扫描的 Wireshark 过滤器:

icmp.type==3 and icmp.code==3

这是 Wireshark 中 UDP 端口扫描的样子:

正在进行的 UDP 端口扫描的一个很好的指标是在我们的网络中看到大量的 ICMP 数据包,即 ICMP 类型 3(目标不可达)和代码 3(端口不可达)。这些特定的 ICMP 消息表明远程 UDP 端口已关闭。

如果我们在短时间内在我们的网络中看到大量此类数据包,则很可能意味着有人正在执行 UDP 端口扫描(例如,通过运行nmap -sU <target>)。

网络攻击检测

包含 Wireshark 过滤器,可用于识别各种网络攻击,例如中毒攻击、泛洪、VLAN hoping等。

这是汇总表,下面有更多详细信息:

技术

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 中毒的 Wireshark 过滤器:

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

此过滤器将显示由多个 MAC 地址声明的单个 IP 地址的任何出现。这种情况很可能表明我们的网络中正在发生 ARP 中毒。

ARP 中毒(也称为 ARP 欺骗)是一种用于拦截路由器与本地网络上其他客户端之间的网络流量的技术。它允许攻击者使用诸如arpspoof、ettercap等工具对本地网络上的相邻计算机执行中间人 (MitM) 攻击。

ICMP 洪水

以下是使用 Wireshark 过滤器检测 ICMP 泛洪(拒绝服务技术)的方法:

icmp and data.len > 48

这就是 Wireshark 中 ICMP 洪水攻击的样子:

典型的标准 ICMP ping 发送具有 32 字节数据(Windows 上的 ping 命令)或 48 字节(Linux 上的 ping 命令)的数据包。

当有人在进行 ICMP 泛洪时,他们通常会发送更大的数据,因此我们在这里过滤所有数据大小超过 48 字节的 ICMP 数据包。这将有效地检测任何 ICMP 泛洪,无论 ICMP 类型或代码如何。

攻击者通常使用fping或hping等工具来执行 ICMP 泛洪。

VLAN hoping

这是一个 Wireshark 过滤器,用于检测网络上的 VLAN hoping:

dtp or vlan.too_many_tags

这是 Wireshark 中 VLAN hoping攻击的样子:

VLAN hoping是一种绕过 NAC(网络访问控制)的技术,攻击者经常使用该技术通过利用 Cisco 交换机的错误配置来访问不同的 VLAN。

VLAN hoping的一个可靠指标是存在 DTP 数据包或带有多个 VLAN 标记的数据包。

如果我们在我们的网络中看到这样的数据包,那么有人可能会尝试通过使用frogger来创建 VLAN。

不明原因的丢包

这是用于检测网络上的数据包丢失的过滤器:

tcp.analysis.lost_segment or tcp.analysis.retransmission

如果我们在网络通信中看到许多数据包重传和间隙(丢失数据包),则可能表明网络存在严重问题,可能是由拒绝服务攻击引起的。

在 Wireshark 中看到这种情况当然值得进一步调查。

检测无线网络攻击

包含 Wireshark 过滤器,可用于识别各种无线网络攻击,例如取消身份验证、解除关联、信标泛洪或身份验证拒绝服务攻击。

这是汇总表,下面有更多详细信息:

技术

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 过滤器,用于检测无线网络上的取消身份验证帧:

wlan.fc.type_subtype == 12

这是 Wireshark 中无线取消身份验证攻击的样子:

在空中看到类型 12(取消身份验证)帧可能表明存在攻击者试图从网络中取消对其他客户端的身份验证,以使它们重新进行身份验证并因此收集(嗅探)交换的 WPA / WPA2 4 次握手,而他们正在重新进行身份验证。

这是一种用于侵入基于 PSK(预共享密钥)的无线网络的已知技术。一旦攻击者收集到 4 次 WPA 握手,攻击者就可以尝试破解它,从而获得明文密码并访问网络。

客户解除关联

这是一个 Wireshark 过滤器,用于检测无线网络上的分离帧:

wlan.fc.type_subtype == 10

这是 Wireshark 中无线解除关联攻击的样子:

解除关联攻击是针对基于 PSK 的无线网络的另一种攻击类型,适用于 WPA / WPA2。这种攻击背后的想法是攻击者发送类型 10(解除关联)帧,将所有客户端与目标 AP 断开连接。

这对于攻击者收集4 次握手可能更有效。攻击者可以(再次)尝试破解其中一个,并可能获得明文密码并访问网络。

这种类型的攻击可以使用mdk3或mdk4等工具来执行(例如通过运行mdk4 wlan0mon d)。

假 AP 信标洪水

这是一个 Wireshark 过滤器,用于检测无线网络上的虚假 AP 信标泛滥:

wlan.fc.type_subtype == 8

这是 Wireshark 中无线假 AP 信标洪水攻击的样子:

这种攻击背后的想法是用随机的假接入点信标淹没该区域。这可能会导致该区域内的连接中断(干扰)或某些客户端崩溃(拒绝服务)。

如果我们在短时间内看到大量不同的信标帧,则可能有人在该区域执行信标泛洪。

这种攻击可以使用mdk3或mdk4等工具进行(例如通过运行mdk4 wlan0mon b)。

身份验证拒绝服务

这是一个 Wireshark 过滤器,用于检测无线网络上的身份验证拒绝服务攻击:

wlan.fc.type_subtype == 11

这就是 Wireshark 中无线身份验证 DoS 攻击的样子:

这种类型的攻击通过使用许多类型 11(身份验证)帧淹没该区域的无线接入点来起作用,本质上是模拟大量尝试同时进行身份验证的客户端。这可能会使某些接入点过载,并可能冻结或重置它们,并导致该区域的连接中断(干扰)。

如果我们在短时间内看到大量类型 11 帧,则可能有人在该区域执行身份验证泛洪。

这种类型的攻击可以使用mdk3或mdk4等工具来执行(例如通过运行mdk4 wlan0mon a)。

结论

在分析计算机网络时,Wireshark 是一个非常强大的工具。其大量的协议解析器和过滤功能使我们能够轻松地检测、可视化和研究计算机网络的许多不同方面,而不仅仅是从网络安全的角度来看。


文章来源: http://mp.weixin.qq.com/s?__biz=MzIxMDI2ODM1OA==&mid=2651501905&idx=1&sn=afcc8200d2ade475164a31b7870ce0f1&chksm=8c992cf8bbeea5eeaf47ded83b89bddc577804fd334bd4d8f9a1d011b7441856ad2e541e9883#rd
如有侵权请联系:admin#unsafe.sh