ARP欺骗攻击原理与实现代码

需积分: 17 8 下载量 71 浏览量 更新于2024-09-18 收藏 6KB TXT 举报
"arp攻击程序代码" 在网络安全领域,ARP(Address Resolution Protocol)攻击是一种常见的网络欺骗技术,它利用了ARP协议的缺陷来篡改网络通信。ARP的主要作用是在局域网(LAN)中将IP地址映射到MAC地址,以便数据包能够正确地在物理网络上发送。当进行ARP攻击时,攻击者会发送伪造的ARP响应,误导网络中的设备,使得它们将数据包错误地发送到攻击者的设备上。 在上述描述中, ARP spoofing(ARP欺骗)的实施方式是通过发送ARP REPLY数据包。攻击者会将这些数据包的源IP地址设置为被欺骗主机(例如机器A或B)想要通信的目标IP地址,而源MAC地址则设为攻击者的MAC地址。如果攻击者同时对A和B执行此操作,A和B之间的所有通信都会经过攻击者的设备。这是因为A和B都会将伪造的ARP响应添加到它们各自的ARP缓存中,从而误认为攻击者的MAC地址对应于对方的IP地址。 在实际操作中,有多种方式可以实现ARP欺骗。例如: 1. 直接欺骗:攻击者将自己伪装成网络上的另一个设备,比如路由器,从而控制所有流经该设备的数据包。在这种情况下,攻击者可能需要知道目标设备的IP和MAC地址,然后发送相应的ARP REPLY。 2. 中间人欺骗:攻击者把自己置于两个通信设备之间,拦截并可能修改它们之间的通信。这通常需要攻击者能控制数据包的转发。 3. 持续欺骗:为了维持欺骗状态,攻击者可能需要不断发送ARP REPLY,防止正常的ARP响应更新被欺骗主机的ARP缓存。 在代码示例中,可以看到一个简单的ARP欺骗程序的框架。这个程序可能使用了WinPcap库来捕获和注入数据包。`BtNet.exe`可能是这个攻击工具的名称,它可以接收参数来指定攻击目标的IP地址、网关IP地址以及可选的伪造MAC地址。程序中包含了处理以太网帧(ETHHDR)和ARP请求/响应(ARPHDR)的结构定义,这些都是实现ARP欺骗的基本元素。 请注意,ARP攻击是非法的,并且可能导致严重的信息安全问题,包括数据窃取和中间人攻击。在合法的网络监控和安全研究之外,不应该尝试或使用这种技术。
2007-10-31 上传
现在有一台计算机A(IP:192.168.85.1 MAC:AA-AA-AA-AA-AA-AA),另一台计算机B(IP:192.168.85.100 MAC:BB-BB-BB-BB-BB-BB)现在用A去 ping B。看见 Reply from 192.168.85.100: bytes=32 time<10ms TTL=32 这样的信息。然后在运行中输入arp -a,会看见 192.168.8.100 BB-BB-BB-BB-BB-BB dynamic这样的信息。那就是arp高速缓存中IP地址和MAC地址的一个映射关系,在以太网中,数据传递靠的是MAC,而并不是IP地址。其实在这背后就隐藏着arp的秘密。你一定会问,网络上这么多计算机,A是怎么找到B的?那么我们就来分析一下细节。首先A并不知道B在哪里,那么A首先就会发一个广播的ARP请求,即目的MAC为FF-FF-FF-FF-FF-FF,目的IP为B的192.168.85.100,再带上自己的源IP,和源 MAC。那么一个网段上的所有计算机都会接收到来自A的ARP请求,由于每台计算机都有自己唯一的MAC和IP,那么它会分析目的IP即 192.168.85.100是不是自己的IP?如果不是,网卡会自动丢弃数据包。如果B接收到了,经过分析,目的IP是自己的,于是更新自己的ARP高速缓存,记录下A的IP和MAC。然后B就会回应A一个ARP应答,就是把A的源IP,源MAC变成现在目的IP,和目的MAC,再带上自己的源IP,源 MAC,发送给A。当A机接收到ARP应答后,更新自己的ARP高速缓存,即把arp应答中的B机的源IP,源MAC的映射关系记录在高速缓存中。那么现在A机中有B的MAC和IP,B机中也有A的MAC和IP。arp请求和应答过程就结束了。由于arp高速缓存是会定时自动更新的,在没有静态绑定的情况下,IP和MAC的映射关系会随时间流逝自动消失。在以后的通信中,A在和B通信时,会首先察看arp高速缓存中有没有B的IP和MAC的映射关系,如果有,就直接取得MAC地址,如果没有就再发一次ARP请求的广播,B再应答即重复上面动作。 好了在了解了上面基本arp通信过程后,arp欺骗就不那神秘了,计算机在接收到ARP应答的时候,不管有没有发出ARP请求,都会更新自己的高速缓存。利用这点如果C机(IP:192.168.85.200 MAC:CC-CC-CC-CC-CC-CC)伪装成B机向A发出ARP应答,自己伪造B机的源MAC为CC-CC-CC-CC-CC-CC,源IP依旧伪造成B的IP即192.168.85.100,是那么A机的ARP缓存就会被我们伪造的MAC所更新,192.168.85.100对应的MAC就会变成CC-CC-CC-CC-CC-CC.如果A机再利用192.168.85.100即B的IP和B通信,实际上数据包却发给了C机,B机根本就接收不到了。实例基于WINCAP编写,描述其本源理与流程.