Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- """
- Author: phillips321 contact at phillips321.co.uk
- License: CC BY-SA 3.0
- Use: Simple scapy arpscanner
- Released: www.phillips321.co.uk
- Dependencies:
- scapy
- ChangeLog:
- v0.1 - first release
- """
- version = "0.1"
- import sys, netifaces, thread
- from scapy.all import *
- if len(sys.argv) == 2 :
- interface = sys.argv[1]
- else: #no values defined print help
- print "Usage: %s [interface] \n eg: %s eth0" % (sys.argv[0],sys.argv[0])
- exit(1)
- sourceipaddress = netifaces.ifaddresses(interface)[2][0]['addr']
- parts = sourceipaddress.split(".")
- lefthandside = parts[0] + "." + parts[1] + "." + parts[2] + "."
- global pkts
- def sniffer_thread(interface):
- global pkts
- pkts = sniff(iface=interface, filter="arp", timeout=15)
- def arpscan_thread(target, interface, right):
- arpRequest = Ether(dst="ff:ff:ff:ff:ff:ff:ff")/ARP(pdst=target, hwdst="ff:ff:ff:ff:ff:ff")
- sendp(arpRequest, iface=interface, verbose=0)
- if right == 255:
- global endtime
- endtime = time.time()
- thread.start_new_thread(sniffer_thread, (interface,))
- time.sleep(1)
- starttime = time.time()
- for right in range(1,256):
- target = lefthandside + str(right)
- thread.start_new_thread(arpscan_thread, (target, interface, right))
- endtime = 0.0
- while endtime == 0.0:
- pass
- totaltime = endtime - starttime
- sleeptime = 15 - totaltime
- print "Sent ARP requests in %f seconds, waiting %f more seconds for responses..." % (totaltime, sleeptime)
- time.sleep(sleeptime)
- for i in range(0,len(pkts)):
- if pkts[i].type == 2054:
- if pkts[i].op == 2:
- print "Response from " + pkts[i].psrc + " using " + pkts[i].hwsrc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement