Wireshark 数据包分析(二)

六、无线局域网捕获

到目前为止,我们已经看到了在以太网上捕获的数据包。在本章中,我们将学习如何捕获 WLAN 网络流量,并对所有帧使用有效的显示过滤器,包括以下主题:

  • WLAN (802.11)捕获设置和监控模式
  • 802.11 使用 tcpdump 捕获
  • 802.11 显示过滤器
  • 第 2 层数据报帧类型和 Wireshark 显示过滤器
  • 802.11 授权过程
  • 802.1X EAPOL
  • 802.11 协议栈

无线局域网捕获设置

Wireshark 依赖于运行它的操作系统(以及无线适配器的驱动程序)来支持监控模式。

对于 Linux,802.11 无线工具栏(视图 | 无线工具栏)提供了出色的选项来启用监控模式并为 cfg80211 设备设置通道。这甚至支持多网络接口进行多通道捕获;详细说明参见https://wiki.wireshark.org/CaptureSetup/WLAN

MAC OS 具有无线适配器,并且支持监视器模式。在 Windows 上,不支持监视器模式;为此,您需要一个商用适配器,例如 AirPcap USB 适配器。

WLAN (IEEE 802.11)捕获过程与 Wireshark 中捕获以太网流量的过程略有不同。默认情况下,当我们开始捕获 Wi-Fi 网络中的流量时,它会捕获两个端点(主机 A 和主机 B)之间的流量。为了捕获 Wi-Fi 流量,Wireshark 必须在监控模式下运行— RFMON ( 射频监控)—允许带有无线网络接口控制器 ( WNIC )的计算机监控从 AP ( 接入点)接收的所有流量,如截图所示:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00095.jpeg

监视器模式

监视器模式仅在 IEEE 802.11 Wi-Fi 接口上受支持,并且仅在某些操作系统上受支持。要在 Wi-Fi 接口中启用监控模式,请在 Wireshark 中执行以下步骤:

  1. 点击捕获 | 选项
  2. 选择活动的 Wi-Fi 适配器。双击界面设置;将出现一个窗口。
  3. 启用监控模式下的捕获数据包选项。
  4. 点击确定
  5. 开始捕获。

您应该会看到以下屏幕:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00096.jpeg

当 monitor 模式开启时,适配器会捕获通道上传输的所有数据包。其中包括:

  • 单播数据包
  • 广播数据包
  • 控制和管理数据包

Tip

在监控模式下禁用名称解析,因为 Wireshark 会尝试解析 FQDN,这会导致打开数据包捕获文件的速度变慢(在监控模式下没有外部网络)。

一旦数据包捕获开始,Wireshark 将开始显示源和目的地之间的 802.11 协议数据包交换,如下图所示(或在 Wireshark 中打开数据包捕获802.11.pcap文件)。监控模式下的数据包捕获不会与任何接入点相关联,用户只能看到 802.11 帧,其中包括非数据(管理和信标)帧,如图所示:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00097.jpeg

要使用tcpdump执行无线数据包捕获,请执行以下命令。tcpdump with –I option将开启监控模式:

bash $ tcpdump -I -P -i en0 -w 802.11.pcap

获得的输出如下:

tcpdump: WARNING: en0: no IPv4 address assigned
tcpdump: listening on en0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 65535 bytes
^C52 packets captured
52 packets received by filter

分析无线网络

当分析 Wi-Fi 网络时,了解 IEEE 标准 802.11 作为事实的来源是很重要的,因为这是获得专业知识最有趣的协议之一。

无线网络不同于有线局域网:这里的可寻址单元是一个站(STA ),当分组被传送到 STA 时,STA 是消息的目的地而不是固定的位置。

在本书的范围内,我们将处理在 WNIC 控制器和接入点之间捕获的数据包。接入点 ( AP )包含一个站(STA)并提供对分布的访问。在本书中,我们将了解 Wireshark 如何为分析 Wi-Fi 帧提供显示过滤器:

  • wlan:显示 IEEE 802.11 无线局域网帧
  • wlan_ext:显示 IEEE 802.11 无线局域网扩展框架
  • wlan_mgt:显示 IEEE 802.11 无线局域网管理帧
  • wlan_aggregate:该显示 IEEE 802.11 无线局域网聚合帧

