У меня вопрос о Scapy в порядке с dhcp. Там нет никаких проблем с отправкой сообщения DHCP испрашивать и получил ответ, но то, что я на самом деле нужно, чтобы программа:Проверка безопасности Scapy и DHCP
- Scapy отправляет DHCP солиситный пакет
- Он получает пакет рекламируют, до сих пор нормально.
- мне нужно отправить запрос с некоторой информацией, которую я получил из пакета рекламируют ..
здесь является частью кода, я надеюсь, вы поймете, что им пытаются достичь. (Большинство не имеет значения и значения не написано здесь)
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. В пакете рекламы у вас есть инициалы привязки, идентификатор сервера и еще несколько.
(1) Я хочу, чтобы использовать эту информацию из рекламного пакета и поместить ее в пакет запроса. Но это все, в виде цикла, чтобы можно было ОБНАРУТЬ все рекламные объявления, которые я могу отправить (например, тысячи). Это также подразумевает PrefixDelegation
. Поэтому я могу проверить сервер dhcp по соображениям безопасности.
(2) при добавлении адреса в IA_NA, я получил DHCP OPTION 0
после IA_address в пакете
http://i41.tinypic.com/154ulmp.png
Что я могу сделать по этому поводу? Поскольку в действительном запрошенном сообщении мы видим, что 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
Но потом happends что-то с этим пакетом, он добавляет, нули в конце. http://i44.tinypic.com/2ih09k3.png
мы можем видеть здесь, что scapy отправляет пакет, как его необходимо отправить, правильно? http://i44.tinypic.com/309pohj.png
(3) И еще одно: я думаю, есть что-то не так с БП, потому что, когда я даю варианты к ПД, как адрес, пакет останавливается там (видим, что в Wireshark), когда я добавляю другие PD , Но если я добавляю только 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')
Кроме того, я наткнулся на DHCPv6_am (AnsweringMachine) в /scapy/layers/dhcp6.py !!! Как можно использовать механизм ответа для каждого пакета при наличии всех пакетов в массиве?
Пожалуйста, покажите нам, что вы сделали до сих пор, отредактировав свой вопрос, чтобы включить свой код до этого момента! – VooDooNOFX
У вас есть идея сейчас :) –