Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Lucksi
GitHub Repository: Lucksi/Mr.Holmes
Path: blob/master/Core/Dork.py
1071 views
1
# ORIGINAL CREATOR: Luca Garofalo (Lucksi)
2
# AUTHOR: Luca Garofalo (Lucksi)
3
# Copyright (C) 2022-2023 Lucksi <[email protected]>
4
# License: GNU General Public License v3.0
5
6
import os
7
from Core.Support import Font
8
from Core.Support import Dorks
9
from Core.Support import FileTransfer
10
from Core.Support import Banner_Selector as banner
11
from Core.Support import Notification
12
from Core.Support import Language
13
from Core.Support import DateFormat
14
from Core.Support import Clear
15
from Core.Support import Creds
16
from datetime import datetime
17
18
filename = Language.Translation.Get_Language()
19
filename
20
21
22
class List:
23
24
@staticmethod
25
def entities(Lists,Mode,Start,Lists2,type1):
26
entity = int(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + "SELECT ENTITY:\n(1)PHONE NUMBER\n(2)WEBSITE\n(3)CUSTOM"+ Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
27
if entity == 1:
28
param = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Param", "None").format(str(Start)) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
29
while param == "":
30
param = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Param", "None").format(str(Start)) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
31
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Added", "None").format(Font.Color.GREEN + param + Font.Color.WHITE))
32
param = param + " OR +" + param
33
elif entity == 2:
34
if type1 != 3:
35
param = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Param", "None").format(str(Start)) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
36
while param == "":
37
param = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Param", "None").format(str(Start)) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
38
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Added", "None").format(Font.Color.GREEN + param + Font.Color.WHITE))
39
param = "site:" + param + " OR site:www." + param
40
else:
41
print(Font.Color.RED + "\n[!]" + Font.Color.WHITE + "YOU HAVE SELECTED A WEBSITE TYPE BEFORE, CANNOT ADD ANOTHER WEBSITE")
42
param = ""
43
elif entity == 3:
44
param = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Param", "None").format(str(Start)) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
45
while param == "":
46
param = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Param", "None").format(str(Start)) + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
47
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Added", "None").format(Font.Color.GREEN + param + Font.Color.WHITE))
48
if param != "":
49
if Mode == "Exclude":
50
if entity == 2:
51
Lists.append("+-"+ param)
52
pass
53
else:
54
Lists.append("+-"+'"'+ param + '"')
55
else:
56
if entity == 2:
57
Lists2.append("+"+ param)
58
else:
59
Lists.append(" "+'"'+ param)
60
else:
61
pass
62
63
@staticmethod
64
def Banner(Mode):
65
Clear.Screen.Clear()
66
Folder = "Banners/Dorks"
67
banner.Random.Get_Banner(Folder, Mode)
68
69
@staticmethod
70
def GoogleDorks(report,phrase,exclusion,data,DorksList,between,seconddata):
71
Type = "GOOGLE"
72
Dorks.Search.Generator(Type,DorksList,report,phrase,exclusion,data,between,seconddata)
73
74
75
@staticmethod
76
def YandexDorks(report,phrase,exclusion,data,DorksList,between,seconddata):
77
Type = "YANDEX"
78
phrase = phrase.replace("+","%2B")
79
Dorks.Search.Generator(Type,DorksList,report,phrase,exclusion,data,between,seconddata)
80
81
82
@staticmethod
83
def Main(username,Mode):
84
List.Banner(Mode)
85
print(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + "INFO:" + "[{}]".format(Font.Color.GREEN + Language.Translation.Translate_Language(filename,"Dorks","Explanation","None") + Font.Color.WHITE))
86
now = datetime.now()
87
dataformat = DateFormat.Get.Format()
88
dt_string = now.strftime(dataformat)
89
check = "False"
90
between = "False"
91
seconddata = "None"
92
Date = "Date: " + str(dt_string)
93
report = "GUI/Reports/Dorks/{}.txt".format(username)
94
if os.path.isfile(report):
95
os.remove(report)
96
print(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE +
97
Language.Translation.Translate_Language(filename, "Default", "Delete", "None").format(username))
98
type1 = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Choice2", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
99
if(type1 == 1 or type1 == 4):
100
DorksList = "Site_lists/Dorks/Usernames/Google_dorks.txt"
101
DorksList2 = "Site_lists/Dorks/Usernames/Yandex_dorks.txt"
102
elif(type1 == 2):
103
DorksList = "Site_lists/Dorks/Phone/Google_dorks.txt"
104
DorksList2 = "Site_lists/Dorks/Phone/Yandex_dorks.txt"
105
DorksList3 = "Site_lists/Dorks/Phone/Fingerprints.txt"
106
DorksList4 = "Site_lists/Dorks/Phone/Yandex_Fingerprints.txt"
107
elif(type1 == 3):
108
DorksList = "Site_lists/Dorks/Websites/Google_dorks.txt"
109
DorksList2 = "Site_lists/Dorks/Websites/Yandex_dorks.txt"
110
add = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Question", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
111
data = ""
112
while add == "" or add == 0:
113
number = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "ParamN", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
114
if add == 1:
115
Start = 1
116
Parameters = []
117
Parameters2 = []
118
number = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "ParamN", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
119
for i in range(number):
120
type = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Choice", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
121
if type == 1:
122
if check == "False":
123
data = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Date", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
124
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Added2", "None").format(Font.Color.GREEN + data + Font.Color.WHITE))
125
event = int(input(Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Event", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
126
if event == 1:
127
data = "+before:{}".format(data)
128
data2 = "BEFORE"
129
check = "True"
130
elif event == 2:
131
data = "+after:{}".format(data)
132
data2 = "AFTER"
133
check = "True"
134
else:
135
pass
136
else:
137
print(Font.Color.RED + "\n[!]" + Font.Color.WHITE + "DATE ALREADY SEATTED CANNOT USE THIS OPTION")
138
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Added3", "None").format(Font.Color.GREEN + data2 + Font.Color.WHITE))
139
elif type == 2 :
140
if check == "False":
141
after = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "After", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
142
print(Font.Color.GREEN + "\n[+]"+ Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Added2", "None").format(Font.Color.GREEN + after + Font.Color.WHITE))
143
begin = str(input(Font.Color.BLUE + "\n[I]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Dorks", "Before", "None") + Font.Color.GREEN + "\n\n[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
144
print(Font.Color.GREEN + "\n[+]" + Font.Color.WHITE+ Language.Translation.Translate_Language(filename, "Dorks", "Added2", "None").format(Font.Color.GREEN + begin + Font.Color.WHITE))
145
after = "+after:{}".format(after)
146
begin = "before:{}".format(begin)
147
data = after + "+" + begin
148
seconddata = after.replace(":","") +".."+begin.replace(":","")
149
between = "True"
150
check = "True"
151
else:
152
print(Font.Color.RED + "\n[!]" + Font.Color.WHITE + "DATE ALREADY SEATTED CANNOT USE THIS OPTION")
153
elif type == 3:
154
List.entities(Parameters2,"Exclude",Start,Parameters,type1)
155
else:
156
List.entities(Parameters,"Include",Start,Parameters2,type1)
157
Start = Start +1
158
if len(Parameters):
159
phrase = username + '"' + "".join(Parameters)
160
else:
161
phrase = username
162
else:
163
phrase = username
164
f = open(report, "a")
165
f.write(Language.Translation.Translate_Language(
166
filename, "Report", "Default", "Date").format(Date) + "\r\n")
167
f.close()
168
if type1 == 2:
169
if add == 1:
170
List.GoogleDorks(report,phrase,Parameters2,data,DorksList,between="None",seconddata="None")
171
List.GoogleDorks(report,phrase,Parameters2,data,DorksList3,between="None",seconddata="None")
172
List.YandexDorks(report,phrase,Parameters2,data,DorksList2,between,seconddata)
173
List.YandexDorks(report,phrase,Parameters2,data,DorksList4,between,seconddata)
174
else:
175
List.GoogleDorks(report,phrase,"None","None",DorksList,between="None",seconddata="None")
176
List.GoogleDorks(report,phrase,"None","None",DorksList3,between="None",seconddata="None")
177
List.YandexDorks(report,phrase,"None","None",DorksList2,between,seconddata)
178
List.YandexDorks(report,phrase,"None","None",DorksList4,between,seconddata)
179
else:
180
if add == 1:
181
List.GoogleDorks(report,phrase,Parameters2,data,DorksList,between="None",seconddata="None")
182
List.YandexDorks(report,phrase,Parameters2,data,DorksList2,between,seconddata)
183
else:
184
List.GoogleDorks(report,phrase,"None","None",DorksList,between="None",seconddata="None")
185
List.YandexDorks(report,phrase,"None","None",DorksList2,between,seconddata)
186
f = open(report, "a")
187
f.write(Language.Translation.Translate_Language(
188
filename, "Report", "Default", "By"))
189
f.close()
190
Notification.Notifier.Start(Mode)
191
Creds.Sender.mail(report, username)
192
choice = int(input(
193
Font.Color.BLUE + "\n[?]" + Font.Color.WHITE + Language.Translation.Translate_Language(filename, "Transfer", "Question", "None") + Font.Color.GREEN + "[#MR.HOLMES#]" + Font.Color.WHITE + "-->"))
194
if choice == 1:
195
FileTransfer.Transfer.File(report,username,".txt")
196
inp = input(Language.Translation.Translate_Language(
197
filename, "Default", "Continue", "None"))
198
199