六、无线局域网捕获
到目前为止,我们已经看到了在以太网上捕获的数据包。在本章中,我们将学习如何捕获 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 中执行以下步骤:
- 点击捕获 | 选项。
- 选择活动的 Wi-Fi 适配器。双击界面设置;将出现一个窗口。
- 启用监控模式下的捕获数据包选项。
- 点击确定。
- 开始捕获。
您应该会看到以下屏幕:
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 保护设置等信息,其中:
- SSID 是 AP 的名称,例如:
ANish
- BSSID is the MAC address of the AP, for example is
94:FB:B3:B8:DF:DD
https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00098.jpeg
在另一个例子中, 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 = 1
和subtype = 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 分析的。
注意
有关更多信息,您可以访问以下链接:
- https://wiki.wireshark.org/CaptureSetup/WLAN
- https://en.wikipedia.org/wiki/IEEE_802.11
- https://wiki.wireshark.org/HowToDecrypt802.11
- https://www.wireshark.org/tools/wpa-psk.html
总结
在本章中,我们介绍了 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
心脏出血试验
要测试心脏出血,使用以下步骤:
-
从
openssl
库:[bash ]# openssl version OpenSSL 1.0.1c 10 May 2012
安装 OpenSSL 版本(1.0.1c)
-
创建自签名 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
-
使用受影响的 OpenSSL 版本启动 TLS 服务器:
[bash ]# openssl s_server -www -cipher AES256-SHA -key ./server.key -cert ./server.pem -accept 443
-
开始数据包捕获:
[bash ]# tcpdump port 443 –s0 –w heartbleed.pcap &
如果可以通过公共网络访问 SSL/TLS 服务器,则可以使用在线 filippo。其他工具(如 Heartbeat Detector,它是一个 shell 脚本)也可以用于此目的:
- 心脏出血探测器:https://access.redhat.com/labsinfo/heartbleed
- Heartbleed 在线测试:https://filippo.io/Heartbleed/
心脏出血建议
以下是心脏出血建议:
- 按照 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
数据包捕获文件,并执行以下步骤:
- 点击统计 | IO 图。
- 将出现 IO 图形对话框。
- 为 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
数据包捕获文件,并执行以下步骤:
- 点击统计 | IO 图。
- 将出现 IO 图形对话框。
- 为 ICMP 和 ICMPv6 生成图形。
如截图所示,ICMP flood 具有以下特征:
-
IO 图显示了大量的 ICMP 数据包:在短时间内有近 80K 个 ping 请求
-
The packet capture doesn’t have the echo reply message
这是样本数据;在真实环境中,它可能会有所不同,因为攻击者也在学习和寻找执行 ICMP DoS 的新方法。
https://github.com/OpenDocCN/freelearn-kali-pt2-zh/raw/master/docs/pkt-anal-ws/img/00106.jpeg
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
数据包捕获文件,并执行以下步骤:
- 点击统计 | 对话。
- 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
数据包被发送到每台主机上所有公共服务的端口,例如DNS
、LDAP
、HTTP
等等。如果我们从主机得到 ACK,主机被认为是该端口上的ACTIVE
。
安全审计员或黑客可以使用网络扫描工具来获取端口、主机和操作系统信息。例如,nmap
网络实用工具命令可用于扫描活动/开放端口:
-
扫描主机中的标准端口:
bash# nmap -T4 -A -v 128.136.179.233
-
扫描主机中所有活动端口:
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 获得了以下信息:
- 过滤协议,在本例中为 BitTorrent。
- 选择 Ipv4 选项卡。
- 在此捕获中,启用了名称解析。
- 客户端(
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
- 802.11 授权过程
- 关于/ 802.11 认证流程
- 警报
- close_notify / 警报协议
- 意外消息/ 警报协议
- bad_record_mac / 警报协议
- 解密 _ 失败/ 警报协议
- record_overflow / 警报协议
- 解压缩 _ 失败/ 警报协议
- 握手 _ 失败/ 告警协议
- bad_certificate / 警报协议
- 不支持的 _certificate / 警报协议
- 证书 _ 已撤销/ 警报协议
- 证书 _ 过期/ 警报协议
- 证书 _ 未知/ 警报协议
- 非法 _ 参数/ 警报协议
- 未知 _ca / 警报协议
- decode_error / 警报协议
- decrypt_error / 警报协议
- 出口限制/ 警报协议
- 协议 _ 版本/ 预警协议
- 不足 _ 安全/ 警报协议
- 内部 _ 错误/ 警报协议
- user_canceled / 预警协议
- 否 _ 重新协商/ 警报协议
- ARP 重复 IP 检测
- 关于/ ARP 重复 IP 检测
B
- 柏克莱数据包过滤器(BPF)
- 关于/ 捕获过滤器选项
- 钻头扭转
- URL / 其他数据包分析工具
- BitTorrent 协议
- 关于/ BitTorrent
- BOOTP/DHCP
- 关于/ BOOTP/DHCP
- Wireshark 过滤器/ BOOTP/DHCP Wireshark 过滤器
- 地址分配/ 地址分配
- 捕获 DHCPv4 流量/ 捕获 DHCPv4 流量
C
- 该隐
- URL / 其他数据包分析工具
- 捕获选项
- 数据包,使用/ 捕获数据包,使用捕获选项
- 捕获过滤器选项/ 捕获过滤器选项
- 客户证书
- 关于/ 客户端证书
- 客户端证书请求
- 关于/ 客户端证书请求
- 客户问候消息
- 客户端密钥交换消息
- 关于/ 客户端密钥交换
- 控制帧/ 控制帧
D
- 数据帧/ 数据帧
- 解码为功能
- 关于/ 解码为
- DHCP/BOOT
- URL / 引用
- DHE/埃切德流量
- 解密/ 解密 DHE/埃奇德流量
- 前向保密/ 前向保密
- 迪菲-赫尔曼(DHE)密钥交换
- 关于 Diffie-Hellman 密钥交换
- 命名约定/Diffie-Hellman 密钥交换
- URL/Diffie-Hellman 密钥交换
- 显示的数据包
- 导出/ 导出显示的数据包
- 显示过滤器引用
- URL / 引用
- 分布式反射拒绝服务(DrDoS) / DrDoS
- 域名系统(DNS)
- 拒绝服务攻击
- IPv6 的动态主机配置协议(DHCPv6)
- 关于/ DHCPv6
- Wireshark 过滤器/ DHCPv6 Wireshark 过滤器
- 组播地址/ 组播地址
- UDP 端口信息/UDP 端口信息
- 消息类型/ DHCPv6 消息类型
- 消息交换/ 消息交换
- 流量捕获/ DHCPv6 流量捕获
- URL / 引用
E
- EAPOL / 802.1X EAPOL
- 局域网上的 EAP/802.1 x EAPOL
- 椭圆曲线密码(ECC) / 椭圆曲线 Diffie-Hellman 密钥交换
- 椭圆曲线 Diffie-Hellman 密码(ECDHE) / 前向保密
- 椭圆曲线 Diffie-Hellman 密钥交换
- Ettercap
- URL / 其他数据包分析工具
- 可扩展认证协议(EAP) / 802.1X EAPOL
F
- 功能,Wireshark
- 过滤器工具栏
- 防火墙 ACL 规则
- 生成/ 生成防火墙 ACL 规则
- 前向保密
- 框架
H
- 心脏出血
- bug / Heartbleed bug
- Wireshark 过滤器/heart bleed Wireshark 过滤器
- Wireshark 分析/ Heartbleed Wireshark 分析
- 测试/ 心脏出血测试
- 检测器,URL / 心脏出血测试
- 在线测试,URL / 心脏出血测试
- 推荐/ 心脏出血推荐
- 超文本传送协议
- 关于/ HTTP
- Wireshark filter/HTTP Wireshark filter
- 用例/ HTTP 用例
- URL / 引用
- HTTP,用例
- 顶级 http 响应时间,查找/ 查找顶级 HTTP 响应时间
- 数据包查找,基于 HTTP 方法/ 基于 HTTP 方法查找数据包
- 敏感信息,在表单帖子中查找/ 在表单帖子中查找敏感信息
- HTTP 状态码,使用/ 使用 HTTP 状态码
- HTTP 协议首选项
- 关于/ 协议首选项
我
- 初始序列号(ISN) / 握手消息–第一步【SYN】
- 接口列表
- 数据包,使用/ 捕获数据包,使用接口列表
- 接口名称/ 常用接口名称
- 互联网控制消息协议(ICMP)泛滥、拒绝服务攻击
- IO 图
- 使用/IO 图
K
- 密钥交换
- 关于/ 密钥交换
- 密钥交换,类型
- 迪菲-赫尔曼(DHE)密钥交换/ 迪菲-赫尔曼密钥交换
- 椭圆曲线 Diffie-Hellman 密钥交换/ 椭圆曲线 Diffie-Hellman 密钥交换
- RSA / 【T0 行】T1
- 基斯马克
- URL / Wi-Fi 嗅探产品
- 命运
- URL / Wi-Fi 嗅探产品
M
- 管理帧/ 管理帧
- 最大分段大小(MSS) / 握手消息–第一步【SYN】
- 媒体访问控制(MAC)层/802.11 协议栈
- 消息交换,IPv6 的动态主机配置协议(DHCPv6)
- 消息类型,IPv6 动态主机配置协议(DHCPv6) / DHCPv6 消息类型
普通
- NetStumbler
- URL / Wi-Fi 嗅探产品
- 无操作(NOP) / TCP 报头字段,握手消息-第一步【SYN】
O
- 在线 nmap 工具
- URL / 漏洞扫描
P
- 802.11 协议栈/802.11 协议栈
- 数据包分析器
- 工具/ 其他数据包分析器工具
- 移动数据包捕获/ 移动数据包捕获
- 数据包分析器
- 用途/ 包分析器的用途
- 数据包字节窗格
- 关于/ 数据包字节窗格
- 数据包捕获过程
- 数据包详细信息窗格
- 关于/ 数据包详细信息窗格
- 数据包列表窗格
- 关于/ 数据包列表窗格
- 小包裹
- 捕获/ 捕获数据包指南
- 用接口列表捕获/ 用接口列表捕获数据包
- 捕获,使用开始选项/ 捕获数据包,使用开始选项
- 捕获,使用捕获选项/ 使用捕获选项捕获数据包
- 文件,定期自动捕获/ 定期自动捕获文件
- PPP(点对点协议)/ 802.1X EAPOL
- 协议首选项功能
- 关于/ 协议首选项
稀有
- 重置序列
- 关于/ TCP 复位序列
- SYN-ACK 之后的 RST/SYN-ACK 之后的 RST
- SYN 之后的 RST/SYN 之后的 RST
- RFC675 TCP/IP
- URL / 引用
- RFC793 TCP v4
- URL / 引用
- RFMON(射频监控器)模式/ WLAN 捕获设置
- 河床空气帽适配器
- URL / Wi-Fi 嗅探产品
- RSA / 【T0 行】T1
- RSA 流量
- 解密/ 解密 RSA 流量
S
- 扫描
- Scapy
- URL / 其他数据包分析工具
- 服务器证书
- 关于/ 服务器证书
- 服务器 Hello Done 消息
- 关于/ 服务器 Hello Done
- 服务器问候消息
- 服务器密钥交换消息
- 关于/ 服务器密钥交换
- 窥探工具
- 关于/ Tcpdump 和 snoop
- 鼻息声
- URL / 其他数据包分析工具
- SSL 相关问题
- 调试/ 调试问题
- SSL/TLS
- 关于/SSL/TLS 简介
- SSL/TLS 简介
- 版本/ SSL/TLS 版本
- 组件/SSL/TLS 组件
- 握手/SSL/TLS 握手
- 解密/ 解密 SSL/TLS
- RSA 流量,解密/ 解密 RSA 流量
- DHE/埃奇德流量,解密/ 解密 DHE/埃奇德流量
- SSL/TLS 握手
- SSL 泛滥、DOS 攻击
- 关于/ SSL 泛滥
- SSL 测试
- 参考资料/ 调试问题
- 开始选项
- 数据包,使用/ 捕获数据包,使用开始选项
- 绊跌者
- URL / Wi-Fi 嗅探产品
- 交换机端口分析器(SPAN)Port/Wireshark 数据包捕获过程
- SYN flood,DOS 攻击
T
- TAP(测试接入点)/Wireshark 数据包捕获流程
- TCP 分析序列号
- URL / 引用
- TCP 关闭状态
- TCP 关闭 _ 等待
- 关于/ TCP 关闭 _ 等待
- TCP 显示过滤器
- 参考链接/ 过滤器示例
- tcpdump 工具
- 关于/ Tcpdump 和 snoop
- TCP Dup-ACK 指令
- 关于/ TCP Dup-ACK
- Tcpreplay
- URL / 其他数据包分析工具
- TCP 流
- 跟随/ 跟随 TCP 流
- TCP 时间等待
- 关于/ TCP 时间 _ 等待
- TCP 窗口更新
- 关于/ TCP 窗口更新
- 三次握手,传输控制协议(TCP)
- 关于/ TCP 三次握手
- 第一步[SYN] / 握手消息–第一步[SYN]
- 第二步[SYN,ACK] / 握手消息–第二步[SYN,ACK]
- 第三步[ACK] / 握手消息–第三步[ACK]
- TLS 扩展
- 参考列表/ 客户您好
- 传输控制协议
- 传输控制协议(TCP),延迟
- 传输控制协议(TCP),延迟问题
- 原因/ 延迟原因
- 传输控制协议(TCP),故障排除
- 关于/ TCP 故障排除
- 复位序列/ TCP 复位序列
- 关闭 _ 等待/ TCP 关闭 _ 等待
- 时间等待/ TCP 时间等待
- 解决纷争
- 数据包,捕获/ 故障排除
U
- 美国证书
- 警报 TA14-017A,URL / DrDoS
- Wireshark 用户界面
- 关于/ Wireshark 用户界面
- 过滤器工具栏/ 过滤器工具栏
- 数据包列表窗格/ 数据包列表窗格
- 数据包详细信息窗格/ 数据包详细信息窗格
- 数据包字节窗格/ 数据包字节窗格
W
- 无线网络
- 分析/ 分析无线网络
- 帧/ 帧
- 802.11 授权过程/ 802.11 授权过程
- 802.1X EAPOL / 802.1X EAPOL
- 802.11 协议栈/802.11 协议栈
- Wi-Fi 嗅探产品
- 关于/ Wi-Fi 嗅探产品
- Kismet / Wi-Fi 嗅探产品
- riverbed air cap/Wi-Fi 嗅探产品
- KisMac / Wi-Fi 嗅探产品
- Stumbler / Wi-Fi 嗅探产品
- NetStumbler / Wi-Fi 嗅探产品
- 有线编辑
- URL / 其他数据包分析工具
- Wireshark
- 关于/ 介绍 Wireshark
- URL/Wireshark 简介,参考文献
- 特性/ Wireshark 特性, Wireshark 特性
- dumpcap / Wireshark 的 dumpcap 和 tshark
- tshark / Wireshark 的 dumpcap 和 tshark
- 数据包捕获过程/Wireshark 数据包捕获过程
- 维基链接/ 802.1X EAPOL
- Wireshark 社区
- URL / 故障排除
- Wireshark 协议层次结构
- 关于/ Wireshark 协议层级
- Wireshark TCP 序列分析
- 关于/ Wireshark TCP 序列分析
- 重传/ TCP 重传
- TCP 零窗口/ TCP 零窗口
- WLAN 捕获设置
X
- 802.1X EAPOL / 802.1X EAPOL