2013-11-14 3 views
2

У меня вопрос о Scapy в порядке с dhcp. Там нет никаких проблем с отправкой сообщения DHCP испрашивать и получил ответ, но то, что я на самом деле нужно, чтобы программа:Проверка безопасности Scapy и 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. В пакете рекламы у вас есть инициалы привязки, идентификатор сервера и еще несколько.

(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 !!! Как можно использовать механизм ответа для каждого пакета при наличии всех пакетов в массиве?

+1

Пожалуйста, покажите нам, что вы сделали до сих пор, отредактировав свой вопрос, чтобы включить свой код до этого момента! – VooDooNOFX

+0

У вас есть идея сейчас :) –

ответ

1

Задача (1) была решена :)

Я просто написал еще один сценарий, который бы нюхать и зачитывает пакеты :) другой способ сделать это.

Задача (2)

После нескольких часов тестирования, я пришел с выводом о том, что DHCP Option 0 будет там в Wireshark, потому что:

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, я думаю. После всего, что я пытаюсь, он не работает.

Смежные вопросы