在第 2 层,数据报被称为帧;它们显示了所有信道流量和测量 STA 接收的所有帧的计数。下表中定义了四种类型的帧:

|

框架类型

|

价值

|

Wireshark 显示过滤器

|
| — | — | — |
| 管理 | 0x00 | wlan.fc.type == 0 |
| 控制 | 0x01 | wlan.fc.type == 1 |
| 数据 | 0x02 | wlan.fc.type == 2 |
| 延长 | 0x03 | wlan.fc.type == 3 |

让我们来详细的一个一个的看看这些画面。

管理框架

Wireshark 使用和wlan_mgt显示过滤器来显示所有管理帧。根据 IEEE 802.11 标准,定义了以下管理帧,下表显示了其相应的值以及相应的 Wireshark 显示过滤器:

|

名字

|

价值

|

Wireshark 显示过滤器

|
| — | — | — |
| 关联请求 | 0x00 | wlan.fc.type_subtype == 0x00 |
| 关联响应 | 0x01 | wlan.fc.type_subtype == 0x01 |
| 重新关联请求 | 0x02 | wlan.fc.type_subtype == 0x02 |
| 重新关联响应 | 0x03 | wlan.fc.type_subtype == 0x03 |
| 探测请求 | 0x04 | wlan.fc.type_subtype == 0x04 |
| 探测响应 | 0x05 | wlan.fc.type_subtype == 0x06 |
| 测量导频 | 0x06 | wlan.fc.type_subtype == 0x06 |
| 信标帧 | 0x08 | wlan.fc.type_subtype == 0x08 |
| atim | 0x09 | wlan.fc.type_subtype == 0x09 |
| 分离 | 0x0a | wlan.fc.type_subtype == 0x0a |
| 证明 | 0x0b | wlan.fc.type_subtype == 0x0b |
| 取消认证 | 0x0c | wlan.fc.type_subtype == 0x0c |
| 行为 | 0x0d | wlan.fc.type_subtype == 0x0d |
| 无确认操作 | 0x0e | wlan.fc.type_subtype == 0x0e |

例如,通过设置wlan.fc.type_subtype == 0x08,在802.11.pcap文件中,整个信标帧将在 Wireshark 中显示。

信标是一个小的广播数据包,它显示无线网络的特征,并提供诸如数据速率(最大数据速率)、功能(加密开启或关闭)、接入点 MAC 地址、SSID(无线网络名称)、RSN 信息、供应商特定信息、Wi-Fi 保护设置等信息,其中:

在另一个例子中, wlan_mgt.ssid == "ANish"显示过滤器将显示【SSID 与ANish匹配的所有管理帧。

数据帧

数据帧携带可以包含有效负载的数据包(比如文件、截图等等)。802.11 中使用的数据帧的类型值及其对应的 Wireshark 显示过滤器如下表所示:

|

名字

|

价值

|

Wireshark 显示过滤器

|
| — | — | — |
| 数据 | 0x20 | wlan.fc.type_subtype == 0x20 |
| 数据+cf ack | 0x21 | wlan.fc.type_subtype == 0x21 |
| 数据+ cf-poll | 0x22 | wlan.fc.type_subtype == 0x22 |
| 数据+ cf-ack + cf-poll | 0x23 | wlan.fc.type_subtype == 0x23 |
| 空函数 | 0x24 | wlan.fc.type_subtype == 0x24 |
| 无数据 cf-ack | 0x25 | wlan.fc.type_subtype == 0x25 |
| 无数据 cf-poll | 0x26 | wlan.fc.type_subtype == 0x26 |
| 无数据 cf-ack + cf-poll | 0x27 | wlan.fc.type_subtype == 0x27 |
| qos 数据 | 0x28 | wlan.fc.type_subtype == 0x28 |
| qos 数据+ cf-ack | 0x29 | wlan.fc.type_subtype == 0x29 |
| qos 数据+ cf-poll | 0x2a | wlan.fc.type_subtype == 0x2a |
| qos 数据+ cf-ack + cf-poll | 0x2b | wlan.fc.type_subtype == 0x2b |
| qos null | 0x2c | wlan.fc.type_subtype == 0x2c |
| 无数据 qos cf-poll | 0x2e | wlan.fc.type_subtype == 0x2e |
| qos cf-ack + cf-poll | 0x2f | wlan.fc.type_subtype == 0x2f |

