-
Notifications
You must be signed in to change notification settings - Fork 7
/
froghashkiller.py
255 lines (203 loc) · 11.3 KB
/
froghashkiller.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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
import itertools
import hashlib
import os
import hashlib,binascii
composicao = True
tamanho = True
continuar = True
continuar2 = True
continuargeral = True
chrs = ""
criptografia = ""
codehash = ""
quadro = """
----------------------------
| blake2s | sha3_256 |
| sha512 | sha256 |
| sha3_512 | sha256 |
| sha224 | sha512 |
| sha384 | md5 |
| sha3_384 | blake2b |
| sha1 | ntlm |
----------------------------
"""
logo = """
______ _____ ____ _____ _ _ _____ _ _ _ _______ _ _ ______ _____
| ____| __ \ / __ \ / ____| | | | | /\ / ____| | | | | |/ /_ _| | | | | ____| __ \
| |__ | |__) | | | | | __ | |__| | / \ | (___ | |__| | | ' / | | | | | | | |__ | |__) |
| __| | _ /| | | | | |_ | | __ | / /\ \ \___ \| __ | | < | | | | | | | __| | _ /
| | | | \ \| |__| | |__| | | | | |/ ____ \ ____) | | | | | . \ _| |_| |____| |____| |____| | \ \
|_| |_| \_\\_____/ \_____| |_| |_/_/ \_\_____/|_| |_| |_|\_\_____|______|______|______|_| \_\
_____________________________________ CODADO POR: NATANAEL ANTONIOLI
_.__-'@_ _------____/ === ============================= INSCREVA-SE: FÁBRICA DE NOOBS
/ '--) | ________________/ #MORTE AO MIOJO
/ >__<<_/ | ___--_/(_)
\\=x \=x |___---
"""
intro = """
1 - Identificar HASH (HashID)
2 - Realizar ataque de força bruta
3 - Realizar ataque de wordlist
"""
wordlistquadro = """
|-----------------------------------------------------------------------------------------------------------|
| palavrasptbr | Lista de palavras em Português do Brasil, retiradas do Dicionário Aurélio. |
| palavrasen | Lista com mais de 400 mil palavras em Inglês |
| nomesbr | Mais de 25 mil nomes do Brasil |
| nomesint | Nomes em inglês |
| datas | Todas as datas possíveis desde 1900 até 2100, no formado ddmmaaaa |
| datasint | Todas as datas possíveis desde 1900 até 2100, no formado mmddaaaa |
| 10milhoesen | 10 milhões de senhas mais utilizadas, em Inglês |
| cinema | Mais de 41 mil palavras envolvendo filmes, personagens e atores |
|-----------------------------------------------------------------------------------------------------------|
"""
################################## AQUI COMEÇA O CÓDIGO DE VERDADE ###############################
print(logo)
print(intro)
while continuargeral == True:
menuprincipal = int(input("O que deseja fazer?"))
if menuprincipal ==1:
from sys import executable
from subprocess import Popen, CREATE_NEW_CONSOLE
Popen([executable, 'hashid.py'], creationflags=CREATE_NEW_CONSOLE)
input('Pressione enter para retornar ao programa.')
if (menuprincipal == 2) or (menuprincipal == 3):
print(quadro)
print("")
menu2 = str(input ("Qual algorítmo de hash deseja testar? Escreva o nome como mostrado no quadro."))
print("")
hashcomp = str(input("Insira a hash."))
print("")
criptografia = menu2
codehash = "hashcerto = hashlib."
codehash += criptografia
codehash += "(senha6.encode())"
if menuprincipal == 2:
print ("")
print ("Componha sua amostragem utilizando os comandos abaixo:")
print ("")
print ("1 - Caracteres a-z")
print ("2 - Caracteres A-Z")
print ("3 - Caracteres 0-9")
print ("4 - Caracteres especiais !@#$%&*() ")
print ("")
print ("5 - Zerar padrões")
print ("6 - Prosseguir")
print ("")
while composicao == True:
menu1 = int(input("O que deseja fazer?"))
print("")
if menu1 ==1:
chrs += "abcdefghijklmnopqrstuvwxyz"
if menu1==2:
chrs += "ABCDEFGHIJLKMNOPQRSTUVWXYZ"
if menu1==3:
chrs += "0123456789"
if menu1==4:
chrs += "!@#$%&*()"
if menu1==5:
chrs = ""
if menu1==6:
composicao = False
print("")
minimo = int(input("Qual o mínimo de caracteres que deseja testar?"))
print("")
maximo = int(input("Qual o máximo de caracteres que deseja testar?"))
print("")
for n in range(minimo, maximo+1):
for xs in itertools.product(chrs, repeat=n):
if continuar == True:
if criptografia == "ntlm":
xs = str(xs)
xs = str(xs)
senha1 = (xs.replace("'", ""))
senha2 = (senha1.replace("(", ""))
senha3 = (senha2.replace(")", ""))
senha4 = (senha3.replace("'", ""))
senha5 = (senha4.replace(" ", ""))
senha6 = (senha5.replace(",", ""))
hash = hashlib.new('md4', xs.encode('utf-16le')).digest()
hashok = str((binascii.hexlify(hash)))
hashfinal = str(hashok.replace("'",""))
hashfinal = hashfinal[1:]
if hashfinal == hashcomp:
print ("")
print ("-------------------------------------------------------------")
print ("SUCESSO! A senha correspondente à hash é", senha6, "!")
wait = input("PRESSIONE ENTER PARA SAIR")
continuar = False
else:
print ("A senha", senha6, "não corresponde. Sua hash é: ", hashfinal)
else:
xs = str(xs)
senha1 = (xs.replace("'", ""))
senha2 = (senha1.replace("(", ""))
senha3 = (senha2.replace(")", ""))
senha4 = (senha3.replace("'", ""))
senha5 = (senha4.replace(" ", ""))
senha6 = (senha5.replace(",", ""))
exec(codehash)
hex_dig = hashcerto.hexdigest()
if hex_dig == hashcomp:
print ("")
print ("-------------------------------------------------------------")
print ("SUCESSO! A senha correspondente à hash é", senha6, "!")
wait = input("PRESSIONE ENTER PARA SAIR")
continuar = False
else:
print ("A senha", senha6, "não corresponde. Sua hash é: ", hex_dig)
else:
a=0
if menuprincipal ==3 :
print (wordlistquadro)
listauso = str(input("Escreva o nome da wordlist que deseja utilizar, exatamente como está no quadro. Caso possua uma wordlist personalizada em .txt, trasnfiara-a para o diretório do programa e insira seu nome, sem extensão."))
listauso += ".txt"
with open (listauso, "r") as myfile:
data= str(myfile.readlines())
novo = data.split()
for elem in novo:
palavra = (elem.replace("'", ""))
palavra = palavra[:-3]
if continuar2 == True:
if criptografia == "ntlm":
palavra = str(palavra)
senha1 = (palavra.replace("'", ""))
senha2 = (senha1.replace("(", ""))
senha3 = (senha2.replace(")", ""))
senha4 = (senha3.replace("'", ""))
senha5 = (senha4.replace(" ", ""))
senha6 = (senha5.replace(",", ""))
hash = hashlib.new('md4', palavra.encode('utf-16le')).digest()
hashok = str((binascii.hexlify(hash)))
hashfinal = str(hashok.replace("'",""))
hashfinal = hashfinal[1:]
if hashfinal == hashcomp:
print ("")
print ("-------------------------------------------------------------")
print ("SUCESSO! A senha correspondente à hash é", senha6, "!")
print ("")
wait = input("PRESSIONE ENTER PARA SAIR")
continuar2 = False
else:
print ("A senha", senha6, "não corresponde. Sua hash é: ", hashfinal)
else:
xs = str(palavra)
senha1 = (xs.replace("'", ""))
senha2 = (senha1.replace("(", ""))
senha3 = (senha2.replace(")", ""))
senha4 = (senha3.replace("'", ""))
senha5 = (senha4.replace(" ", ""))
senha6 = (senha5.replace(",", ""))
exec(codehash)
hex_dig = hashcerto.hexdigest()
if hex_dig == hashcomp:
print ("")
print ("-------------------------------------------------------------")
print ("SUCESSO! A senha correspondente à hash é", senha6, "!")
print ("")
wait = input("PRESSIONE ENTER PARA SAIR")
continuar2 = False
else:
print ("A senha", senha6, "não corresponde. Sua hash é: ", hex_dig)
else:
a = 0