【问题标题】:Sending traffic from multiple source IPs Scapy从多个源 IP 发送流量 Scapy
【发布时间】:2014-03-18 16:08:04
【问题描述】:

我正在尝试使用 scapy(在 Ubuntu 上)通过 python 发送一些流量。我正在使用一系列源 IP (10.0.0.32/29)。一切似乎都正常(至少我看到了wireshark中的流量并且它到达了我的防火墙)但是我在使用不是eth0适配器的主IP的IP地址完成TCP握手时遇到了问题。有谁知道这是否可行:

来源:

 from scapy.all import *
 import random


 sp=random.randint(1024,65535)
 ip=IP(src="10.0.0.234/29",dst="www.google.com")
 SYN=TCP(sport=sp, dport=80,flags="S",seq=10)
 SYNACK=sr1(ip/SYN)

 my_ack=SYNACK.seq+1
 ACK=TCP(sport=sp,dport=80,flags="A",seq=11,ack=my_ack)
 send(ip/ACK)
 payload="SEND TCP"

 PUSH=TCP(sport=sp,dport=80,flags="PA",seq=11,ack=my_ack)
 send(ip/PUSH/payload)

【问题讨论】:

    标签: python linux networking scapy


    【解决方案1】:

    因为您位于 NAT/路由器后面,所以您应该检查它是否允许您使用所有 IP。如果它正在运行 DHCP 协议,您的 eth0 通常会收到一个唯一的 IP 地址,该地址将是您专用网络中唯一路由的。

    此外,您必须确保您的内核知道分配给它的 IP,否则它将丢弃响应数据包。如果你想使用全范围的IP,你有两种选择:

    1. 使用虚拟 MAC 地址创建 virtual devices,每个地址都通过 DHCP 请求 IP。
    2. 配置您的路由器,使其将完整的 IP 表静态路由到您的主机和您打算使用的alias each IP

    一旦你这样做了,你就没有理由不能从你的多个源 IP 同步/确认。从远程服务器的角度来看,您尝试执行的操作与本地网络中的多台机器同时请求页面之间没有任何区别。

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      相关资源
      最近更新 更多