2015-12-23 34 views
2

我知道这已被问过。然而,我不清楚如何构建命令以完成我的任务,并且以前的问题从未标记为回答。我需要使用scapy发送多个数据包,我的用例是使用UDP将DNS查询发送到远程服务器服务器。这是我需要使用命令:在第3层发送一个数据包,但是有更多的功能的定义来发送分组如何发送多个数据包在scapy

sr1(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com"))) 

在上面的例子SR1装置。请参阅Here.大括号之间的其余部分是如何为A记录组装带有scapy的DNS查询包。

但我想要做的是在一个命令中发送多个数据包。前面的问题了这一建议回答:

sendp(p, iface=eth0, inter=1 , count=x) 

其中P为您或多个分组和计数的列表是重复发送操作的次数。

这是我迷路的地方。如果这是正确的答案,我将如何将它融入我的命令,它会是什么样子?

在此先感谢!

+0

'sr1(.... qd = DNSQR(qname ...))''scrapy'代码?请提供更多细节。祝你好运。 – shellter

+0

它的数据包使用scapy。不知道这是否等同于代码。它确实看起来像我:)。任何人,我能够得到它的工作和tcpdump验证。我所需要做的就是用send发送sendp,并在最后两个右花括号之间放置“,count = 100”。像这样 - send(IP(dst =“192.168.155.128”)/ UDP()/ DNS(rd = 1,qd = DNSQR(qname =“www.oreilly.com”)),count = 100 – user53029

+0

发表一个答案并在等待48小时后接受它以获得宝贵的信誉积分。对于我们这些人来说,只有对scrapy(以及未来的读者)有一个熟悉的认识,你可能想要更新你的Q来包含你对sr1(.... qd = DNSQR(qname ...) ))'。祝你好运。 – shellter

回答

4

工作解决方案:在上面的例子中,您将需要使用不同的函数定义来发送数据包。

将sendp替换为send(sendp在layer2发送,使用第3层发送,sr1仅用于发送一个数据包),并在最后两个右花括号之间放置“,count = x”。其中x =您想要发送的数据包数量。从Scapy的运行提示命令和输出应该是这样的:

>>> send(IP(dst="192.168.155.128")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com")), count=100) 
....................................................................... ............................. 
Sent 100 packets. 
>>> 

一个简单的ICMP包也可以还可以构造发送。在这个例子中,我们发送了100个ICMP数据包。

>>> send(IP(dst="192.168.155.128")/ICMP()/"testICMPpacket", count=100) 
    ....................................................................... ............................. 
Sent 100 packets. 
>>> 
相关问题