如何利用代码进行ARP攻击演练?

网友解答: 谢邀!作为一个网络安全学习者,想要进行某些攻击的练习,不可能一开始就要到实际环境中进行演练,因此我们需要在特定的实验环境中进行攻击测试,最简单的实验环境就是虚拟机+自己的物理

网友解答:

谢邀!

作为一个网络安全学习者,想要进行某些攻击的练习,不可能一开始就要到实际环境中进行演练,因此我们需要在特定的实验环境中进行攻击测试,最简单的实验环境就是虚拟机+自己的物理机。下面小编就利用虚拟机与物理机进行简单的ARP攻击测试!

既然题主已经提到了ARP攻击,应该也是了解了ARP协议的基本原理,所以小编在这里也不做过多的协议分析,只是做简单的介绍:

1、ARP协议:又叫地址解析协议,主要作用是用于寻找已知IP地址所对应的MAC地址。

2、ARP报文:

*前三个为以太网帧首部,后面为arp请求/应答报文(28字节)。

帧类型:0x0806(arp协议)

硬件类型:1(表示以太网)

协议类型:0x0800(IP地址)

硬件地址长度:6(即MAC地址,以太网的物理地址为6字节,所以这里为6)

协议地址长度:4(IP地址长度)

OP:1(ARP请求),2(ARP应答)

3、套接字编程:俗称Socket编程、网络编程。主要用于两台电脑之间数据的通信。分为原始套接字与标准套接字编程,区别在于前者是基于网络的根部,即数据链路层;而后者基于网络应用层。由于我们进行arp攻击时需要读取网卡的信息,而且C语言对操作底层非常方便、高效,因此我们选择的是原始套接字编程。

4、ARP攻击原理:

ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

5、实验环境:

B为Windows虚拟机、C为Ubuntu虚拟机,A为本地物理机。三台主机必须位于同一个局域网中(怎么算同一个局域网我相信题主都懂的吧.......)。

两台虚拟机网络模式需要设为桥接模式。

6、攻击流程:

攻击者C向电脑A发送一个伪造的ARP响应,告诉A一个电脑B一个假的MAC地址,此时攻击生效使得B的MAC地址已经发生改变,致使A和B不能正常通信。

7、话不多说,直接上代码!这里不做过多的C语言代码解释,感兴趣的话题主可以自行百度,或者私信小编询问,只需要根据注释修改相应的IP地址、MAC地址就可以完成攻击了。

Linux下,输入ifconfig查看C主机的网卡名称:

编译运行代码。(-w忽略参数警告)

攻击IP地址为192.168.1.5的电脑,比较攻击前后MAC地址的变化,发现MAC地址已经发生改变,证明攻击已经生效......

利用飞Q聊天工具进行测试,攻击之前,A和B可以正常通信。

攻击后,由于B的MAC地址已经改变,所以无法和A进行通信。

ARP攻击可以导致内网的主机无法进行正常的通信,甚至可以截取内网的主机之间通信的数据,本次实验只演示怎么破坏内网主机之间的正常通信,如果想要了解ARP攻击之后怎么窃取内网信信息的,可以关注小编,我会定时更新,需要源码的也可以关注小编然后私信小编:ARP攻击代码。

切记,不要觉得小编教的可以完美应用实际环境中,这是非常愚蠢的,现在应付这种攻击的措施已经很成熟了,所以小编恳求大家不要做傻事。

标签: