实验一 ARP欺骗
一、拓扑

二、实验准备、
1.设置终端
漏洞靶机集合
选择需要的数量和镜像
打开设备上的驱动精灵安装网卡

安装成功后查看IP地址、网关信息等。



三、实验步骤
1.实验原理
中间人(攻击者)在终端与网关之间持续发送伪造的 ARP 应答包 ,双向欺骗终端和网关---让终端误认为攻击者是网关,让网关误认为攻击者是终端,从而使两者的通信数据均经攻击者转发(即 "中间人" 角色)。
❓如果我只欺骗网关会发生什么
假设只欺骗网关(告诉网关:"我是受害者,请把数据发给我!"):
上行流量(受害者 → 网关)
受害者正常发送数据到网关 ✅
攻击者无法截获(流量不经过攻击者) ❌
下行流量(网关 → 受害者)
网关将本应发给受害者的数据发给攻击者 ✅
但攻击者无法将数据送回受害者(受害者不认识攻击者的MAC,所以受害者不会接收攻击者发送的数据) ❌
结果:
- 受害者收不到网关返回的数据(如网页响应)→ 网络中断!
- 攻击者只能收到单向残破数据(如下行流量),无法完成监听或篡改。
❓如果我只欺骗受害者会发生什么
攻击流程拆解
假设攻击者(
192.168.1.100
)只向受害者(192.168.1.10
)发送欺骗报文:1. 受害者发出的流量(上行)
- 受害者访问百度:
192.168.1.10
→ 攻击者MAC (受害者以为攻击者是网关) → 数据包到达攻击者 ✅
结果 :攻击者可监听/篡改受害者发出的所有请求(如 HTTP 登录密码)。2. 网关返回的流量(下行)
- 网关处理完请求后,需将百度响应返回给
192.168.1.10
:
192.168.1.1
→ 受害者真实MAC, 网关未被欺骗,直接发给受害者 → 数据包直达受害者 ✅
结果 :攻击者完全收不到下行流量 ❌结果:网络为何中断
关键问题:TCP 连接断裂
当受害者发出 SYN 请求(如访问网站):
SYN 包被攻击者截获 → 攻击者可选择丢弃或转发给网关。
网关收到 SYN 后回复 SYN-ACK → 直接发给受害者(未经过攻击者)。
受害者收到 SYN-ACK 后回复 ACK → 再次发给攻击者(因受害者以为攻击者是网关)。
致命矛盾出现:
网关在等待 ACK 确认包(受害者已发出,但被攻击者截获)
受害者发出的 ACK 被攻击者拿走 → 网关永远收不到 ACK
TCP 三次握手失败 → 连接无法建立 → 受害者无法加载任何网页!
❓为什么网关能收到受害者数据包?
受害者发送数据包中信息:
攻击方收到后动作(关键):
- 查询 自己的路由表,将真实网关mac地址重新封装!!
2.使用Ettercap工具进行攻击
使用命令ettercap -G打开Ettercap

在Ettercap上绑定一个网口
选择一个网口
选择完成后界面发生改变

发现局域网中的主机

扫描结果

添加欺骗目标


为了保证被欺骗的主机可以上网执行这一步

kali总是发送这样的应答型无故ARP。
欺骗成功

实验二、MAC洪范攻击
一、实验过程
1.MAC攻击的原理
泛洪攻击即是攻击者利用这种学习机制不断发送不同的MAC地址给交换机,填满整个 MAC表,此时交换机只能进行数据广播,攻击者凭此获得信息。
2.在kali终端上使用命令攻击
macof
3.攻击后交换机


实验三 TCP SYN Flood攻击
1.用hping3攻击


2.防御:

实验四 DNS欺骗
1.原理
通过篡改 DNS 解析过程中的数据,将用户原本请求的域名指向错误的 IP 地址,从而引导用户访问恶意网站或拦截其网络流量。
2.具体操作步骤
修改/etc /ettercap/etter.dns的配置文件

添加域名与ip映射,表示主机访问任意域名都转化成10.0.0.135

开启apache服务,并测试,进入cd /etc/init.d,开启服务./apache2 start

攻击者的网页

进行ARP欺骗ettercap -G,设置欺骗的对象

双击dns_spoof,打开插件
在被欺骗主机上ping baidu.com发现是攻击者ip

访问网页发现是攻击者设置的网页

实验五 DHCP饿死
一、实验原理
由于DHCP没有什么验证机制,任何一发送过来的DHCP请求都可以请求到地址。那么就可以伪造大量的DHCP Discover报文。使得DHCP服务器的地址耗尽,不能正常工作。
二、实验过程
步骤一:打开工具yersinia -G
步骤二:使用dhcp模块,发起dhco discover报文。


