Внедрение пакета ARP не видно в tcpdump - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь создать скрипт инъекции пакетов в python, но пакеты с такой инъекцией не отображаются в tcpdump. Я использовал эту команду: tcpdump -i eth0 -vv, и не было пакета ARP, который я пытался внедрить.

Я даже пытался увидеть пакет в wireshark, но та же проблема! Не виден пакет

def packetInjector(message,protocol,interface):
    if protocol == 1:
        print "Protocol Selected: ARP"
        rawSocket = socket.socket(socket.PF_PACKET,socket.SOCK_RAW,socket.htons(0x800))
        rawSocket.bind((interface,socket.htons(0x800)))
        eth_packet = struct.pack("!6s6s2s","\xaa\xaa\xaa\xaa\xaa\xaa","\xbb\xbb\xbb\xbb\xbb\xbb","\x08\x00")+message
        arp_hardwareType = "\x00\x01"
        arp_protocolType = "\x08\x00"
        arp_hlen = "\x06"
        arp_plen = "\x04"
        arp_op = "\x00\x01"         #   1 for request and 2 for ARP reply
        arp_src_mac = "\xaa\xaa\xaa\xaa\xaa\xaa"
        arp_dst_mac = "\xbb\xbb\xbb\xbb\xbb\xbb"
        srcIp = raw_input("Enter the source IP: ")
        arp_src_ip = formatIP(srcIp)
        dstIp = raw_input("Enter the destination IP: ")
        arp_dst_ip = formatIP(dstIp)
        arp = struct.pack("!2s2s1s1s2s6s4s6s4s",arp_hardwareType,arp_protocolType,arp_hlen,arp_plen,arp_op,arp_src_mac,arp_src_ip,arp_dst_mac,arp_dst_ip)
        while len(arp)<46:
            arp=arp+struct.pack("B",0x00)
        packet = eth_packet+arp
        rawSocket.send(packet)
        print "Packet Sent!"
    elif protocol == 2 :
        print "Protocol Selected:ETH"
        rawSocket = socket.socket(socket.PF_PACKET,socket.SOCK_RAW,socket.htons(0x800))
        rawSocket.bind((interface,socket.htons(0x800)))
        eth_packet = struct.pack("!6s6s2s","\xaa\xaa\xaa\xaa\xaa\xaa","\xbb\xbb\xbb\xbb\xbb\xbb","\x08\x00")+message
        rawSocket.send(eth_packet)
        print "Ethernet packet send!"
    else:
        print "Enter valid number!"

Я ожидаю вывода как обнаружение пакета ARP в tcpdump.

Вот кое-что, что может быть связано. Я выполнил эту команду в scappy как pkt = sniff(iface="eth0",filter="icmp",count=2) и выполнение ping -I wlan0 google.com не записывается в pkt. Это главная проблема, которая, как мне кажется, не позволяет мне видеть пакеты ARP.

...