使用scapy进行ARP攻击
2020-04-01 11:33:14 Author: mp.weixin.qq.com(查看原文) 阅读量:219 收藏


ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。

通过ARP欺骗可以对内网数据进行嗅探,在内网渗透中往往也是重要的一部分。

实验环境如下

无线网关:

IP:192.168.199.1

MAC: d4-ee-07-67-40-68

普通用户:

IP:192.168.199.213

MAC:5c:93:a2:fe:29:e3

攻击者:

IP:192.168.199.229

MAC:30-b4-9e-67-25-47

实验环境图如下:

一、ARP 欺骗原理

攻击者通过构造两种ARP响应包,分别欺骗普通用户和网关路由器。

第一种ARP包中源IP为网关IP(192.168.199.1),源MAC为攻击者MAC(30:b4:9e:67:25:47),目的IP为普通用户IP(192.168.199.213),目的MAC为普通用户MAC(5c:93:a2:fe:29:e3)。当用户收到此ARP报文则将ARP表中网关的MAC地址更新为攻击者的MAC(30:b4:9e:67:25:47)。当普通转发数据时数据则会发向攻击者的PC上,由攻击者进行数据转发。

第二种ARP包中源IP为普通用户IP(192.168.199.213),但源MAC为攻击者MAC(30:b4:9e:67:25:47),目的IP为网关IP(192.168.199.1),目的MAC为网关MAC(d4:ee:07:67:40:68)。网关收到此ARP将ARP表中普通用户的MAC更新为攻击者MAC(30:b4:9e:67:25:47)。

实现代码如下:

`def poison_target(gateway_ip,gateway_mac,target_ip,target_mac):

通过不间断的发送这两种ARP报文,攻击者以中间人的形式窃取数据报文。

实验前普通用户PC机中ARP表如下:

实验开始前,需打开攻击者的路由转发功能,若未开启转发攻击,普通用户则无法正常访问外网。

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

运行脚本:

查看普通用户的ARP表项

二、进行数据包抓取

使用scapy抓包代码如下:

成功进行了ARP欺骗,访问外网,能正常访问


在攻击者PC上抓取的数据包,并用wireshark打开如下:

三、图片浏览

当被攻击用户同浏览器访问图片文件时,可搭配driftnet进行图片

driftnet -i wlan0

抓取图片如下:


参考文章:《Black Hat Python》

代码托管:https://github.com/fishyyh/arppoison.git

文章出处:安全客

文章出处:https://www.anquanke.com/post/id/151337

推荐文章++++

*使用scapy进行ARP攻击

*Arp欺骗攻击的另类应用之屌丝泡妞记


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650460477&idx=3&sn=886098ff9bbe71d4533464628ad926d1&chksm=83bbb4d9b4cc3dcf6e17009d408b391948efa307e78d746e92b100bbbe256ddeeaa20df18c07#rd
如有侵权请联系:admin#unsafe.sh