1. 混杂模式
1.1 (Hub)集线器网络 vs (Switch)交换机网络
1.2 (Router)家用路由器
1.3 本机安装
2. Switch 交换机网络
2.1 端口镜像
2.2 Hub 集线器
2.3 使用网络分流器
2.4 ARP缓存污染
2.5 小结
3. Spoofing
3.1 tools
3.2 Defense
4. Ettercap
4.1 功能
4.2 特征
4.3 此外,该软件还提供以下功能:
4.4 Ettercap主页
4.5 下载
Wireshark-deploy
部署监听设备(Wireshark数据包分析实战(第3版) Page: 64)
1. 混杂模式
混杂模式是一种允许网卡能够查看到所有流经网络线路数据包的驱动模式。
我们可以使用网卡的混杂模式来确保能够捕获所有的网络流量。
现在的网卡一般都支持混杂模式,Wireshark软件包中也包含了 libpcap / WinPcap驱动.
WinPcap驱动是Windows对于pcap数据包捕获的通用程序接口 (API)的实现, 简单来说就是这个驱动能够通过操作系统捕捉原始 数据包、应用过滤器,并能够让网卡切入或切出混杂模式。
除了WinPcap, 安装过程还有: 安装 USBPcap选项。这是一个从USB设备中 收集数据的工具。
- 关闭混杂模式: 只能看到发往本机MAC地址的网络数据包.
- 开启混杂模式: 除了能看到发往本机MAC地址的网络数据包. 还有所有本地网络的广播包, 多播包(本机MAC加入的多播群).
换句话说, 是所有到达本机MAC地址的网络数据包, 不管目的地址是否是本机MAC地址, 所以, 要监听其他设备, 必须开启混杂模式.
1.1 (Hub)集线器网络 vs (Switch)交换机网络
- 在(Hub)集线器网络中嗅探将提供一个不受限制的可视范围
- 在(Switch)交换机网络上的可视范围仅限于你所接入的端口

1.2 (Router)家用路由器
家用路由器是连接内外网络的设备. 所以至少有2个口, 分别连接内网(LAN)和外网(WAN).
通常会大余2口, 但WAN口始终只有1个, 多出来的都是LAN口.
这里的多个LAN口可以理解为一个小Switch交换机.
嗅探的可是范围也同(Switch)交换机网络.
1.3 本机安装
主机不管接入交换机, 还是路由器, 不做额外的设定, 可视范围仅限本机.
主机正常
若只想查看本机的流量, 可以直接安装即可. 主机的网卡不需要设置在混杂模式。
在进行环境测试、评估和审查性能,或是检查在其他地方捕获的数据包文件时,这是最佳方案。
主机异常
若是主机存在故障和问题,这个问题可能会导致数据包被丢弃, 或是被配置成它们无法被准确展示的样子。
那么安装在本机的嗅探器就无法完整收集数据包.
2. Switch 交换机网络
在一个交换式网络中从一个目标设备捕获网络流量的基本方法有 如下4种:
端口镜像、集线器接出(hubbing out)、使用网络分流器和 ARP缓存污染攻击。
2.1 端口镜像
最简单. 但交换机必须支持端口镜像的功能. 且能够通过命令行或 Web 管理界面来访问交换机。
强制交换机将一个端口上的所有通信都镜像到另一端口上。
用于启用端口镜像的命令
- 思科 set span <source port> <destination port>
- 凯创 set port mirroring create <source port> <destination port>
- 北电 port-mirroring mode mirror-port <source port> monitor-port <destination port>

端口镜像有简单、低成本的优点。交换机支持端口镜像.
但在高吞吐量级别的环境下,端口镜像可能会产生不稳定的结果,并且造成无法追踪的数据丢失。
举个例子: 有些交换机厂商 允许你将多个端口的流量镜像到一个单独端口上,
假设一个24端口交换机,将23个全双工的 100Mbit/s 端口流量都镜像到一个端口上, 那么你可能在这个端口上就会有4600Mbit/s 的流量。
这将会远远超出一个单独端口的物理承受能力,因此在网络流量达到一定数量级后, 将可能会导致数据包丢失,甚至网络速度变慢。
2.2 Hub 集线器
连接到集线器的任意一个空闲端口上即可. 在集线器网络中嗅探将提供一个不受限制的可视范围.
不过这东西约20年前就淘汰了, 且网速只有约10M的共享带宽.
2.3 使用网络分流器
专门为了网络分析而设计的特殊硬件。除了需要花钱买, 没啥缺点.
网络分流器又分为2种基本类型:聚合的和非聚合的。
这两种分流器都是安置在两个设备之间,来嗅探所有流经的网络通信的。
他们之间根本的区别在于:
- 非聚合的网络分流器有4个端口(in, out, Monitor-in, Monitor-out), 有着两个监听端口, 分别对双向通信进行嗅探。 作为嗅探器使用的电脑也需要2块网卡分别接2个监听端口.
- 而聚合分流器则只有3个端口(in, out, Monitor)。只有一个物理的流量监听口,来对双向通信进行嗅探。


