Advertisement
phillips321

Untitled

Jul 26th, 2012
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. #!/usr/bin/env python
  2. """
  3. Author:     phillips321 contact at phillips321.co.uk
  4. License:    CC BY-SA 3.0
  5. Use:        Simple scapy arpscanner
  6. Released:   www.phillips321.co.uk
  7. Dependencies:
  8.     scapy
  9. ChangeLog:
  10.     v0.1 - first release
  11. """
  12. version = "0.1"
  13. import sys, netifaces, thread
  14. from scapy.all import *
  15. if len(sys.argv) == 2 :
  16.     interface = sys.argv[1]
  17. else: #no values defined print help
  18.     print "Usage: %s [interface] \n   eg: %s eth0" % (sys.argv[0],sys.argv[0])
  19.     exit(1)
  20.  
  21. sourceipaddress = netifaces.ifaddresses(interface)[2][0]['addr']
  22. parts = sourceipaddress.split(".")
  23. lefthandside = parts[0] + "." + parts[1] + "." + parts[2] + "."
  24. global pkts
  25.  
  26. def sniffer_thread(interface):
  27.     global pkts
  28.     pkts = sniff(iface=interface, filter="arp", timeout=15)
  29.    
  30. def arpscan_thread(target, interface, right):
  31.     arpRequest = Ether(dst="ff:ff:ff:ff:ff:ff:ff")/ARP(pdst=target, hwdst="ff:ff:ff:ff:ff:ff")
  32.     sendp(arpRequest, iface=interface, verbose=0)
  33.     if right == 255:
  34.         global endtime
  35.         endtime = time.time()
  36.  
  37. thread.start_new_thread(sniffer_thread, (interface,))
  38.  
  39. time.sleep(1)
  40.  
  41. starttime = time.time()
  42.  
  43. for right in range(1,256):
  44.     target = lefthandside + str(right)
  45.     thread.start_new_thread(arpscan_thread, (target, interface, right))
  46. endtime = 0.0
  47. while endtime == 0.0:
  48.     pass
  49.  
  50. totaltime = endtime - starttime
  51. sleeptime = 15 - totaltime
  52. print "Sent ARP requests in %f seconds, waiting %f more seconds for responses..." % (totaltime, sleeptime)
  53. time.sleep(sleeptime)
  54.  
  55. for i in range(0,len(pkts)):
  56.         if pkts[i].type == 2054:
  57.             if pkts[i].op == 2:
  58.                 print "Response from " + pkts[i].psrc + " using " + pkts[i].hwsrc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement