安全攻防之Kali Linux ARP欺骗攻击

2019-09-25 10:50:51 阅读量:


一、原理概述
 
地址解析协议ARP(Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议。在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送方还必须有接收方的物理地址(MAC地址),所以需要一个从IP地址到物理地址的映射。ARP就是实现这个功能的协议。

ARP协议有简单、易用的优点,但是也因为其没有任何安全机制,容易被攻击者利用,通过发送伪造的ARP报文,恶意修改设备或网络内其他用户主机的ARP表项,造成用户或网络的报文通信异常。
 
二、组网拓扑
 
\

如图所示,SW2通过接口GE0/0/10连接DHCP Server,通过接口GE0/0/1、GE0/0/2连接DHCP客户端PC1和PC2,通过接口GE0/0/3连接静态配置IP地址的用户Kail,用户Kail是通过ENSP的云设备桥接到VMware中的Kail系统。SW2的接口GE0/0/1、GE0/0/2、GE0/0/3、GE0/0/10都属于VLAN10。
 
三、原理分析
 
1.PC1与出口网关通信arp工作过程
 
初始情况下,PC1在ARP表中找不到网关对应的MAC地址,则以广播方式发送一个ARP请求报文。 ARP请求报文中的发送端IP地址和发送端MAC地址为PC1的IP地址和MAC地址,目标IP地址为网关的IP地址,目标MAC地址为全0的MAC地址。

\

 
网关比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即PC1)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给PC1,其中包含了自己的MAC地址。

\
\
 
PC1收到ARP响应报文后,将HOSTB的MAC地址加入到自己的ARP表中以用于后续报文的转发

\
 
此后PC1与网关通过交换机直接通信,如下图所示:
\
 
2.使用Kail对PC1进行ARP欺骗
 
打开kail路由转发功能,使Kail能中转用户间的数据包。

\

执行如下命令对PC1进行ARP欺骗攻击,Kail主动向PC1发送伪造网关的ARP包,导致PC1的ARP表中记录错误的网关地址映射关系。

\
 
伪造包如下图所示,网关10.1.1.254对应的MAC地址被伪造为Kail的MAC

\
 
PC1收到伪造的ARP包,没有任何验证机制,直接把映射关系更新到ARP表中,如下图所示,网关对应的MAC已被欺骗为Kail的MAC.
 
\

3.使用Kail对网关进行ARP欺骗
执行如下命令对网关进行ARP欺骗攻击,主动向网关发送伪造网关的ARP包,导致网关的ARP表中记录错误的PC1地址映射关系。
 
\
 
伪造包如下图所示,PC1对应的MAC地址被伪造为kail的MAC
 
\
 
网关收到伪造的ARP包,没有任何验证机制,直接把映射关系更新到ARP表中,如下图所示,PC1对应的MAC已被欺骗为Kail的MAC

\
 
如下图所示:ARP欺骗后,PC1与网关通信,数据流量都会通过Kail中转
 
\
 
4.信息窃取
 
在Kail系统上执行如下命令打开wireshark工具
 
\

捕获eth0网卡上的流量
 
\
 
过滤出telnet流量

\
 
在PC1上telnet网关

\
 
在Kail系统的wrieshark工具上可以看到有大量的telnet报文

\
 
随便选中一个telnet报文,右键fllow tcp stream

\
 
成功窃取到telnet登录密码syh@tech

\