第二章网络通信协议及网络攻击

第一节网络协议分层,ARP协议,ARP攻击以及ARP欺骗38952435e0d74f60bfdcbc74acde3bbf.jpeg1.网络层 ARP协议原理

在一个局域网内可能存在好多个pc端,如果某一时刻pc1想发送信息给pc2,那么它需要先找到pc2,只有找到pc2并建立连接后才能完成通信,可以把局域网比作一个班级,有一个同学想和另一个同学聊天,那就要先知道对方在哪并获得对方的手机号码,这样才能交流。那要怎样找到对方呢?这个同学要在班级内广播:xxx在哪我的手机号是。。。(arp),全班同学都会收听到(广播),但是只有xxx回复了此询问(arp响应),随后两人互换了手机号码(MAC地址),并建立通信。在这个过程中arp就像一个探路的探子,arp会带着目标pc机的IP地址以及自己的MAC地址并以广播的形式,即局域网内所有pc端都会收到这个arp,但是其他pc机发现这个arp的目标IP并不是自己,便会丢弃,只有pc2发现这个arp的目标IP是自己,所以pc2会回复pc1一个带有自己MAC地址的报文,pc1收到此回复后双方便互相确定了MAC地址,就建立了连接。

2.ARP缓存机制

arp缓存机制会把建立过连接的MAC地址保存下来,这样下次通信便可直接连接,不需要再先用arp探路,但是arp缓存并不是永久的,重启电脑后便会消失,届时若想再次通信便还需先用arp探路,这也是为什么电脑刚开机时网速会有些慢的原因。

3.ARP攻击原理

利用arp的工作原理,我们可以进行arp攻击,即伪装成受害机的网关,向受害机不断发送arp响应,这样受害机便会把我们当做目标网关并和我们建立通信,这就会导致受害机无法上网,并且其发送的数据包全部被我们截获,可以使用 WireShark 分析截获的数据来检视受害机。

由于我们不断向受害机发送arp响应,使得真正的网关即使发送了arp响应也会被我们覆盖掉。

4.ARP攻击实验(该部分的攻击命令仅供实验,切勿用于恶意攻击)

需要准备一个kali虚拟机和一个Windows受害机(什么版本的Windows都可以)

〈1〉打开kali虚拟机输入:

ip addr show

可以看到kali机的IP和MAC地址

打开受害机输入:

ipconfig

可以看到受害机的IP和网关

〈2〉打开kali机命令框,输入:

apt-get install -y dsniff

更新工具

〈3〉在kali命令框中输入:

arpspoof -t (受害机IP地址) (受害机目标网关)

开始进行arp攻击,kali机向受害机发送欺骗报文,把自己伪装成受害机的网关。攻击开始后受害机便立刻不能上网。可以打开受害机尝试ping一些地址,发现都无法ping通,并且记录会被kali机截获,可使用WireShark对截获的数据包进行分析。

〈4〉回到kali机,输入ctrl+c停止攻击。受害机便可恢复上网。

5.ARP欺骗原理

arp攻击其实就是单向欺骗受害机,arp欺骗就是在arp攻击的基础上,同时欺骗受害机的网关,是双向欺骗,即伪装成受害机,并向受害机的网关发送arp,这样受害机的网关便会把我们的攻击机当做受害机,攻击机会转发来自受害机和受害机网关的报文,所以arp欺骗不会导致受害机断网,相当于监听通话。

6.ARP欺骗实验(该部分的攻击命令仅供实验,切勿用于恶意攻击)

〈1〉首先要完成ARP攻击的步骤

〈2〉在kali中打开一个新的命令框,输入:

echo 1 >> /proc/sys/net/ipv4/ip_forward

kali机打开转发功能,此时受害机就可以上网了。

〈3〉在kali输入框中接着输入:

arpspoof -t (受害机目标网关) (受害机IP地址)

使用arp攻击受害机网关,这样就完成了双向欺骗。受害机可以上网,所以很难察觉自己遭到了arp欺骗。

〈4〉可以打开WireShark对受害机进行监听。输入Ctrl+c可以停止攻击。

7.如何确定自己是否遭遇了arp欺骗

我们可以用arp -a查看自己的ARP表,如果发现两条重复的MAC地址,对应不同的ip,那么我们就是被ARP欺骗了

也可以打开wireshark进行数据抓包分析。ARP:看到有duplicate use(重复使用网关地址)说明有人冒充网关向我们发送请求,这说明有人在ARP欺骗。

