Man-in-the-Middle Attack (HTTP)中间人攻击
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
ARP欺骗的3种方式:
1. 攻击者仅仅欺骗被攻击主机(单向):
主机C向主机B发送伪造的ARP回应包,声称自己的MAC地址就是网关对应的IP,这样,主机B就会将所有的流量发送主机C(攻击者),主机C开启ip_forward路由转发功能将数据包进行转发
2. 攻击者仅仅欺骗被攻击主机、同时在本地进行Iptable NAT转发(双向)
主机C向主机B发送伪造的ARP回应包,声称自己的MAC地址就是网关对应的IP,这样,主机B就会将所有的流量发送主机C(攻击者),同时,攻击者在本地使用Iptables进行NAT转换,这样就可以接收到网关返回的数据包,完成双向流量窃取的目的
3. 攻击者同时欺骗被攻击主机和网关(双向)
主机C同时欺骗主机B和网关,实现数据中转,并监听到所有主机B的数据(双向)
主机C向网关发送ARP回应包,声称自己是主机B,同时向主机B发送ARP回应包,声称自己是网关,这样,网关和主机B两边的流量都会发往主机C,主机C并不需要使用Iptables做特殊的转发,只需要打开ip_forward路由开关(即打开转发功能),是主机C具有数据包转发的功能即可,就可以成功劫持主机B的流量数据
2和3看起来似乎相同,都劫持到双向流量,但在通信原理上来说,MAC地址在同一个广播域传输过程中是不变的,在跨越广播域的时候会发生改变的;而IP地址在传输过程中是不会改变的(除NAT的时候),总结为路由转发MAC不变,IP变。因为在A经C再到网关是同一个局域网。所以都不会发生改变。2如果不进行转换,此时数据包的目的MAC,目的IP是网关,源MAC是A,源IP也是A的IP,但实际上应该C转发给网关的,转发数据包的错误。
举个简单的例子,A和B是进行交易,一手交钱一手交货,他们都以对方穿的衣服为特征进行交易,这里的衣服就是MAC地址,有一次,A与B准备交易的时候,C穿着B同款衣服,和A说他是B,叫A把货给他,A一看是和B一样的衣服就把货给C了。此时C就知道了A的货物内容,这时候就造成攻击者仅仅欺骗被攻击主机(单向);这时候A把货送出去了,没收到钱肯定会起疑,这时候C还要加工一下再交到B手里,让B打钱,这里就是攻击者仅仅欺骗被攻击主机、同时在本地进行Iptable NAT转发(双向);然后C不打算做加工那么麻烦的事情了,直接穿B同款和A说自己是B,穿A同款和B说自己是A。之后A和B贸易的时候,C就能同时知道货和钱,还不用伪装自己的痕迹,这就是攻击者同时欺骗被攻击主机和网关(双向)。
实战
攻击机:Kali
网卡:eth0
IP: 192.168.1.104
MAC: 00:0c:29:45:4b:91
探测
nmap -sS 192.168.1.0/24
靶机:win10(这里以真实物理机为主)
IP :192.168.1.106
MAC :4c:ed:fb:d9:cd:88
接口:ARP
网关:192.168.1.1
Mac:94:D9:B3:FF:2A:18
1.攻击者仅仅欺骗被攻击主机(单向):
echo 0 /proc/sys/net/ipv4/ip_forward //关闭转发功能
arpspoof -i eth0 -t 192.168.1.106 192.168.1.1 // arpspoof -i 网卡 -t 靶机地址 伪装地址
靶机效果
此时靶机的数据包是发送给攻击机的,攻击机并没有开启转发,所以形成了局域网断网攻击
此时靶机的ARP缓存
2.攻击者仅仅欺骗被攻击主机、同时在本地进行Iptable NAT转发(双向)
在1的基础上开启转发
echo 1 /proc/sys/net/ipv4/ip_forward
靶机效果
可以正常上网但发现网速明显下降
此时ARP缓存
靶机登陆BWAPP,此时攻击机现在抓取靶机的流量包
发现抓取到了BWAPP的登陆信息
3. 攻击者同时欺骗被攻击主机和网关(双向)
arpspoof -i eth0 -t 192.168.1.106 192.168.1.1 //欺骗靶机
arpspoof -i eth0 -t 192.168.1.1 192.168.1.106 //欺骗网关
driftnet -i eth0 //抓取图片
靶机浏览网页图片,此时攻击机
ARP防御
可以在客户端设置静态的ARP映射表,配置静态MAC,这样就不会受到ARP的欺骗;
也可以在交换机上设置访问控制,对于所有流经交换机但IP地址和MAC地址与网关不匹配的情况进行过滤,从而避免了ARP的攻击。
参考
百度ARP攻击