Python 虚假DNS响应
我想用scapy创建一个假的dns响应,但它不起作用。。。当我嗅探Wireshark中的数据包时,它显示数据包是正确的,但Windows只接受真实的响应数据包,尽管。。。 有人能告诉我怎么修吗? 谢谢Python 虚假DNS响应,python,sockets,dns,response,scapy,Python,Sockets,Dns,Response,Scapy,我想用scapy创建一个假的dns响应,但它不起作用。。。当我嗅探Wireshark中的数据包时,它显示数据包是正确的,但Windows只接受真实的响应数据包,尽管。。。 有人能告诉我怎么修吗? 谢谢 你只是嗅探数据包,如果你想操纵数据包,你应该把它们发送到一个函数,然后把它们转发到目的地。在嗅探中使用prn属性: packets = sniff(filter="port 53" , prn=func , count=1) def func(packet): if packet.has
你只是嗅探数据包,如果你想操纵数据包,你应该把它们发送到一个函数,然后把它们转发到目的地。在嗅探中使用prn属性:
packets = sniff(filter="port 53" , prn=func , count=1)
def func(packet):
if packet.haslayer(UDP) and packet.haslayer(DNS):
manipulate your DNS packet here then forward it
“在此处操作您的DNS数据包,然后转发它”正是代码在
中所做的,而True则是,sendp
正是发送数据包的函数……当您嗅探数据包并将其分配给变量时,这意味着您获取数据包的信息并将其发送到目的地,之后您将发送一个伪数据包,但使用prn并将数据包发送到一个函数—您获取原始数据并操纵原始数据。@AliKargar您最后的评论是错误的:情况非常相似,除了使用prn
使用相同的套接字实例,并且性能有所提高。也许真正的数据包比您的更快?您是否比较了这两个答复并发现了差异?
packets = sniff(filter="port 53" , prn=func , count=1)
def func(packet):
if packet.haslayer(UDP) and packet.haslayer(DNS):
manipulate your DNS packet here then forward it