Scapy - пакеты не отправляются - PullRequest
1 голос
/ 18 марта 2020

(dst = пункт назначения, sr c = источник) Я выполняю атаку MITM без переадресации портов, что означает, что мне нужно отправлять пакеты самостоятельно, и я пытаюсь сделать так, чтобы мой адрес ma c был sr c и des будут сайтом (например, в HTTP get), но по какой-то причине, когда я вижу пакеты в Wireshark, он остается таким же, как если бы я никогда не трогал пакет, дес был моим адресом ma c и источник - жертва, я не уверен, что я делаю что-то не так, может быть, потому что я меняю DST пакета в фильтре приема пакетов? может быть, потому что я не делаю копию пакета? Точно сказать не могу. Вот фильтр и как я изменяю dest пакета (забавно c name - filter_victim)

for i in my_packet[Ether]:
    print (i.show())
print('victim!')
if Ether in my_packet and IP in my_packet:
    if my_packet[IP].dst == targetip and my_packet[Ether].dst == MY_MAC:
        print('ds: ' + my_packet[IP].dst)
        macdst = get_mac_address(ip=my_packet[IP].src)
        print('mac des:  ' + macdst)
        if macdst != "":
            print("great!")
            my_packet[Ether].dst = macdst
        else:
            print("Shit!")
        return True
    elif my_packet[IP].src == targetip and my_packet[Ether].dst == MY_MAC:
        print('ds: ' + my_packet[IP].src)
        macdst = get_mac_address(ip=my_packet[IP].dst)
        print('mac des:  ' + macdst)
        if macdst != "":
            print("great!")
            my_packet[Ether].dst = macdst
            print(my_packet[Ether].dst)
        return True

Вот как я отправляю пакет и меняю sr c для моей собственной ма c адрес

recv_packet = sniff(count=1, lfilter=filter_victim)
    for i in recv_packet:
        i.src = MY_MAC
        print("After filter: " + i.dst + " " + i.src)
    send(recv_packet)

Примечание - когда я печатаю sr c и dst, он печатает правильную вещь (то, что я на самом деле хочу), а не то, что появляется в Wireshark

...