49

使用scapy进行ARP攻击

 5 years ago
source link: http://www.10tiao.com/html/665/201807/2650448158/3.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.


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

你可能喜欢

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

ARP攻击的分析及解决方案

如何避免无线路由器遭受ARP攻击故障


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK