示例#1
0
    def __build_node_information_message(class_object, type, code, payload = None):
        #Build ICMP6 header
        icmp_packet = ICMP6()
        icmp_packet.set_type(type)
        icmp_packet.set_code(code)
        
        #Pack ICMP payload
        qtype = 0
        flags = 0
        nonce = [0x00] * 8
        
        icmp_bytes = struct.pack('>H', qtype)
        icmp_bytes += struct.pack('>H', flags)
        icmp_bytes += array.array('B', nonce).tostring()
        
        if payload is not None:
            icmp_bytes += array.array('B', payload).tostring()
        
        icmp_payload = Data()
        icmp_payload.set_data(icmp_bytes)
        
        #Link payload to header
        icmp_packet.contains(icmp_payload)

        return icmp_packet
示例#2
0
文件: ICMP6.py 项目: Liljhon241/MITMf
    def __build_node_information_message(class_object,
                                         type,
                                         code,
                                         payload=None):
        #Build ICMP6 header
        icmp_packet = ICMP6()
        icmp_packet.set_type(type)
        icmp_packet.set_code(code)

        #Pack ICMP payload
        qtype = 0
        flags = 0
        nonce = [0x00] * 8

        icmp_bytes = struct.pack('>H', qtype)
        icmp_bytes += struct.pack('>H', flags)
        icmp_bytes += array.array('B', nonce).tostring()

        if payload is not None:
            icmp_bytes += array.array('B', payload).tostring()

        icmp_payload = Data()
        icmp_payload.set_data(icmp_bytes)

        #Link payload to header
        icmp_packet.contains(icmp_payload)

        return icmp_packet
示例#3
0
 def __build_error_message(class_object, type, code, data, originating_packet_data):
     #Build ICMP6 header
     icmp_packet = ICMP6()
     icmp_packet.set_type(type)
     icmp_packet.set_code(code)
     
     #Pack ICMP payload
     icmp_bytes = array.array('B', data).tostring()
     if (originating_packet_data is not None):
         icmp_bytes += array.array('B', originating_packet_data).tostring()
     icmp_payload = Data()
     icmp_payload.set_data(icmp_bytes)
     
     #Link payload to header
     icmp_packet.contains(icmp_payload)
     
     return icmp_packet
 def __build_error_message(class_object, type, code, data, originating_packet_data):
     #Build ICMP6 header
     icmp_packet = ICMP6()
     icmp_packet.set_type(type)
     icmp_packet.set_code(code)
     
     #Pack ICMP payload
     icmp_bytes = array.array('B', data).tostring()
     if (originating_packet_data is not None):
         icmp_bytes += array.array('B', originating_packet_data).tostring()
     icmp_payload = Data()
     icmp_payload.set_data(icmp_bytes)
     
     #Link payload to header
     icmp_packet.contains(icmp_payload)
     
     return icmp_packet
示例#5
0
 def __build_echo_message(class_object, type, id, sequence_number, arbitrary_data):
     #Build ICMP6 header
     icmp_packet = ICMP6()
     icmp_packet.set_type(type)
     icmp_packet.set_code(0)
     
     #Pack ICMP payload
     icmp_bytes = struct.pack('>H', id)
     icmp_bytes += struct.pack('>H', sequence_number)
     if (arbitrary_data is not None):
         icmp_bytes += array.array('B', arbitrary_data).tostring()
     icmp_payload = Data()
     icmp_payload.set_data(icmp_bytes)
     
     #Link payload to header
     icmp_packet.contains(icmp_payload)
     
     return icmp_packet
 def __build_echo_message(class_object, type, id, sequence_number, arbitrary_data):
     #Build ICMP6 header
     icmp_packet = ICMP6()
     icmp_packet.set_type(type)
     icmp_packet.set_code(0)
     
     #Pack ICMP payload
     icmp_bytes = struct.pack('>H', id)
     icmp_bytes += struct.pack('>H', sequence_number)
     if (arbitrary_data is not None):
         icmp_bytes += array.array('B', arbitrary_data).tostring()
     icmp_payload = Data()
     icmp_payload.set_data(icmp_bytes)
     
     #Link payload to header
     icmp_packet.contains(icmp_payload)
     
     return icmp_packet
 def test_30_radiotap_length_filed_with_payload(self):
     """Test RadioTap header length field with payload"""
     # RadioTap from scratch calling get_length() and then get_packet()
     rt = RadioTap()
     self.assertEqual(rt.get_header_length(), 0x08)
     data = Data("aa")
     rt.contains(data)
     self.assertEqual(rt.get_header_length(),
                      0x08)  # The header length is the same
     raw_packet = rt.get_packet()
     self.assertEqual(raw_packet, "\x00\x00\x08\x00\x00\x00\x00\x00aa")
示例#8
0
 def __build_neighbor_message(class_object, msg_type, target_address):
     #Build ICMP6 header
     icmp_packet = ICMP6()
     icmp_packet.set_type(msg_type)
     icmp_packet.set_code(0)
     
     # Flags + Reserved
     icmp_bytes = array.array('B', [0x00] * 4).tostring()       
     
     # Target Address: The IP address of the target of the solicitation.
     # It MUST NOT be a multicast address.
     icmp_bytes += array.array('B', IP6_Address(target_address).as_bytes()).tostring()
     
     icmp_payload = Data()
     icmp_payload.set_data(icmp_bytes)
     
     #Link payload to header
     icmp_packet.contains(icmp_payload)
     
     return icmp_packet
 def __build_neighbor_message(class_object, msg_type, target_address):
     #Build ICMP6 header
     icmp_packet = ICMP6()
     icmp_packet.set_type(msg_type)
     icmp_packet.set_code(0)
     
     # Flags + Reserved
     icmp_bytes = array.array('B', [0x00] * 4).tostring()       
     
     # Target Address: The IP address of the target of the solicitation.
     # It MUST NOT be a multicast address.
     icmp_bytes += array.array('B', IP6_Address(target_address).as_bytes()).tostring()
     
     icmp_payload = Data()
     icmp_payload.set_data(icmp_bytes)
     
     #Link payload to header
     icmp_packet.contains(icmp_payload)
     
     return icmp_packet