-
Notifications
You must be signed in to change notification settings - Fork 0
/
PW CRACKING.txt
245 lines (174 loc) · 9.06 KB
/
PW CRACKING.txt
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
2 Hashes und Passwörter
Passwörter werden nicht als Klartext gespeichert
sondern nur das Salting und der Hash
(1) zuerst wird das Passwort gesalted (=komplizieter Char-String hinzugefügt)
(2) dann wird mit einer Hashfunktion (möglichst langsamer Hash) der Hashstring erzeugt
(aus diesem erstellen Hash kann nicht mehr rückgeschlossen werden auf den Ausgangswert)
(3) und an den Hash wird dann der Salt-Wert angehängt
(wobei der Salt-Wert auch davor, in eigenem Feld, getrennt usw. gespeichert werden kann
wenn sich der User wieder anmeldet:
(1) Salt auslesen
(2) ans PW hängen und wird gehashed
(3) wenn der Hash-Wert dem gespeicherten entspricht ist die Anmeldung ok
3 Brute Force Cracking
Salt kann ausgelesen werden - PW muss ermittelt werden
= alle möglichen PW ausprobieren
100 bei einer Stelle - 100² bei 2 Stellen, 100³ bei 3 Stellen usw.
4 Hashfunktionen
Hashfunktionen sind schnell (und daher nicht gut für Password-Hashing)
Password Hashing Functions sind langsam (und daher für Password-Hashing geeignet)
(je langsamer desto besser - weil dann das Cracking länger dauer und nicht rentabel ist)
schlechte Hash-Funktionen (auf keinen Fall verwenden)
MD5, SHA-1, SHA-2
grundsätzlich gute Hash-Funktionen, aber zu schnell für Password-Hasing (d.h. nicht verwenden)
SHA-3 (Keccak), Blake, Gost, Haval, RipeMD, Whirlpool
(wird benötigt um Hashing in Programmen zu machen - Schnelligkeit kann auch nützlich sein!)
Password Hashing Functions:
PBKDF2 mit SHA-3 (begrenzt auf 64 Byte Länge - daher eher nicht empfehlenswert
Standard aktuell für Password-Hashing
bcrypt (auf Whirlpool basierend) => sicher, weil langsam
(aktuell gibt es spezialisierte Hardware die darauf ausgelegt diese PW zu cracken - aber die ist zu teuer)
scrypt => neuer, noch nicht stark getestet => sehr langsam
6 Öffentliche Wordlist
rockyou.txt - File mit ca 14Mio. Passwörtern, welche gehackt worden sind
nach Häufigkeit sortiert
7 CeWL Wordlisten generieren
URL: https://digi.ninja/projects/cewl.php
Download im Linux-System (z.B. Kali) - und dort dann Installation lt. Homepage im Terminal
Aufruf der Hilfe mit: cewl -h
cewl -w google.txt -d 5 -m 6 www.google.com => Passwortliste von dieser Seite wird erstellt
=> -w Name der Ausgabedatei
=> -d Tiefe der Suche auf der Seite z.B. 5 (doppelte Ergebnisse werden nur 1x ausgegeben)
=> -m minimale Wörterlänge z.b. 6 (oder wenn z.b. die Mindestlänge 8 der PWs ist eben 8)
9 Rainbowtables
war der Grund warum Salt hinzugefügt werden musste damals
Zuordnungstabelle von Password zu Hash-Wert des Passwortes
Nachteile: Salts zerstören die Methode komplett
10 RainbowCrack
Erstellung von Rainbow-Tables
URL: https://project-rainbowcrack.com/
In charset.txt sind alle benutzten Zeichen ersichtlich
Rainbow-Generierung: rtgen md5 loweralpha 1 3 0 3800 33554 443
=> Hashvariante md5, nur loweralpha, mind. 1 max. 3 Buchstabe, Tableindex = 0,
rt-Datei wird erzeugt (nicht lesebar - in binärem Format)
Sortierung der Datei: rtsort md5_loweralpha#1-3_0_3800x33554_443.rt
Wenn alle rt-Dateien sortiert werden sollen in einem Ordner: rtsort .
11 HashID - zum herausfinden des genutzten Hashes
URL: https://github.com/psypanda/hashID
Installation: pip install hashid
GitHub lokal clonen
In das Verzeichnis des geklonten GitHub wechseln
Suchen eines Hashtyps mit: hashid '$P$8ohUJ.1sdFw09/bMaAQPTGDNi2BIUt1'
12 Hashcat Installation
URL: https://hashcat.net/hashcat/
=> binaries herunterladen und entpacken
Tool um Hashes zu cracken
hashcat64.exe verwenden im Normalfall
Testlauf ltg. example0.cmd
=> hashcat64.exe -t 32 -a 7 example0.hash ?a?a?a?a example.dict
=> in der der example0.hash stehen alle zu crackenden Hash-Werte drinnen
13 Hashcat Hilfe
hashcat64.exr --help => Hilfe für hashcat
Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...
Hashübersicht: alle Hashes die gecracked werden können mit Hash-Nummer
Raw Hash, Network Protocols, Forums, E-Commerce, Frameworks, Databases, Operating System, Archives,
Full Disk Encrypton, EAS Enterprise Application Software (SAP, Lotus Notes)
Basic Examples auch vorhanden
14 Hashcat Benchmark
Aufruf Benchmark: hashcat64 -b --benchmark-all
jeder einzelner Hashwert wird gebenchmarked
z.B. MD5: 11168,4 MH MegaHashes/sek bzw. 11 GH GigaHashes/sek
d.h. 11 Milliarden Passwörter können pro Sekunde ausprobiert werden
=> je niedirger der Wert desto besser - weil weniger Passwörter pro Sekunde probiert werden können
15 Dauer eines Crackvorgangs
Dauer mit Dictionary:
rockyou.txt hat 14Mio Passwörter
14Mio Passwörter / 27412.2 MH/s für z.B. MD5-Hash => man braucht nur 0,0005 sek
wenn das 100 User sind => braucht man ca. 0,05 sek
bei Hashes mit 270 MH/s braucht man für die rockyou.txt für 1 User: 53489sek => 891min => 15h
Dauer bei BruteForce:
26 Kleinbuchstaben + 26 Großbuchstaben + 10 Ziffern + ca 35 Sondernzeichen => gesamt ca. 100 Zeichen
PW mit 1 Stelle => 100 Möglichkeiten
bei 2 Stellen => 100²; bei 3 Stellen => 100³
bei 4 Stellen gerundet => 100Mio Möglichkeiten grob
bei 5 Stellen => 10Mld Möglichkeiten
im Durchschnitt haben PW 8 Stellen => 100 hoch 8
bei 8 Stellen bei MD5 => 364801sek => 6080min => 100h => 4,2 Tage
16 Hashcat Directory Angriff
hashcat64 -m 0 -a 0 hashes.txt rockyou.txt
-m 0 => bedeutet MD5-Hash (Hash-Mode bzw. Nummer lt. Hilfe)
-a 0 => bedeutet Attack-Mode = Wordlist
hashes.txt => zu crackend Hash-Werte
rockyou.txt => zu verwendendes Dictionary
17 Hashcat Bruteforce Angriff
# | Mode => Mode ist 3 für Brute-force
3 | Brute-force
? | Charset => Angabe der Mask wie die Suche erfolgen soll
===+=========
l | abcdefghijklmnopqrstuvwxyz
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
d | 0123456789
h | 0123456789abcdef
H | 0123456789ABCDEF
s | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
a | ?l?u?d?s
b | 0x00 - 0xff
hashcat64.exe -m 0 -a 3 0cc175b9c0f1b6a831c399e269772661 ?a
=> einstelliges Passwort "a" wird gefunden
hashcat64.exe -m 0 -a 3 0cc175b9c0f1b6a831c399e269772661 ?a --show
=> durch diesen Befehl --show am Ende wir auch gleich das Ergebnis ausgegeben
18 Hashcat Fortgeschrittene Mask Attacks
im Ordner masks gibt es verschiedene Masken wie Passwörter aufgebaut sind
hashcat664 -m 0 -a 3 598d4c200461b81522a3328565c25f7c C:\DOWNLOAD\hashcat-5.1.0\masks\rockyou-1-60.hcmask
Dauer sind 11sek - Passwort ist dann hallo
19 Hashcat Hybrid Attacks
Angriff mit Maske + Directory
zuerst mit Directory am Beginn und danach die Zahlenmaske (= Modus 6)
hashcat664 -m 0 -a 6 598d4c200461b81522a3328565c25f7c rockyou.text ?d?d
oder umgekehrt mit zuerst Zahlenmaske und danach Directory (= Modus 7)
hashcat664 -m 0 -a 7 598d4c200461b81522a3328565c25f7c ?d?d?d?d?d rockyou.text?d?d?d
und natürlich kann die Maske auch nicht per Datei angegeben werden
hashcat664 -m 0 -a 7 598d4c200461b81522a3328565c25f7c rockyou-1-60.hcmask rockyou.text?d?d?d
20 Hashcar Rule Based Attacks
Bestehende Dictionary werden durch bestimmte Regeln ergänzt - Suchlauf dadurch viel mächtiger
Bei diesem Angriff kann der Modus entfernt werden
durch -r werden die Regeln definiert
hashcat664 -m 0 98d4c200461b81522a3328565c25f7c rockyou.txt -r rules.txt -0
Beschreibungsregeln in der rules.txt:
: => unveränderte Suche (rockyou.txt wird 1:1 verarbeitet
l => alles in Kleinschreibung
u => alles in Großschreibung
t => invertiert (kleine Buchstaben groß, große Buchstaben klein)
r => Wörter werden umgedreht
d => Wort wird verdoppelt
$1 => 1 wird vor dem Wort angehängt
^1 => 1 wird hinten angehängt
Im Rules-Ordner sind viele Regeln vordefineirt
26 Limitierungen von Hashcat
28 - THC Hydra
Hydra greift Netzwerkpasswörter an
Clone: https://github.com/vanhauser-thc/thc-hydra
sudo apt-get install hydra hydra.gtk
xhydra ruft grafische Oberfläche auf
Port für FTP ist z.B. 21 (bei FTP-Angriff)
Protocol FTP auswählen (bei FTP-Angriff)
"Be Verbose" => Anzeige des Vorgangs
ca. 10 PW pro Sekunde => sehr langsam
User / Password angeben in Menü "Passwords"
29 - Hydra - generierte Passwörter
=> besser Wortlisten verwenden
33 - WiFi WPA Handshakes mit hashcat cracken
.cap-Datei ist Voraussetzung (Handshake muss bekannt sein)
Cap-Datei umwandeln zu einem hashcat capture file
Modus: -m 2500
34 - PHPBB Passwörter auslesen und mit Hashcat cracken
Forums Framework
35 - 7Zip Passwörter cracken
7z2hashcat von github installieren
36 - Truecrypt Passwörter cracken
mit hashcat
37 - Veracrypt Passwörter cracken
38 - John The Ripper Installation
39 - MS Office cracken
40 - PDFs cracken
41 - WinRar Archive cracken