2.4 ARP缓存污染
ARP缓存污染, 有时也被称为ARP欺骗,是一种在交换式网络中进行监听的高级技术。
它通常由攻击者使用,向客户端系统发送虚假MAC地址的数据包,来截获特定的网络流量, 或者对目标进行拒绝服务攻击(DoS)。
然而,它也可以是一种在交换式网络中捕获目标系统数据包的方法。
需要注意的是: 实际应用需要衡量吞吐量, 例如要嗅探1Gbit/s的文件服务器, 作为嗅探器的电脑只有100Mbit/s的接口, 结果必然是不可靠的.

2.5 小结
Hub 集线器已淘汰, ARP欺骗工具(Cain & Abel)已失联. 网络分流器需要购买,
对于普通用户最后只剩下: 端口镜像.
对于企业用户: 专业的网络分流器无疑是更好的选择
3. Spoofing
ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。
通常,其目的是将攻击者的MAC地址与另一台主机(例如默认网关)的IP地址关联起来,从而导致所有原本应该发往该IP地址的流量都被发送给攻击者。
ARP 欺骗可能允许攻击者拦截网络上的数据帧、修改流量或停止所有流量。
这种攻击通常会被用作其他攻击的契机,例如拒绝服务攻击、中间人攻击或会话劫持攻击。
最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》(ARP and ICMP redirection games)。
3.1 tools
曾经出现过的几款ARP欺骗软件:
Dsniff (v2.3 / 2000年12月17日;24年前 )
Cain & Abel (v4.9.56 / 2014年4月7日;11年前 )
Ettercap (v0.8.3.1 / 2020年8月1日 )
ARP缓存污染工具: Cain & Abel
oxid.it网站已失效, 以上是网络存档.
稳定版本 v4.9.56 (2014-04-07) 最新版本也是11年前的了
下载适用于 Windows NT/2000/XP 的 Cain & Abel v4.9.56
这个存档链接似乎有效, 文件大小约7.9M, 但每次下载到6M~7.5M之间就会失败...
MD5 - EA2EF30C99ECECB1EDA9AA128631FF31
SHA1 - 82407EAF6437D6956F63E85B28C0EC6CA58D298A
3.2 Defense
ARP欺骗可以用於收集網絡數據包, 協助分析網絡問題, 也可以作爲黑客工具, 製造異常.
下表是一些可以幫助檢測異常的工具.
Name | OS | GUI | Free | Protection | Per interface | Active/passive | https://en.wikipedia.org/wiki/ARP_spoofing#Defense |
Xarp | Windows, Linux | Yes | Yes (+pro version) | Yes (Linux, pro) | Yes | active+passive | 高级 ARP 欺骗检测。普通视图(预定义安全级别)和专业视图(每个接口可配置检测模块并进行主动验证)。 |
Seconfig XP | Windows 2000~2003 | Yes | Yes | Yes | No | 仅激活某些 Windows 版本内置的保护功能 | |
cSploit | Android (rooted only) | Yes | Yes | No | Yes | passive | |
elmoCut | Windows | Yes | Yes | No | passive | ||
zANTI | Android (rooted only) | Yes | Yes | No | passive | ||
anti-arpspoof | Windows | Yes | Yes | ||||
ArpON | Linux | No | Yes | Yes | Yes | active+passive | 便携式处理程序守护进程,用于保护 ARP 免受静态、动态和混合网络中的欺骗、缓存中毒或毒路由攻击。 |
ArpStar | Linux | No | Yes | Yes | passive | ||
NetSec Framework | Linux | No | Yes | No | No | active | |
Arpalert | Linux | No | Yes | No | Yes | passive | 预定义允许的 MAC 地址列表,如果 MAC 地址不在列表中,则会发出警报。 |
Arpwatch | Linux | No | Yes | No | Yes | passive | 保存 IP-MAC 对的映射,并通过 Syslog、电子邮件报告更改。 |
Snort | Windows/Linux | No | Yes | No | Yes | passive | Snort 预处理器 Arpspoof,可对地址进行基本检查 |
ArpwatchNG | Linux | No | Yes | No | No | passive | 保存 IP-MAC 对的映射,并通过 Syslog、电子邮件报告更改。 |
remarp | Linux | No | Yes | No | No | passive | |
Winarpwatch | Windows | No | Yes | No | No | passive | 保存 IP-MAC 地址对的映射,并通过 Syslog 和电子邮件报告更改。 |
Antidote | Linux | No | Yes | No | passive | Linux 守护进程,用于监控映射和异常大量的 ARP 数据包。 | |
Arp_Antidote | Linux | No | Yes | No | passive | Linux 内核补丁 2.4.18 – 2.4.20,用于监控映射,并可定义何时采取的操作。 | |
ArpGuard | Mac | Yes | No | Yes | Yes | active+passive | |
AntiARP | Windows | Yes | No | Yes | No | active+passive | |
Agnitum Outpost Firewall | Windows | Yes | No | Yes | No | passive | |
Colasoft Capsa | Windows | Yes | No | No | Yes | no detection, | 无检测,仅通过人工检查进行分析 |
NetCutDefender: | Windows | Yes | 可有效防御 ARP 攻击。 | ||||
Panda Security | Windows | Yes | active | 执行基本地址检查 | |||
Prelude IDS | ? | ArpSpoof 插件,可对地址进行基本检查。 | |||||
DefendARP: | ? | DefendARP 是一款基于主机的 ARP 表监控和防御工具,专为连接公共 Wi-Fi 而设计。它可以检测 ARP 中毒攻击,纠正中毒条目,并识别攻击者的 MAC 地址和 IP 地址。 |
4. Ettercap
2017年出版的书籍: Wireshark数据包分析实战(第3版), 介绍过的Cain & Abel最新版本是2014年的, 目前已经失联…
另外一款Ettercap, 最新版本是2020年的, 还能在github上找到.
Ettercap是一款免费的开源 网络安全工具,用于防范局域网中的中间人攻击。
它可用于计算机网络协议分析和安全审计。
它可在各种类Unix操作系统(包括Linux、Mac OS X、BSD和Solaris)以及Microsoft Windows上运行。
它能够拦截网段上的流量、捕获密码,并对多种常见协议进行主动窃听。
其最初的开发者后来成立了Hacking Team。
4.1 功能
Ettercap 的工作原理是将网络接口置于混杂模式,并对目标设备进行 ARP 中毒。
因此,它可以充当“中间人”的角色,对受害者发动各种攻击。
Ettercap 支持插件,因此可以通过添加新插件来扩展其功能。
4.2 特征
Ettercap 支持对多种协议(包括加密协议)进行主动和被动解析,并提供多种网络和主机分析功能。
Ettercap 提供四种操作模式:
- 基于 IP:根据 IP 源和目标对数据包进行过滤。
- 基于 MAC:根据MAC 地址过滤数据包,有助于嗅探通过网关的连接。
- 基于 ARP:使用 ARP 中毒来嗅探两个主机之间的交换 LAN(全双工)。
- 基于 PublicARP:使用 ARP 中毒在交换 LAN 上从受害主机嗅探到所有其他主机(半双工)。
4.3 此外,该软件还提供以下功能:
- 将字符注入到已建立的连接中:可以在维持实时连接的同时将字符注入服务器(模拟命令)或客户端(模拟回复)。
- SSH1 支持:嗅探用户名和密码,甚至 SSH1 连接的数据。Ettercap 是第一款能够全双工嗅探SSH连接的软件。
- HTTPS 支持:嗅探 HTTP SSL安全数据——即使通过代理建立连接。
- 通过GRE隧道的远程流量:从远程Cisco 路由器嗅探通过 GRE 隧道的远程流量,并对其进行中间人攻击。
- 插件支持:使用 Ettercap 的API创建自定义插件。
- 密码收集器适用于:TELNET、FTP、POP、IMAP、rlogin、SSH1、ICQ、SMB、MySQL、HTTP、NNTP、X11、Napster、IRC、RIP、BGP、SOCKS 5、IMAP 4、VNC、LDAP、NFS、SNMP、MSN、YMSG
- 数据包过滤/丢弃:设置一个过滤器,在TCP或UDP有效负载中搜索特定的字符串(或十六进制序列),并将其替换为选择的自定义字符串/序列,或丢弃整个数据包。
- TCP/IP 堆栈指纹识别:确定受害主机的操作系统及其网络适配器。
- 终止连接:从连接列表中终止所选的连接。
- LAN的被动扫描:检索有关 LAN 上的主机的信息、它们的开放端口、可用服务的版本号、主机的类型(网关、路由器或简单PC )以及跳数的估计距离。
- 劫持DNS请求。
Ettercap 还具有主动或被动查找 LAN 上其他毒化程序的能力。
4.4 Ettercap主页
欢迎来到 Ettercap 项目
Ettercap 是一款功能全面的中间人攻击套件。
它具有实时连接嗅探、动态内容过滤以及许多其他有趣的技巧。
它支持对多种协议的主动和被动解析,并包含许多用于网络和主机分析的功能。
4.5 下载
Ettercap 的最新版本是:0.8.3.1-Bertillon
发布日期:2020 年 8 月 1 日
Sha1:9185c59883c8d128b852233c9aa0ae46f772d170