例如,wlan.fc.type_subtype == 0x2A会在包捕获文件802.11.pcap中显示所有包含 QoS 数据+ CF-Poll 的包,如下面的截图所示:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00099.jpeg

控制帧

控制帧在站间交换数据帧。控制帧范围为 0x160 - 0x16A,用于控制帧扩展,其中type = 1subtype = 6。下表显示了控制帧和相应 Wireshark 显示过滤器的值:

|

名字

|

价值

|

Wireshark 显示过滤器

|
| — | — | — |
| vht ndp 公告 | 0x15 | wlan.fc.type_subtype == 0x15 |
| 投票 | 0x162 | wlan.fc.type_subtype == 0x162 |
| 服务周期请求 | 0x163 | wlan.fc.type_subtype == 0x163 |
| 同意 | 0x164 | wlan.fc.type_subtype == 0x164 |
| dmg 允许发送 | 0x165 | wlan.fc.type_subtype == 0x165 |
| dmg 拒绝发送 | 0x166 | wlan.fc.type_subtype == 0x166 |
| 授予确认 | 0x167 | wlan.fc.type_subtype == 0x167 |
| 扇形扫描 | 0x168 | wlan.fc.type_subtype == 0x168 |
| 扇形扫描反馈 | 0x169 | wlan.fc.type_subtype == 0x169 |
| 扇区扫描确认 | 0x16a | wlan.fc.type_subtype == 0x16a |
| 控制包装 | 0x17 | wlan.fc.type_subtype == 0x17 |
| 阻止确认请求 | 0x18 | wlan.fc.type_subtype == 0x18 |
| 块确认 | 0x19 | wlan.fc.type_subtype == 0x19 |
| 节能轮询 | 0x1a | wlan.fc.type_subtype == 0x1a |
| 请求发送 | 0x1b | wlan.fc.type_subtype == 0x1b |
| 清除发送 | 0x1c | wlan.fc.type_subtype == 0x1c |
| 确认 | 0x1d | wlan.fc.type_subtype == 0x1d |
| 无竞争周期结束 | 0x1e | wlan.fc.type_subtype == 0x1e |
| 无争用期结束/确认 | 0x1f | wlan.fc.type_subtype == 0x1f |

七、802.11 认证过程

AP 在信标帧中通告其能力;客户端(STA)使用自己的探测请求帧在每个信道(通常是信道 11)上广播自己。通过这样做,它可以确定哪些接入点在范围内。

探测响应帧包含 AP 接收到探测请求帧后的能力信息、支持的数据速率等。

STA 向 AP 发送包含其身份的认证帧。对于开放系统认证(默认),接入点会以认证帧作为响应,表示接受(或拒绝)。

共享密钥认证需要 WEP (64 位或 128 位)密钥,并且应该在客户端和 AP 上使用相同的 WEP 密钥。STA 请求共享密钥认证,该认证从 AP 返回未加密的质询文本(128 字节随机生成的文本)。STA 加密文本并将数据返回给 AP,AP 响应指示接受(或拒绝)。

STA 向 AP 发送包含必要信息的关联请求帧,然后 AP 将发送包含接受(或拒绝)的关联响应帧。如果这被接受,STA 可以利用 AP 接入其他网络:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00100.jpeg

八、802.1X EAPOL

IEEE802.1x 是基于可扩展认证 协议 ( EAP )的,是 PPP ( 点对点协议)的扩展,也被称为“EAP over LAN”或 EAPOL。

IEEE 802.11 工作组于 2001 年通过了 802.1x 标准,以提高原始 802.11 标准中规定的安全性(IEEE,2001)。

