Python 2.7 Scapy和DHCP安全测试

Python 2.7 Scapy和DHCP安全测试,python-2.7,dhcp,scapy,Python 2.7,Dhcp,Scapy,我问了一个关于Scapy的问题。 发送dhcp请求消息并得到答复没有问题,但我真正需要的是编程: Scapy发送一个DHCP请求数据包 它收到一个广告包,到目前为止还可以 我需要发送一个带有我从广告包中得到的一些信息的请求 这是代码的一部分,我希望你能理解我想要实现的目标。(最不相关,此处未写入值) 当我发送这个请求包时,我得到了dhcpv6服务器的一个很好的答复。在广告包中,有绑定首字母、服务器ID等 (1) 我想要的是,使用广告包中的信息,并将其放入请求包中。但这一切,在某种程度上是一个循环

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

  • Scapy发送一个DHCP请求数据包
  • 它收到一个广告包,到目前为止还可以
  • 我需要发送一个带有我从广告包中得到的一些信息的请求
  • 这是代码的一部分,我希望你能理解我想要实现的目标。(最不相关,此处未写入值)

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

    (1) 我想要的是,使用广告包中的信息,并将其放入请求包中。但这一切,在某种程度上是一个循环,这样就有可能绑定我能发送的所有广告(比如数千条)。 这也意味着要进行
    预删除
    。因此,出于安全原因,我可以测试dhcp服务器

    (2) 当我将地址添加到IA_NA时,我在数据包中的IA_地址后得到了一个
    DHCP选项0

    我能做些什么?因为在有效的请求消息中,我们可以看到IA地址位于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
    
    但是数据包中出现了一些东西,它加了一句,最后是零。

    我们可以在这里看到scapy发送数据包,因为它需要发送,对吗?

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

    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(应答机)!!! 当所有数据包都在一个数组中时,如何可能对每个数据包使用应答机制

    问题(1)已解决:)

    我只是写了另一个脚本,可以嗅探并读取数据包:)另一种方法

    问题(2)

    经过数小时的测试,我得出结论,
    DHCP选项0
    将出现在Wireshark中,因为:

    DHCP6 IA地址选项
    ,有一个子值
    IA-ID
    。 当我填写此项时,我可以看到它是
    DHCP选项0
    中的值的来源

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

    查看后,
    rfc3315dhcp for IPv6
    子选项22.6 没有为
    DHCP6 IA地址选项分配IAID

    所以,我所做的只是调整和搜索该行并对其进行注释

    问题(3)


    我想斯帕皮还没准备好接受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')