Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf20:hackme [2021/06/17 06:38] – Ivo Blöchliger | lehrkraefte:blc:informatik:glf20:hackme [2023/06/13 13:29] (current) – [Weitere Ideen] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== Schlechte Passwörter, | ||
| + | Ihr Ziel ist es, die Passwörter zu knacken und so Zugang zur Webseite zu erhalten. | ||
| + | Dazu gibt es 4 Challenges, wobei die letzte nur einem Programm gelöst werden kann. | ||
| + | |||
| + | **Wichtig: Verwenden Sie keine eigenen Passwörter für die Übung! Die werden alle im Klartext übermittelt gehen unverschlüsselt in die Server-Logs...** | ||
| + | |||
| + | Die Challenges müssen in der Reihenfolge gelöst werden. Bei der Lösung einer Challenge erhalten Sie den Link auf die nächste Challenge. Wenn Sie eine Challenge gelöst haben, speichern Sie die URL (das was in der Adresszeile vom Browser steht) in eine .txt-Datei. | ||
| + | |||
| + | Start hier: https:// | ||
| + | |||
| + | ==== Infos zu Challenge 1 ==== | ||
| + | Wir möchten uns natürlich nicht als einfacher User, sondern als Benutzer mit Administrator-Rechten einloggen... | ||
| + | < | ||
| + | So praktisch Standardpasswörter bei der Inbetriebnahme auch sind, diese müssen unbedingt geändert werden. Insbesondere für den Benutzer //admin//. | ||
| + | |||
| + | Mehr zu Standardpasswörtern: | ||
| + | </ | ||
| + | ==== Infos zu Challenge 2 ==== | ||
| + | < | ||
| + | Passwörter im Klartext speichern geht gar nicht. Und dazu diese noch öffentlich zugänglich rumliegen lassen ist ganz schlecht. Und die URL im Browser darf natürlich angepasst werden... | ||
| + | </ | ||
| + | ==== Infos zu Challenge 3 ==== | ||
| + | < | ||
| + | Anstatt die Passwörter sollten Prüfsummen (sogenannte Hashes) gespeichert werden. Aber nicht nur einfach den Hash davon, sondern der muss mindestens noch gesalzen werden, d.h. das Passwort muss erst noch mit einer zufälligen Zeichenkette “gesalzen”, | ||
| + | </ | ||
| + | ==== Infos zu Challenge 4 ==== | ||
| + | < | ||
| + | Wenn man (sehr optimistisch) davon ausgeht, dass nur 10% der Leute unsichere Passwörter haben, könnte man durch Probieren ziemlich schnell einige Passwörter in einer Organisation " | ||
| + | |||
| + | Um einen solchen Angriff auf die HackMe-Seite zu fahren, ist man auf ein Programm angewiesen, das alle Passwörter durchprobiert. Im folgenden finden Sie ein Programm-Skelett, | ||
| + | |||
| + | <code python> | ||
| + | import socket | ||
| + | import ssl | ||
| + | import urllib.parse | ||
| + | |||
| + | # Dowload einer url (ohne https:// | ||
| + | # z.B. / | ||
| + | def download(url): | ||
| + | host = " | ||
| + | port = 443 | ||
| + | s = socket.socket(socket.AF_INET, | ||
| + | s.connect((host , port)) | ||
| + | s = ssl.wrap_socket(s) | ||
| + | request = "GET " + url + " HTTP/ | ||
| + | s.sendall(bytes(request, | ||
| + | reply = s.recv(4096) | ||
| + | s.close() | ||
| + | return str(reply) | ||
| + | | ||
| + | |||
| + | # Passwoerter einlesen | ||
| + | file1 = open(' | ||
| + | pws = map(lambda x : urllib.parse.quote(x.rstrip()), | ||
| + | file1.close() | ||
| + | |||
| + | | ||
| + | # Passwoerter alle durchgehen | ||
| + | for pw in pws: | ||
| + | # Die URL ist zu vervollstaendigen (aus einem login-Versuch kopieren) | ||
| + | url = "/ | ||
| + | | ||
| + | print(url) | ||
| + | # Den HTML-Code vom login-Versuch herunterladen | ||
| + | reply = download(url) | ||
| + | | ||
| + | # HTML-Code analysieren: | ||
| + | if not (" | ||
| + | print(" | ||
| + | exit() | ||
| + | else: | ||
| + | print(" | ||
| + | exit() | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== XSS ===== | ||
| + | XSS steht für Cross-Site-Scripting und bezeichnet Angriffe, bei denen HTML- oder JavaScript-Code in eine fremde Seite eingeschleust werden können. Das ist darum problematisch, | ||
| + | |||
| + | Folgende Seite ist für XSS-Angriffe verwundbar: | ||
| + | |||
| + | * https:// | ||
| + | |||
| + | Folgende Challenges: | ||
| + | * Erreichen Sie, dass irgendetwas auf der Seite rot erscheint oder dass ein Bild auf der Seite angezeigt wird. | ||
| + | * Erreichen Sie, dass der Hintergrund der gesamten Seite rot wird. | ||
| + | * Erreichen Sie, dass eine Warnbox mit dem Text " | ||
| + | |||
| + | |||
| + | Posten Sie die Ihre verschiedenen URLs, die den XSS-Angriff demonstrieren auf Teams. | ||
| + | |||
| + | * https:// | ||
| + | |||
| + | |||
| + | ==== Weitere Ideen ==== | ||
| + | <hidden nur Notizen für die Lehrkräfte> | ||
| + | * Office-Macros: | ||
| + | </ | ||