PlanetLab上的Scapy

Ric*_*son 14 python sockets fedora raw-sockets scapy

有没有人成功在PlanetLab节点上使用Scapy(运行Fedora 12)?

我知道安全的原始套接字限制,但似乎我可以通过设置发送数据包通过Scapy conf.L3socket=L3RawSocket.至于数据包的接收,我无法让Scapy工作,所以我只使用tcpdump.

TCPICMP似乎有效:

  • ICMP echo-r​​equests获得echo-r​​eply回复
  • 具有低TTL的ICMP回应请求获得超时消息
  • TCP SYN数据包返回TCP RST数据包
  • 具有低TTL的TCP数据包获得超时消息

UDP没有:

  • 到封闭端口的UDP数据包会触发ICMP端口不可达消息,但此消息不会使其返回到我的条子.Tcpdump只能看到UDP数据包.
  • UDP数据包沿路径到期的情况也是如此.

是否需要设置任何其他参数才能接收这些ICMP数据包?

Pet*_*Bus 1

不确定这是否有帮助,但根据我的经验,为了在 scapy 中接收数据包,您必须使用 sr 或 sr1 方法:

sr1(IP(dst="192.168.1.8")/UDP(dport=60112))

开始发射: ...已完成发送 1 个数据包。收到 4 个数据包,得到 1 个答复,剩余 0 个数据包

<IP  version=4L ihl=5L tos=0xc0 len=56 id=47804 flags= frag=0L ttl=64 proto=icmp chksum=0x6274 src=192.168.1.8 dst=192.168.1.2 options='' |<ICMP  type=dest-unreach code=3 chksum=0x59eb unused=0 |<IPerror  version=4L ihl=5L tos=0x0 len=28 id=1 flags= frag=0L ttl=64 proto=udp chksum=0x1dfc src=192.168.1.2 dst=192.168.1.8 options='' |<UDPerror  sport=domain dport=60112 len=8 chksum=0xb803 |>>>>
Run Code Online (Sandbox Code Playgroud)

sr() 函数用于发送数据包和接收应答。该函数返回几个数据包和答案,以及未应答的数据包。函数 sr1() 是一种变体,它仅返回一个响应所发送的数据包(或数据包集)的数据包。-来源