# Aufgabe 1

Nennen Sie Maßnahmen, wie man es einem potenziellen Angreifer schwerer machen kann, das Passwort zu erraten.

- Längere Passwörter
- komplexer (Zahlen, Groß- und Kleinbuchstaben)

# Aufgabe 2

Suchen Sie im Internet nach Tools für Wörterbuchangriffe. Welche On- bzw. Offline-Tools gibt es und welche Arten von Hashwerten können mit den jeweiligen Tools geknackt werden?

- acccheck (smb)
- beleth (ssh)
- cudahashcat
- eapmd5pass (md5)
- facebrute
- iisbruteforcer
- morxbook, morxbrute, morxcrack
- oclhashcat
- pdgmail
- pemhack
- sidguesser

# Aufgabe 3

„John The Ripper“ ist als freie Version erhältlich. Erläutern Sie die Funktionsweise. Welche Algorithmen zur Hash-Berechnung beherrscht „John The Ripper“? Wie viele verschiedene Crack-Modi werden unterstützt? Nennen und erläutern Sie die Unterschiede.

# Aufgabe 4

Welcher Schritt ist zunächst notwendig um auf Linux-Distributionen, die Passwörter in einer Shadow-Datei speichern, das Cracking der Passwortliste zu starten?

1. Zugriff auf `/etc/shadow` erhalten
	1. Nötigt `root`
2. Kopieren von `/etc/shadow` und `/etc/passwd`
3. Vorbereitung für Cracking
	1. `unshadow /etc/passwd /etc/shadow > unshadowed.txt`
4. Cracking tool starten
	1. `john --wordlist=rockyou.txt unshadowed.txt`

# Aufgabe 5 - Praxis

`scp localhost:/etc/passwd ~/passwd_dump.txt`
`scp localhost:/etc/shadow ~/shadow_dump.txt`

`unshadow passwd_dump.txt shadow_dump.txt > combined.txt`
`john --wordlist=pwd.txt combined.txt --users=root --format=crypt`

Ergebnis: `notsafe987 (root)`

# Aufgabe 6

Mitunter kann der Vorgang zum Cracken per Brute-Force oder mit Wortlisten sehr lange dauern. Allerdings gibt es ein paar Möglichkeiten, in JTR das Cracken zu beschleunigen. Nennen Sie drei Methoden.

1. Liste an möglichen Wörtern einschränken
2. Mehr Rechenleistung
3. Multi threading

# Aufgabe 7

Für Windows-LM-/-NTLM-Passworthashes gibt es eine effektivere und i.d.R. schnellere Methode das Klartext-Passwort herauszufinden - die Rainbow Tables.
Erklären Sie die Funktionsweise von Rainbow Tables. Welche Vorteile haben sie gegenüber Brute-Force- oder Wörterbuchattacken? Warum sind Rainbow Tables in der Regel effektiver?

Rainbow Tables sind vorberechnete, große Datenbanken, die Klartext-Passwörter mit ihren zugehörigen Hashwerten verknüpfen. Sie dienen dazu, das ursprüngliche Passwort zu einem gegebenen Hashwert schnell zu ermitteln, ohne jedes mögliche Passwort einzeln ausprobieren oder berechnen zu müssen

# Aufgabe 8

Die LM-/NTLM-Hashes von lokalen Benutzerkonten sind in einer SAM-Datenbank abgelegt. Wofür steht SAM und welche Funktion hat der Dienst? Kann man über die SAM-Datenbank auch Domain-Passwörter auslesen?

# Aufgabe 9 - Praxis

Versuchen Sie nun das Passwort des Accounts 'Alice' von einem fiktiven Windows10-Rechner mit dem Tool Ophcrack und einer Rainbow Table zu cracken. Laden Sie sich dazu zunächst die Rainbow Table 'vista free prohabilistic' von der Ophcrack-Webseite herunter (oder, falls die Verbindung zu langsam ist liegt die unter /root/ophcrack) und speichern Sie die Table im Ordner 'ophcrack/RainbowTables' im Home-Verzeichnis des Users 'root'.

In dem Ordner „ophcrack“ finden Sie außerdem einen Dump der SAM-Einträge (Security Accounts Manager) von der VM „win10-victim“. 

**Zum Cracken soll nur das Passwort von Alice betrachtet werden, ansonsten sind die Laufzeiten zu hoch! Hierzu kann bspw. nur ein Teil des SAM-Dump verwendet werden.**

Starten Sie das Tool Ophcrack auf der Kommandozeile (ophcrack), laden Sie den SAM-Dump und versuchen Sie das Passwort des Accounts „Alice“ mit der heruntergeladenen Rainbow Table zu cracken.


`ophcrack-cli -f nurlice.pwdmp -t Rainbowtables/vista_proba_free -n 4`

Ergebnis: Alice NT password 12!34