(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