在 Wireshark 中打开802.11-AUTH-enabled.pcap文件,使用显示过滤器eapol只显示所有的 eapol消息,如下图所示。在eapol数据包中,处理设备和 AP 的会话密钥。

如截图所示,所有的eapol数据包都被捕获为 1/4、2/4、3/4 和 4/4。

如果您试图解密 802.11 流量,则需要eapol数据包。https://wiki.wireshark.org/HowToDecrypt802.11 的 Wireshark wiki 链接是一个关于如何在 Wireshark 的帮助下解密流量的极好信息来源。

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00101.jpeg

802.11 协议栈

802.11 标准规定了支持基于 802.11 的无线局域网操作的公共媒体访问 控制 ( MAC )层(数据链路层)。802.11 MAC 层使用 802.11 物理层 ( PHY )层,例如 802.11a/b,来执行载波侦听、传输和接收 802.11 帧的任务。

在 Wireshark 中打开数据包捕获文件802.11-AUTH-Disabled.pcap,将显示过滤器设置为wlan.da==e8:de:27:59:72:06,查看如何使用 802.11 作为传输介质传输数据。

802.11 QoS 数据帧显示 LLC 报头遵循 IEEE 802.11 这是在监控模式下所期望的。

捕获的 802.11 看起来像以太网数据包,因为 802.11 适配器经常试图将数据包转换成假的以太网数据包,然后将它们提供给主机。

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00102.jpeg

Wi-Fi 嗅探产品

