中间人公鸡(Man-in-the-Middle Attack,MITM)是一种网络公鸡放式,公鸡者位于通信双方之间,截获、篡改或伪造通信数据。ARP欺骗(Address Resolution Protocol Spoofing)是实现中间人公鸡的一种常见手段。
ARP协议是用来将网络层的IP地址映射到数据链路层的MAC地址的协议。在局域网中,当一台设备想要与另一台设备通信时,它首先发送ARP请求,询问目标IP地址对应的MAC地址是什么。接收到ARP请求的设备,如果其IP地址与请求中的目标IP地址匹配,就会回复自己的MAC地址。这样,两台设备就可以通过MAC地址进行数据交换了。
ARP欺骗的基本思路是让公鸡者的设备假冒目标设备的MAC地址,使得其他设备误以为公鸡者的设备就是目标设备。这样,公鸡者就可以截获原本应该发送给目标设备的数据包。
下面是一个ARP欺骗公鸡的基本步骤:
- 监听网络:公鸡者首先需要监听目标网络的流量,以便发现ARP请求和响应。
- 发送伪造的ARP响应:当检测到ARP请求时,公鸡者发送一个伪造的ARP响应,声称自己(公鸡者)的MAC地址就是请求中的目标IP地址的MAC地址。
- 建立虚假连接:如果其他设备相信了公鸡者发送的伪造ARP响应,它们就会开始将数据包发送到公鸡者的MAC地址。
- 截获和篡改数据:公鸡者现在可以截获发送给目标设备的数据包,并在必要时篡改这些数据包的内容。
- 维持公鸡:为了保持中间人状态,公鸡者需要定期发送伪造的ARP响应,以防止网络中的其他设备发现真实的MAC地址。
防御措施
为了防御ARP欺骗公鸡,可以采取以下措施:
- 静态ARP记录:在关键设备上设置静态ARP记录,绑定已知的IP地址和MAC地址对,这样可以避免接受伪造的ARP响应。
- 使用加密协议:使用端到端的加密协议(如HTTPS、SSH等),即使数据包被截获,公鸡者也无法轻易解密和篡改内容。
- 网络监控和入侵检测:部署网络监控和入侵检测系统,及时发现和阻断可疑的ARP响应。
- 交换机端口安全:在交换机上配置端口安全,限制可以访问某个端口的MAC地址数量或指定允许的MAC地址。
- VLAN隔离:通过VLAN技术将网络分割成多个逻辑子网,减少ARP欺骗的公鸡面。
- 使用ARP防护工具:使用一些专门的ARP防护工具,如ArpGuard、Snort等,来检测和防御ARP欺骗公鸡。
通过以上措施,可以在一定程度上降低ARP欺骗公鸡的风险,保护网络的安全性。
ettercap
打开软件
点击右上角的三个点,选择hosts list
进入主机列表
将想要欺骗的网关和受害者分别添加到"add to target 1"和"add to target 2
选择arp
用网管欺骗30IP地址,告诉他我是网管。
命令行基本用法
- 启动 Ettercap:
其中 <interface>
是你要使用的网络接口,例如 eth0
或 wlan0
。
- 选择公鸡模式:
- 按
Ctrl + A
进入公鸡模式选择菜单。 - 选择你需要的公鸡模式,例如
ARP Poisoning
。
- 设置目标:
- 按
T
键进入目标设置菜单。 - 添加目标设备和网关设备的 IP 地址。
- 执行公鸡:
- 按
Y
键开始执行公鸡。
- 监控流量:
- 在公鸡过程中,Ettercap 会显示捕获的数据包,可以实时监控和分析网络流量。
进阶用法
- ARP 欺骗公鸡:
- 步骤:
- 启动 Ettercap。
- 选择
ARP
分类,然后选择ARP Poisoning
公鸡模式。 - 设置目标设备和网关设备的 IP 地址。
- 开始执行公鸡。
- 示例命令:
- 其中
-T
表示文本模式,-q
表示安静模式,-M arp:remote
指定使用 ARP 欺骗公鸡模式,/192.168.1.0/
是目标网络地址,/192.168.1.254/
是网关 IP 地址。
- DNS 欺骗公鸡:
- 步骤:
- 启动 Ettercap。
- 选择
DNS
分类,然后选择DNS Spoof
公鸡模式。 - 设置目标设备的 IP 地址和要欺骗的域名。
- 开始执行公鸡。
- 示例命令:
- 其中
-M dns:remote
指定使用 DNS 欺骗公鸡模式,/www.google.com/
是要欺骗的域名,/192.168.1.0/
是目标网络地址。
- 会话劫持:
- 步骤:
- 启动 Ettercap。
- 执行 ARP 欺骗公鸡,使目标设备和网关设备之间的流量通过 Ettercap。
- 使用
ettercap -S
命令查看当前捕获的会话。 - 使用
ettercap -K <session_id>
命令劫持指定会话。
- 示例命令:
- 其中
<session_id>
是要劫持的会话 ID。
hping3
hping3
是一个用于教育和研究目的的网络工具,它可以发送自定义的 TCP/IP 数据包,并显示目标的回复。它类似于 ping
工具,但提供了更多的功能和灵活性,比如支持 TCP、UDP、ICMP 和 RAW-IP 协议,能够跟踪路由模式,能够在覆盖的信道之间发送文件,还支持使用 Tcl 脚本自动化地调用其 API。
基本用法
- 安装 hping3:
- 在 Debian/Ubuntu 系统上,可以使用以下命令安装 hping3:
- 基本语法:
其中 <target>
是你要测试的目标 IP 地址或域名。
- 常用选项:
-c count
:发送指定数量的数据包。-d data
:在数据包中包含指定的数据。-f
:开启碎片模式。-i interval
:设置数据包发送间隔。-l length
:设置数据包长度。-p port
:指定目标端口。-s source_port
:指定源端口。-t ttl
:设置数据包的生存时间(TTL)。-v
:增加输出的详细程度。-V
:显示版本信息。
示例
图中的文字主要涉及使用hping3工具发起不同类型的网络公鸡和扫描操作。下面是文字的提取以及相应代码的详解:
- LandAttack(源自的地址相同)
hping3 -S*c 100 -a <sip> -p 22 <dip>
- 这行命令是进行Land公鸡,这是一种拒绝服务公鸡,其中源地址和目标地址被设置为相同的值。
-S*
表示使用TCP SYN洪水模式,-c 100
表示发送100个数据包,-a <sip>
指定欺骗源IP地址,-p 22
指定目标端口,<dip>
为目标IP地址。
- DOS公鸡
hping3 -S -d 100 -w 64 -p 445 -s 445 --flood --rand-source <IP>
- 这是一个针对SMB协议的拒绝服务公鸡命令。
-S
使用TCP SYN洪水攻公鸡击,-d 100
设置数据包的大小为100字节,-w 64
设置TCP窗口大小为64字节,-p 445
和-s 445
分别指定目标端口和源端口为445,这是SMB服务的默认端口,--flood
持续发包,不等待回应,--rand-source
使用随机源IP地址,<IP>
为目标IP地址。
- Smurf公鸡
hping3 -1 --flood -a <dip> 1.1.1.255
- Smurf公鸡是一种利用IP广播进行放大的拒绝服务公鸡。
-1
表示使用ICMP协议,--flood
持续发包,-a <dip>
指定欺骗的源地址,1.1.1.255
是一个广播地址,用于向该网络内的所有主机发送请求。
- 扫描地址掩码
hping3 -1 -c 1 -V -C 17 <dip>
- 这是用来进行ICMP扫描的命令,
-1
使用ICMP协议,-c 1
只发送一个数据包,-V
显示版本信息,-C 17
指定ICMP报文的类型为17(地址掩码请求),<dip>
为目标IP地址。
- 端口扫描
hping3 -c 1 -V -p 80 -s 5050 -<SFXYARPU> <dip>
- 这条命令用于对目标主机进行端口扫描。
-c 1
发送一个数据包,-V
显示版本信息,-p 80
指定目标端口为80,通常用于HTTP服务,-s 5050
指定本地端口为5050,<SFXYARPU>
可能是某种特定参数或标识,<dip>
为目标IP地址。
- 使用sudo权限运行hping3
sudo hping3 -8 1-1000 -S 172.31.1.30
- 这是以sudo权限运行hping3的命令,可能用于确保有足够的权限执行某些操作。
-8
表示每个数据包的大小,1-1000
指定发包的范围,-S
使用TCP SYN模式,172.31.1.30
为目标IP地址。
基本用法
- 发送 ICMP 数据包:
这将向目标 IP 地址 192.168.1.1 发送 10 个 ICMP 数据包。
- 发送 TCP 数据包:
这将向目标 IP 地址 192.168.1.1 的 80 端口发送 10 个 TCP 数据包。
- 发送 UDP 数据包:
这将向目标 IP 地址 192.168.1.1 的 53 端口发送 10 个 UDP 数据包。
- 跟踪路由模式:
这将向目标 IP 地址 192.168.1.1 发送 10 个数据包,并跟踪它们的路由路径。
进阶用法
- 自定义数据包内容:
- 使用
-d
选项可以指定数据包中的数据内容。
这将向目标 IP 地址 192.168.1.1 发送 10 个包含 “Hello, World!” 的数据包。
- 设置数据包长度:
- 使用
-l
选项可以指定数据包的长度。
这将向目标 IP 地址 192.168.1.1 发送 10 个长度为 100 字节的数据包。
- 设置数据包发送间隔:
- 使用
-i
选项可以设置数据包之间的发送间隔。
这将向目标 IP 地址 192.168.1.1 发送 10 个数据包,每个数据包之间间隔 1 秒。
- 指定源端口和目标端口:
- 使用
-s
和-p
选项可以指定源端口和目标端口。
这将从源端口 1234 向目标 IP 地址 192.168.1.1 的 80 端口发送 10 个数据包。
- 设置数据包的 TTL(Time To Live):
- 使用
-t
选项可以设置数据包的 TTL 值。
这将向目标 IP 地址 192.168.1.1 发送 10 个 TTL 值为 10 的数据包。
- 使用碎片模式:
- 使用
-f
选项可以启用碎片模式,将数据包分成多个小片段。
这将向目标 IP 地址 192.168.1.1 发送 10 个碎片化的数据包。
- 跟踪路由模式:
- 使用
-T
选项可以启用跟踪路由模式(类似traceroute)。
这将向目标 IP 地址 192.168.1.1 发送 10 个数据包,并跟踪它们的路由路径。
- 使用脚本自动化:
hping3
支持使用 Tcl 脚本来自动化操作。
这将向目标 IP 地址 192.168.1.1 发送 10 个数据包,每个数据包之间间隔 1 秒,数据包包含 “Hello, World!”,长度为 100 字节,源端口为 1234,目标端口为 80,TTL 值为 10,并跟踪它们的路由路径。