| 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. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. | #!/usr/bin/python #Searches msn with a user defined query then writes the results to a file. Also can add shell #location onto the end of the sites. This is alittle different than the goog2text scanner, it #finds the entire http address. #http://www.darkc0de.com #d3hydr8[at]gmail[dot]com import sys, re, string, urllib2, sets def StripTags(text): finished = 0 while not finished: finished = 1 start = text.find("<") if start >= 0: stop = text[start:].find(">") if stop >= 0: text = text[:start] + text[start+stop+1:] finished = 0 return text def getsites(): page_counter=0 try: #Change this 50 to search for more sites.(multiples of 10) while page_counter < int(sys.argv[2]): results_web = 'http://search.msn.com/results.aspx?q='+str(query)+'&first='+repr(page_counter) request_web = urllib2.Request(results_web) request_web.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)') opener_web = urllib2.build_opener() text = opener_web.open(request_web).read() names = re.findall(('\w+\.[\w\-]*\.[\w\.\-/\?\=]*'),StripTags(text)) for name in names: if name not in d: d.append(name) page_counter +=10 except IOError: print "[-] Can't connect to MSN Web!"+"" if len(sys.argv) != 4 and len(sys.argv) != 5: print "\n d3hydr8[at]gmail[dot]com MSN2Text v1.1" print "------------------------------------------------" print "\nUsage: ./msn2text.py <query> <how many> <file to save results> <rfi-path>" print "Ex: ./msn2text.py \"inurl:/etc/shadow\" 200 results.txt /contact.php?dir=shell\n" sys.exit(1) else: print "\n d3hydr8[at]gmail[dot]com msn2Text v1.1" print "------------------------------------------------" print "[+] Searching: search.msn.com" print "[+] Target:",sys.argv[1] print "[+] Total:",sys.argv[2] print "[+] File:",sys.argv[3] try: print "[+] Shell:",sys.argv[4] except(IndexError): print "None" pass if sys.argv[2].isdigit() == False: print "\n[-] Argument [",sys.argv[2],"] must be a number.\n" sys.exit(1) if int(sys.argv[2]) <= 10: print "\n[-] Argument [",sys.argv[2],"] must be greater than 10.\n" sys.exit(1) query = re.sub("\s","+",sys.argv[1]) if len(sys.argv) == 5: shell=sys.argv[4] if shell[0] != "/": shell = "/"+shell else: shell = "" d=[] getsites() d = list(sets.Set(d)) file = open(sys.argv[3], "a") print "\n[+] Found:",len(d) print "[+] Writing Data:",sys.argv[3] for sites in d: if sites.find('www') != -1: sites = sites[sites.find('www'):] if len(sites) > 12: file.writelines(sites+shell+"\n") file.close() print "[-] Done\n" |