根据操作系统和使用案例(如 WEP 解密、高级分析和地理定位),还有其他商业(以及开源)工具使用某种形式的 Wi-Fi 嗅探。其中一些列举如下:

  • Kismet(https://www.kismetwireless.net/documentation.shtml):Kismet 可以嗅探 802.11a/b/g/n Wi-Fi 流量。
  • Riverbed air cap(http://riverbed.com):Riverbed air cap 适配器用于捕获和分析 802.11a/b/g/n Wi-Fi 流量,与 Wireshark 完全集成。
  • 用于 Mac OS X 的 KisMac(【http://kismac.en.softonic.com/mac?ex=SWH-1740.2】)KisMac 提供了许多与 Kismet 相同的功能,被认为是 Mac 的 NetStumbler。Mac 用户可以找到实用工具,如 airport ID、airport utility 和 Wi-Fi Diagnostics,用于嗅探和诊断 Wi-Fi 网络。
  • NetStumbler(http://www.netstumbler.com):这个是用于 Wi-Fi 分析的。

注意

有关更多信息,您可以访问以下链接:

总结

在本章中,我们介绍了 Wi-Fi 采集设置,并讨论了什么是监控模式及其利弊。我们还学习了如何在第 2 层数据报(帧)上使用各种显示过滤器。在下一章中,我们将更详细地探讨网络安全及其缓解计划。

九、安全分析

在前几章中,我们学习了更多关于协议及其分析技术的知识。在本章中,我们将了解 Wireshark 如何帮助我们执行安全分析,并尝试通过涵盖以下主题来涵盖这些领域应用和网络的安全方面:

  • 心脏出血病菌
  • DoS SYN 泛滥/缓解
  • DoS ICMP 泛滥/缓解
  • 扫描网络
  • ARP 重复 IP 检测(MITM)
  • DrDoS 简介
  • BitTorrent 源标识
  • Wireshark 端点和协议层级

心脏出血虫

Heartbeat 协议(RFC6520)运行在记录层协议(记录层协议在 SSL 中定义)之上。

Heartbleed 错误(CVE-2014-0160)存在于实现心跳协议的选定 OpenSSL 版本(1.0.1 到 1.0.1f)中。

这个错误是一个严重的漏洞,使得攻击者能够在心跳响应期间读取更大部分的内存(包括私钥和密码)。

heart bleed Wireshark 过滤器

心跳协议运行在 SSL/TLS 中标识为记录类型(24)的记录层之上的。在 Wireshark 中,显示过滤器ssl.record.content_type == 24可用于显示心跳消息。心跳消息是心跳请求和心跳响应。

Heartbleed Wireshark 分析

在 Wireshark 中打开heartbleed.pcap数据包捕获文件,并将显示过滤器设置为ssl.record.content_type == 24

Wireshark 将仅显示加密的心跳消息。第一个是心跳请求消息。该消息中,心跳请求的长度(ssl.record.length == 112)设置为 112 字节,如截图所示:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00103.jpeg

每当心跳请求消息被发送到服务器时,服务器就用相应的心跳响应消息进行应答。

在给定的数据包中,心跳响应长度(ssl.record.length == 144)被设置为144,这意味着服务器返回的数据比预期的多(多 32 字节)。这些额外的信息被称为心脏出血;此出血可能包含敏感信息,如密码和私钥:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00104.jpeg

心脏出血试验

要测试心脏出血,使用以下步骤:

  1. openssl库:

    [bash ]# openssl version
    OpenSSL 1.0.1c 10 May 2012
    
    

    安装 OpenSSL 版本(1.0.1c)

  2. 创建自签名 SSL 证书:

    [bash #]openssl req -sha256 -new -newkey rsa:2048 -nodes -keyout ./server.key -out ./server.csr -subj "/C=PU/ST=Anish/L=Test/O=Security Analysus /OU=Heartbleed/CN=myhost.com"
    [bash #]openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.pems
    
    
  3. 使用受影响的 OpenSSL 版本启动 TLS 服务器:

    [bash ]# openssl  s_server -www -cipher AES256-SHA -key ./server.key -cert ./server.pem -accept 443
    
    
  4. 开始数据包捕获:

    [bash ]# tcpdump port 443 –s0 –w heartbleed.pcap &
    
    

如果可以通过公共网络访问 SSL/TLS 服务器,则可以使用在线 filippo。其他工具(如 Heartbeat Detector,它是一个 shell 脚本)也可以用于此目的:

心脏出血建议

以下是心脏出血建议:

  • 按照 OpenSSL 公告中的建议应用补丁程序
  • 如果漏洞已解决,请更改密码。

拒绝服务攻击

这种技术用于攻击主机,使得主机无法再向用户发出任何请求。最后,服务器崩溃,导致服务器不可用。

本主题中使用了各种攻击技术。我们将在 Wireshark 的帮助下介绍 SYN flood 和 ICMP flood 检测。

合成洪水

我们在第三章分析 TCP 网络中学到了 TCP 握手过程。在这个握手过程中,客户端和服务器之间通过 SYN、SYN-ACK 和 ACK 建立连接。

在 SYN flood 攻击场景中,发生的情况是:

  • 客户端正在发送非常快的 SYN 它已收到 SYN-ACK,但没有用最终 ACK 进行响应
  • 或者,客户端正在发送非常快速的 SYN 并阻止来自服务器的 SYN-ACK,或者客户端正在从欺骗的 IP 地址发送非常快速的 SYN,因此 SYN-ACK 被发送到实际上不存在的未知主机

在所有这些场景中,TCP/IP 堆栈文件描述符被消耗,导致服务器变慢并最终崩溃。

在 Wireshark 中打开SYN_FLOOD.pcap数据包捕获文件,并执行以下步骤:

  1. 点击统计 | IO 图
  2. 将出现 IO 图形对话框。
  3. 为 TCP 握手消息 SYN、ACK、FIN 和 PUSH 生成四个图形。

IO 图形统计显示以下摘要:

  • TCP 连接永远不会关闭,因为tcp.flags.fin没有计数
  • TCP 连接从不交换任何数据,因为tcp.flags.push没有计数
  • SYN 数据包的计数非常高
  • ACK 的计数是 SYN 包计数的一半

在实际场景中,这些数据将与实际的数据包流混合在一起,但分析技术将保持不变。当您看到 SYN 数据包意外增长或 SYN 数据包激增时,这是来自 DoS 或来自多源 DDoS 的 SYN 洪流。

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00105.jpeg

SYN 洪水缓解

SYN 攻击可以减轻。以下是一些缓解计划:

  • TCP/IP 栈加固:操作系统决定 SYN,SYN-ack,ACK 重复多少次;降低 SYN,ACK 重试次数将有助于服务器减轻 SYN flood 攻击。SYN cookie 用于抵御 SYN flood 攻击。要在 Linux 系统上执行所有这些操作,编辑/etc/sysctl.conf文件并对这些条目进行修改:

    #Prevent SYN attack, enable SYNcookies (they will kick-in when the max_syn_backlog reached)
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_syn_retries = 2
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_max_syn_backlog = 4096
    # Increase the tcp-time-wait buckets pool size to prevent simple DOS attacks 
    net.ipv4.tcp_max_tw_buckets = 1440000
    
  • 重启sycltl以应用更改:

    bash#sysctl -p
    
    
  • IPtables 防火墙可以设置为拒绝导致问题的 IP。要生成防火墙规则,请使用 Wireshark 功能生成防火墙规则来丢弃导致 DoS 的流量。

  • 例如,阻塞流量导致 DoS:

    # Netfilter (iptables)
    iptables -A INPUT -i eth0 -d 10.0.0.3/32 -j DROP
    ! Cisco IOS (standard)
    access-list NUMBER deny host 10.0.0.3
    # IPFirewall (ipfw)
    add deny ip from 10.0.0.3 to any in
    # Windows Firewall (netsh)
    add portopening tcp 443 Wireshark DISABLE 10.0.0.3
    
  • 应对对外开放的港口进行审计。

  • 通过创建峰值警报进行监控,这些警报显示网络上可能导致 DoS 情况的不健康趋势;动态生成防火墙规则,并将其应用于目标虚拟机。

  • 网络 ACL 在路由器级别阻止流量;将 IDS/IPS 系统引入网络。

  • 使用负载平衡器作为连接卸载程序。在这种情况下,如果发生攻击,它将发生在负载平衡器上。虚拟机将继续受到保护。大多数商用负载平衡器都有能力抵御这种类型的攻击。

  • 对每个 IP 每秒的 SYN 进行速率限制。

  • 在数据中心边缘路由器(L2)上设置 DoS/DDoS 保护。

  • 应用多级检测并了解可疑流量位置的特征和属性。

  • 准备缓解计划。

ICMP 洪水

互联网 控制消息协议 ( ICMP ) flood 也被归类为第三层 DoS 攻击或 DDoS 攻击。它的工作原理如下:攻击者试图用欺骗的 IP 地址淹没回应请求(ping)数据包,或者服务器被回应请求(ping 数据包)淹没,无法处理每个 ICMP 回应请求的回应响应,导致主机速度缓慢和拒绝服务。

在 Wireshark 中打开ICMP_Flood_01.pcap数据包捕获文件,并执行以下步骤:

  1. 点击统计 | IO 图
  2. 将出现 IO 图形对话框。
  3. 为 ICMP 和 ICMPv6 生成图形。

如截图所示,ICMP flood 具有以下特征:

ICMP 洪水缓解

以下是针对 ICMP 洪水攻击的一些缓解计划:

  • OS 加固:在主机(生产环境)通过 iptables 防火墙禁用 ICMP 和 ICMPv6 协议:

    bash# iptables -I INPUT -p icmp --icmp-type 8 -j DROP
    bash# iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT 
    bash# iptables -A INPUT -p icmp --icmp-type echo-reply -s 0/0 -i eth0 -j ACCEPT 
    bash# iptables -A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 -i eth0 -j ACCEPT 
    bash# iptables -A INPUT -p icmp --icmp-type time-exceeded -s 0/0 -i eth0 
    -j ACCEPT 
    bash# iptables -A INPUT -p icmp -i eth0 -j DROP
    bash# ip6tables -I INPUT -p icmpv6 –icmpv6-type 8 -j DROP
    bash# ip6tables -I INPUT -p icmpv6 -i eth0 -j DROP
    
    
  • TCP/IP 栈加固:通过编辑sysctl.conf文件,并在该文件中添加以下条目:

    net.ipv4.icmp_echo_ignore_all = 1
    
  • 重启sycltl以应用更改:

    bash#sysctl -p
    
    
  • 如果允许 ICMP/ICMPv6 流量,则在路由器级别进行速率限制

  • 防火墙应该阻止路由器上的 ICMP/ICPMv6 流量

SSL 泛滥

这种攻击发生在第 7 层,很难检测到,因为它类似于合法的网站流量。在分析 SSL/TLS 时,我们学习了 SSL 和握手过程。攻击者可以对系统使用握手来发起 DoS/DDoS 攻击。由于握手涉及客户端和服务器之间更大的消息交换,例如,在单向 auth 的情况下,建立连接的数据包交换总数大约为 12(即, 3 个分组 TCP 握手+ 9 个分组 SSL 握手= 12 个交换的分组)。

攻击者可以淹没 SSL 连接并使服务器繁忙,从而建立连接并尝试创建 DoS/DDoS 场景。

Wireshark 可以帮助识别最大数量的数据包从哪个 IP 到达。该功能称为 Wireshark 对话,可用于任何类型的泛滥情况(DoS 攻击)。

在 Wireshark 中打开ICMP_Flood_01.pcap数据包捕获文件,并执行以下步骤:

  1. 点击统计 | 对话
  2. A conversation dialog box will appear as shown in the screenshot. An unusually higher volume of traffic is generated from source B (10.0.0.5) to source A (10.0.0.4), causing the network to slow down:https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00107.jpeg

其他类别的第 7 层攻击是 HTTP/HTTPS POST洪水和 HTTP/HTTPS GET洪水。

扫描

在本节中,我们将介绍漏洞扫描的基础知识,并验证在 Wireshark 的帮助下执行主机扫描时会发生什么情况。

漏洞扫描

主机发现、端口扫描和操作系统检测是漏洞扫描的一部分。在此过程中,安全审计员会识别漏洞,并制定适当的缓解计划来解决这些漏洞。例如:

  • 安全审计员扫描主机,检查是否只有允许的端口对外部世界开放
  • 黑客扫描端口以找出哪些服务正在运行,例如在主机扫描过程中,如果数据库端口对外界开放,则数据库系统会受到攻击。

在 Wireshark 中打开host_scan.pcap文件;该示例显示了外部客户端如何扫描端口:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00108.jpeg

在这个过程中,一个SYN数据包被发送到每台主机上所有公共服务的端口,例如DNSLDAPHTTP等等。如果我们从主机得到 ACK,主机被认为是该端口上的ACTIVE

安全审计员或黑客可以使用网络扫描工具来获取端口、主机和操作系统信息。例如,nmap网络实用工具命令可用于扫描活动/开放端口:

  1. 扫描主机中的标准端口:

    bash# nmap -T4 -A -v 128.136.179.233
    
    
  2. 扫描主机中所有活动端口:

    bash# nmap -p 1-65535 -T4 -A -v 128.136.179.233
    
    

在线 nmap 工具可以在https://pentest-tools . com/network-vulnerability-scanning/TCP-port-scanner-online-nmap找到。

SSL 扫描

SSL 扫描由不同的用户(例如,安全审计员和黑客)完成,以实现他们自己的目标:

  • 安全审计器使用 SSL 扫描器来查找 SSL 服务器中存在的最弱的密码套件或易受攻击的 SSL 协议版本,并将其删除
  • 黑客使用 SSL 扫描器,通过在 SSL 服务器中找到脆弱的密码套件或易受攻击的协议版本来破解加密的 SSL 通信

使用nmap命令在给定服务器端口636 LDAP 中查找可用密码和支持的协议版本的示例如下所示:

[root@ ~]# nmap --script ssl-cert,ssl-enum-ciphers -p 636 10.10.1.3To find available ciphers and the supported protocol version in a given server port 443 HTTPS

[root@ ~]# nmap --script ssl-cert,ssl-enum-ciphers -p 443 10.10.1.3

ARP 重复 IP 检测

Wireshark 检测 ARP 协议中的重复 IP。使用arp.duplicate-address-frame Wireshark 过滤器仅显示重复的 IP 信息帧。

例如,打开ARP_Duplicate_IP.pcap文件,应用arp.duplicate-address-frame滤镜,如截图所示:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00109.jpeg

在这种情况下,Wireshark 会提供以下信息:

  • 通常情况下,DHCP 服务器会解析重复的 IP 地址。在这种情况下,当它开始显示每个 IP 地址时,必须认真对待。
  • 所有 IP 都有相同的发件人 MAC 地址:fa:16:3e:bf:22:d0,并显示为该 IP 地址的副本。
  • 这可能是 ARP 中毒——在后台发生的中间人攻击。

DrDoS

分布式反射拒绝服务 ( DrDoS ),也称为基于 UDP 的放大攻击,使用公共可访问的 UDP 服务器和带宽放大因子,以 UDP 流量淹没系统。

打开 DrDoS.pcap文件。在此数据包捕获中,SYN 数据包通过服务器 IP 地址与受害者的源 IP 地址一起发送;注意目的端口是 HTTP 80,源端口是 NTP 端口123,UDP。现在,服务器将向源发送一个 ACK 数据包,在这种情况下,该数据包将是受害者的 IP 地址。如果使用多台服务器,服务器将向受害者(目标)发送大量 ACK 数据包。

有 UDP 协议(DNS、NTP 和 BitTorrent)被基于 UDP 的放大攻击感染。有关这方面的更多信息,请参考 US-CERT 发布的警报 TA14-017 a:【https://www.us-cert.gov/ncas/alerts/TA14-017A。

比特洪流

Wireshark 支持 BitTorrent 协议。BitTorrent 使用 Torrent 文件从 P2P 网络下载内容。通过这些程序下载的内容是安全的(取决于下载的内容类型)。任何下载都可能包含木马或病毒,所以(这一建议适用于任何使用的协议)要小心,尤其是当下载任何可执行文件或从未知的种子网址。所有下载的文件都要经过扫描。在 Wireshark 中打开bittorrent.pcapng文件,并从该位置检查正在下载的内容。

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00110.jpeg

Wireshark BitTorrent 解析器能够解码整个下载过程。要检查这个源的端点,请执行以下操作。点击统计 | 端点;一个端点窗口将会出现:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00111.jpeg

如屏幕截图所示,Wireshark 获得了以下信息:

  1. 过滤协议,在本例中为 BitTorrent。
  2. 选择 Ipv4 选项卡。
  3. 在此捕获中,启用了名称解析。
  4. 客户端(192.168.1.101)已经下载了 10744 字节,并且内容来自不同的地理位置。因为内容是从各种来源下载的,所以总是建议在打开之前先扫描一下。

端点统计是 Wireshark 的一个很好的特性。端点揭示信息,例如给定客户端的传出连接。在此示例中,客户端连接到分布在不同地理位置的 16 个不同的端点位置。对于任何可疑流量,直接在端点窗口上使用过滤选项。

注意

注意:Wireshark 不会通知或扫描病毒;有助于分析病毒。

Wireshark 协议层级

这个特性在处理服务器上运行的协议时非常有用。要找到它,请在 Wireshark 菜单中点击摘要 | 协议层级。将打开捕获的数据包的协议层次结构,如屏幕截图所示:

https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00112.jpeg

从安全的角度来看,它将对以太网系统上发生的所有协议有一个高层次的了解。网络管理员使用这些信息来强化系统配置;例如,如果管理员发现生产系统中正在运行一个 DCE 协议,在看到该协议层次结构后,他可以发出警报来停止该服务。

总结

祝贺你完成这一章和这本书。到目前为止,我们已经了解了 Wireshark 如何帮助分析 TCP/IP、DHCPv6、DHCP 和 HTTP 等网络协议。我们对 SSL/TLS 协议和 WLAN 设置捕获进行了详细的分析;然后,我们探讨了与安全相关的问题及其缓解计划。我们也尽量做到实用,并提供了一些实时用例场景及其缓解计划。

在本书中,我们还强调了捕获数据包的其他有效工具,如 tcpdump 和 snoop。现在,您应该能够以本书为参考,开始分析本书未涉及的其他协议。

索引

A

B

C

D

E

F

H

K

M

普通

O

P

稀有

S

T

U

W

X

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值