【发布时间】:2018-08-29 17:59:01
【问题描述】:
我想嗅探 IP 数据包,然后将 ToS 字段更改为 1 并向 IP 标头添加选项,然后发送修改后的数据包而不是原始数据包。
我发现可以用 scapy 做到这一点,但它似乎不起作用。
谁能帮我解决这个问题?
from scapy.all import *
from scapy.layers.inet import IP
def chgSend(x):
x[IP].tos = 1
send(x)
while 1:
sniff(filter="ip src host 10.0.0.2", prn=chgSend)
【问题讨论】:
-
有什么建议吗?
-
将
send(x)更改为sendp(x)有帮助吗? -
@BrianBienvenu 我使用了
sendp(x),然后它在捕获第一个数据包后开始发送大量数据包! -
听起来更好。你有一个
while 1:,所以它会不断地捕获数据包然后重新发送它们。我认为您的嗅探很可能是看到 Scapy 的sendp()生成的数据包 - 它实际上是在喂食自己。您需要在代码中添加一些额外的逻辑来阻止它。