还可以使用arp -s来修改ARP表项,但是设置完成后,发现设置的MAC地址又被替换掉了,因为这里ARP表项是动态更新的,而攻击者使用kali不停的向我们发送假的请求,把我们修改的刷新掉了

8.如何发现和防范ARP攻击和ARP欺骗

1/静态ARP表配置
将ARP表中的IP地址与MAC地址绑定为静态,避免系统自动学习或更新ARP表中的条目。

arp -s 是一个用于手动设置静态 ARP 表项的命令。在Linux 系统中,ARP用于将 IP 地址映射到 MAC 地址。arp -s 命令允许您手动指定一个 IP 地址和对应的 MAC 地址,将其添加到系统的 ARP 缓存中。

使用 arp -s 命令的一般语法是:

sudo arp -s <IP地址> <MAC地址>

其中:

<IP地址> 是要映射的目标 IP 地址。

<MAC地址> 是要与之关联的目标 MAC 地址。

例如,要将 IP 地址 192.168.1.100 映射到 MAC 地址 00:11:22:33:44:55,您可以执行以下命令:

sudo arp -s 192.168.1.100 00:11:22:33:44:55

2/启用动态ARP检查(Dynamic ARP Inspection, DAI)
这是Cisco交换机提供的一种网络层防护机制,它可以确保交换机仅将有效的ARP响应转发给网络中的设备,从而有效防止ARP欺骗。
工作原理:
启用DAI后,交换机会验证收到的ARP请求和响应的合法性。
交换机会根据已知的IP-MAC绑定表检查每个ARP包,若发现不匹配,则丢弃该ARP包。
配置方法:在Cisco交换机上,配置DAI的步骤如下:

ip arp inspection vlan <VLAN ID>
ip arp inspection validate src-mac dst-mac ip

3/ 使用VPN和加密通信
使用虚拟私人网络(VPN)和加密协议(如SSL/TLS)可以有效避免ARP欺骗带来的信息泄露风险。即使攻击者成功实施ARP欺骗,所有数据都将加密,因此攻击者无法读取或篡改传输中的数据。
优点:
加密通信可以确保数据的安全性,即使存在中间人攻击,也无法获取有效的通信内容。

4/ 采用交换机端口安全
大多数现代交换机支持端口安全功能,可以限制某个端口上允许学习的MAC地址数量,并且可以限制一个端口上只允许固定的MAC地址访问网络。
工作原理:
启用端口安全后,交换机会监控每个端口的MAC地址。若某个端口接收到非法的MAC地址,交换机会阻止该端口的数据传输。
配置方法:在Cisco交换机上,可以通过以下命令启用端口安全:

interface <interface>
switchport port-security
switchport port-security maximum 2
switchport port-security violation restrict
switchport port-security mac-address <MAC地址>

5/启用ARP防护功能(例如防ARP欺骗的软件)
某些操作系统和安全工具提供ARP防护功能,能够监测和阻止ARP欺骗行为。例如,许多Linux发行版和防火墙工具(如iptables)可以用来监控和过滤ARP包。
示例工具:
Arpwatch:一个ARP监视工具,它能够在ARP表发生变化时发出警告。
XArp:一个专门设计来防范ARP欺骗的工具,它会监测网络中的ARP活动,并且能够检测ARP欺骗攻击。

6/使用IP-MAC绑定(IP-MAC Binding)
IP-MAC绑定是一种基于硬件的安全机制,用于绑定特定IP地址和MAC地址。只有当ARP请求中的IP和MAC地址配对匹配时,ARP响应才会被允许。
工作原理:
在局域网内,可以通过路由器或交换机配置IP与MAC地址的绑定规则,确保ARP请求与响应中的地址匹配。

7/及时更新操作系统和网络设备的固件
确保操作系统、路由器、交换机等网络设备的固件和操作系统是最新版本,包含已修复的漏洞和安全补丁。设备的固件和操作系统更新通常会修复一些已知的安全漏洞,从而减少ARP欺骗等攻击的可能性。

8/监控网络流量
定期监控网络流量,检测ARP缓存表的变化,发现异常的ARP请求。例如,当ARP表频繁变更时,可能是ARP欺骗攻击的迹象。
可以使用一些网络监控工具(如Wireshark、Tcpdump等)分析网络流量,检查是否存在大量伪造的ARP包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值