====== Praxistest ======
Erstelle beliebige Hashwerte von Passwörter
[[https://www.hashgenerator.de|Hashgenerator]]
und versuche diese mithilfe von bereitgestellten Tools wie z.B.:
[[https://crackstation.net|Crackstation]]
zu knacken.
===== Have I beeen pwned? =====
Have I Been Pwned? (’;--have i been pwned?, „pwned“ steht für „owned“, wird jedoch wie „poned“ ausgesprochen, übersetzt in etwa „Hat's mich erwischt?“) ist eine Website, auf der Nutzer überprüfen können, ob ihre persönlichen Daten durch Datenlecks kompromittiert wurden.
Der Dienst greift auf eine Vielzahl von Datenbankdumps und Pastebins zu und ermöglicht es dem Nutzer so Milliarden von geleakten Konten auf die eigenen Informationen zu durchsuchen. Über eine Anmeldung können Nutzer sich auch benachrichtigen lassen, wenn ihre Daten in zukünftigen Dumps auftauchen. Die Website gilt weithin als wertvolle Ressource für Internetnutzer, um ihre eigene Sicherheit und Privatsphäre zu überprüfen.
[[https://haveibeenpwned.com/Passwords|Have I been password pwned ]]
===== Python - Passwort Brute Force Attack =====
5-stelliges Passwort
import hashlib
import datetime
import time
print("Given Hash: ", hashlib.sha1("hallo".encode('utf-8')).hexdigest())
passhash = hashlib.sha1("hallo".encode('utf-8')).hexdigest()
#Passwort 5 Zeichen lang
alphabet_lowercase=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
alphabet_uppercase=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
digits=["0","1","2","3","4","5","6","7","8","9"]
alphabet=alphabet_lowercase+alphabet_uppercase+digits
finished = False
print("\n#### Start Bruteforce Attack #### \n")
ts_start=time.time()
print(datetime.datetime.now())
while finished == False:
for char1 in alphabet:
for char2 in alphabet:
for char3 in alphabet:
for char4 in alphabet:
for char5 in alphabet:
# Kombination erstellen und ausgeben
password = char1+char2+char3+char4+char5
#print(password)
hash=hashlib.sha1(password.encode('utf-8')).hexdigest()
if hash == passhash:
print("\nHash found:", hash)
print("Password:", password,"\n")
ts_end=time.time()
print(datetime.datetime.now())
finished = True
break
if finished == True:
break
if finished == True:
break
if finished == True:
break
if finished == True:
break
if finished == True:
break
print("\nTime for Hacking:" , ts_end - ts_start, "s")
===== Python - Attacke mithilfe von Listen von häufig vorkommenden / gestohlenen Passwörtern =====
Die häufigsten 10 Millionen Passwörter
[[https://github.com/danielmiessler/SecLists/blob/88392ee1e6976b163e87ddb677635deec0082bc3/Passwords/Common-Credentials/10-million-password-list-top-1000000.txt|Passwortliste]]
Passwortliste von Crackstation
[[https://crackstation.net/crackstation-wordlist-password-cracking-dictionary.htm|Cracking Dictionary]]
import hashlib
import datetime
import time
wahl = int(input("Wollen Sie einen Hash-wert eines Passworts (1) oder das Passwort (2) selbst eingeben: "))
wort=""
passhash=""
if wahl == 2:
wort = input("Geben Sie das gewünschte Passwort ein, nachdem in der Passwortliste gesucht werden soll: ")
print("Given Hash: ", hashlib.sha1(wort.encode('utf-8')).hexdigest())
passhash = hashlib.sha1(wort.encode('utf-8')).hexdigest()
else:
passhash = input("Geben Sie einen Hashwert (SHA-1, z.B.: von http://www.sha1-online.com generiert) ein: ")
foundpassword = False
ts_start = time.time()
print("\n...Suche in Passwortliste 1....\n")
file1 = open("passwords.txt", "r")
for line in file1:
line=line[:-1]
#print(line)
hash = hashlib.sha1(line.encode('utf-8')).hexdigest()
if passhash == hash:
foundpassword = True
break
file1.close()
if foundpassword == False:
print("\n...Suche in Passwortliste 2....\n")
file2 = open("passwords2.txt", "r", encoding="utf-8", errors="ignore")
for line in file2:
line=line[:-1]
#print(line)
hash = hashlib.sha1(line.encode('utf-8')).hexdigest()
if passhash == hash:
foundpassword = True
break
file2.close()
if foundpassword == False:
print("\nKeine Übereinstimmung!")
else:
print("Passwort gefunden:", line)
print("Hashwert:", hash)
ts_end = time.time()
print("Zeitdifferenz: ", ts_end - ts_start)