diff --git a/scripts/ipv6-node-info.nse b/scripts/ipv6-node-info.nse index 2104a509d..56f280aa0 100644 --- a/scripts/ipv6-node-info.nse +++ b/scripts/ipv6-node-info.nse @@ -244,16 +244,14 @@ local STRINGIFY = { } local function handle_received_packet(buf) - local p, qtype, flags, data local text - p = packet.Packet:new(buf) + local p = packet.Packet:new(buf) if p.icmpv6_type ~= ICMPv6_NODEINFORESP then return end - qtype = packet.u16(p.buf, p.icmpv6_offset + 4) - flags = packet.u16(p.buf, p.icmpv6_offset + 6) - data = string.sub(p.buf, p.icmpv6_offset + 16 + 1) + local qtype, flags, pos = string.unpack(">I2I2", p.buf, p.icmpv6_offset + 4) + local data = string.sub(p.buf, pos + 8) if not STRINGIFY[qtype] then -- This is a not a qtype we sent or know about. diff --git a/scripts/ipv6-ra-flood.nse b/scripts/ipv6-ra-flood.nse index 9737b46ac..0ecc4e027 100644 --- a/scripts/ipv6-ra-flood.nse +++ b/scripts/ipv6-ra-flood.nse @@ -106,14 +106,18 @@ local function build_router_advert(mac_src,prefix,prefix_len,valid_time,preferre 0x00,0x00,0x00,0x00, --reachable time 0x00,0x00,0x00,0x00) --retrans timer - local mtu_option_msg = "\0\0" .. -- reserved - packet.numtostr32(mtu) -- MTU + local mtu_option_msg = string.pack(">I2 I4", + 0, -- reserved + mtu -- MTU + ) - local prefix_option_msg = string.char(prefix_len, 0xc0) .. --flags: Onlink, Auto - packet.set_u32("....", 0, valid_time) .. -- valid lifetime - packet.set_u32("....", 0, preferred_time) .. -- preferred lifetime - "\0\0\0\0" .. --unknown - prefix + local prefix_option_msg = string.pack(">BB I4 I4 I4", + prefix_len, + 0xc0, --flags: Onlink, Auto + valid_time, -- valid lifetime + preferred_time, -- preferred lifetime + 0 -- unknown + ) .. prefix local icmpv6_mtu_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_MTU, mtu_option_msg) local icmpv6_prefix_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_PREFIX_INFORMATION, prefix_option_msg) diff --git a/scripts/targets-ipv6-multicast-slaac.nse b/scripts/targets-ipv6-multicast-slaac.nse index 09457623c..d924e6ced 100644 --- a/scripts/targets-ipv6-multicast-slaac.nse +++ b/scripts/targets-ipv6-multicast-slaac.nse @@ -82,11 +82,13 @@ local function build_router_advert(mac_src,prefix,prefix_len,valid_time,preferre 0x00,0x00, --router lifetime 0x00,0x00,0x00,0x00, --reachable time 0x00,0x00,0x00,0x00) --retrans timer - local prefix_option_msg = string.char(prefix_len, 0xc0) .. --flags: Onlink, Auto - packet.set_u32("....",0,valid_time) .. - packet.set_u32("....",0,preferred_time) .. - "\0\0\0\0" .. --unknown - prefix + local prefix_option_msg = string.pack(">BB I4 I4 I4", + prefix_len, + 0xc0, --flags: Onlink, Auto + valid_time, -- valid lifetime + preferred_time, -- preferred lifetime + 0 -- unknown + ) .. prefix local icmpv6_prefix_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_PREFIX_INFORMATION,prefix_option_msg) local icmpv6_src_link_option = packet.Packet:set_icmpv6_option(packet.ND_OPT_SOURCE_LINKADDR,mac_src) local icmpv6_payload = ra_msg .. icmpv6_prefix_option .. icmpv6_src_link_option