3

我有一个关于 Scapy 的问题,需要使用 dhcp。发送 dhcp 请求消息并得到答案没有问题,但我真正需要的是编程:

  1. Scapy 发送 DHCP 请求数据包
  2. 它收到一个广告数据包,到目前为止还可以。
  3. 我需要发送一个请求,其中包含我从广告数据包中获得的一些信息。

这是代码的一部分,我希望你能理解我想要实现的目标。(最不相关的,这里没有写值)

sol = DHCP6_Solicit()
opreq = DHCP6OptOptReq()
et= DHCP6OptElapsedTime()
cid = DHCP6OptClientId()
iana = DHCP6OptIA_NA()
optiana = DHCP6OptIAAddress()

l2 = Ether (src = RandMAC())
l3 = IPv6(dst= dstt, src=srcc)
addr = raw_input("Give Option Address: ")
optiana.addr = str(RandIP6(addr))
pkt = l2/l3/l4/sol/cid/opreq/et/iana/optiana
sendp(pkt, iface='eth0')

当我发送这个请求数据包时,我得到了 dhcpv6 服务器的一个很好的答案广告。在您拥有的广告包中,绑定首字母、服务器 ID 等等。

(1) 我想要的是,从广告包中使用该信息,并将其放入请求包中。但这一切,有点像一个循环,这样就可以绑定我可以发送的所有广告(比如数千个)。这也意味着对PrefixDelegation. 因此,出于安全原因,我可以测试 dhcp 服务器。

(2) 当我将地址添加到 IA_NA 时,我DHCP OPTION 0在 Packet 中的 IA_address 之后得到了一个

http://i41.tinypic.com/154ulmp.png

我能做些什么呢?因为在有效的请求消息中,我们可以看到 IA-address 在 IA_NA 内。

我也试过这个:

addr = raw_input("Give Option Address: ")
optiana.addr = str(RandIP6(addr))
optiana.preflft = 7200
optiana.validlft = 9200
iana.ianaopts = optiana 
pkt = l2/l3/l4/sol/cid/opreq/et/iana

但是随后数据包发生了一些事情,它在末尾添加了零。 http://i44.tinypic.com/2ih09k3.png

我们可以在这里看到 scapy 发送数据包,因为它需要发送,对吗? http://i44.tinypic.com/309pohj.png

(3)还有一件事:我认为 PD 有问题,因为当我为 PD 提供选项时,比如地址,当我添加其他 PD 时,包会停在那里(参见wireshark)。但是如果我只添加没有选项的 PD,它就可以工作。

http://i41.tinypic.com/24zg390.png

PD代码

optiapd = DHCP6OptIA_PD()
iapd = DHCP6OptIAPrefix()
opreq = DHCP6OptOptReq()
et= DHCP6OptElapsedTime()
cid = DHCP6OptClientId()

l2 = Ether (src = RandMAC())
l3 = IPv6(dst= dstt, src=srcc)
addr = raw_input("Give Option Address: ")
iapd.prefix = str(RandIP6(addr))
pkt = l2/l3/l4/sol/cid/opreq/et/optiapd/iapd       # (adding more...../optiapd/iapd....wont work)
sendp(pkt, iface='eth0')

我还在 /scapy/layers/dhcp6.py 中遇到了 DHCPv6_am(AnsweringMachine) !!!当所有数据包都在一个数组中时,如何对每个数据包使用回复机制?

4

1 回答 1

1

问题(1)已解决:)

我刚刚写了另一个脚本,它会嗅探并读出数据包:) 另一种方法。

问题(2)

经过数小时的测试,我得出的结论是DHCP Option 0Wireshark 中会存在,因为:

DHCP6 IA Address Option, 有一个子值IA-ID。当我填写这个时,我可以看到它是来自DHCP option 0.

我认为这是 Scapy 中的一些编程错误。

在查看后,RFC 3315 DHCP for IPv6子选项 22.6 没有分配给 IAID DHCP6 IA Address Option

所以我所做的只是调整并搜索该行并将其注释掉。

问题(3)

我认为 Scapy 还没有为 PD 做好准备。在我尝试了一切之后,它不起作用。

于 2013-11-21T09:03:22.510 回答