| 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. | #!/usr/bin/python #Prints webservers running in an iprange. #http://darkcode.ath.cx #d3hydr8[at]gmail[dot]com import socket, httplib, threading, time, sys def scan(ip, msg): ports = [80,8000,8080] for port in ports: try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip, port)) s.close() print "[+] Open:",ip+":"+str(port) servtest(ip, port) except: pass def getips(ip_range): lst = [] iplist = [] ip_range = ip_range.rsplit(".",2) if len(ip_range[1].split("-",1)) ==2: for i in range(int(ip_range[1].split("-",1)[0]),int(ip_range[1].split("-",1)[1])+1,1): lst.append(ip_range[0]+"."+str(i)+".") for ip in lst: for i in range(int(ip_range[2].split("-",1)[0]),int(ip_range[2].split("-",1)[1])+1,1): iplist.append(ip+str(i)) return iplist if len(ip_range[1].split("-",1)) ==1: for i in range(int(ip_range[2].split("-",1)[0]),int(ip_range[2].split("-",1)[1])+1,1): iplist.append(ip_range[0]+"."+str(ip_range[1].split("-",1)[0])+"."+str(i)) return iplist def servtest(ip, port): try: h = httplib.HTTP(ip+":"+str(port)) h.putrequest("HEAD", "/") h.putheader("Host", ip) h.endheaders() status, reason, headers = h.getreply() server = headers.get("Server") if server: print "[+] Running:",server,"\n" except: pass print "\n\t d3hydr8[at]gmail[dot]com WebServScan v1.1" print "\t----------------------------------------------\n" if len(sys.argv) < 2: print "Usage: ./webscan.py <ip_range>\n" sys.exit(1) try: iplist = getips(sys.argv[1]) except(ValueError): print "[-] Incorrect IP-Range\n" sys.exit(1) print "\n[+] Scanning:",len(iplist),"ips\n" socket.setdefaulttimeout(3) for ip in iplist: time.sleep(1) threading.Thread( target=scan, args=(ip, 0) ).start() print "\n[-] Done\n" |