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:glf19:hackme:hackme [2020/03/29 15:05] Ivo Blöchliger [XSS] |
lehrkraefte:blc:informatik:glf19:hackme:hackme [2020/04/21 13:53] (current) Ivo Blöchliger [Häufigste Passwörter] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Hacken Sie! ====== | ====== Hacken Sie! ====== | ||
- | ===== Schlechte Passwörter, | + | |
+ | ===== Log-File Analyse, Aufgaben für den 20./21. April ===== | ||
+ | * Laden Sie Log-Datei von Teams (in den Aufgaben) herunter. | ||
+ | * Bearbeiten Sie die Datei auf Ihrem Gerät. | ||
+ | * Geben Sie die Datei in Teams bei der Aufgabe hoch. | ||
+ | |||
+ | ==== Häufigste Passwörter ==== | ||
+ | Erstellen Sie eine Spalte mit den ausprobierten Passwörtern, | ||
+ | |||
+ | Kopieren Sie die beiden Spalten in ein zweites Tabellenblatt und erklären Sie dort kurz, wie sie vorgegangen sind und verlinken Sie benutzte Hilfeseiten und/oder -Videos. | ||
+ | |||
+ | Wenn Sie das Sortieren und Zählen nicht selber ergoogeln können, gibt es [[https:// | ||
+ | |||
+ | ==== Anzahl Teilnehmer ==== | ||
+ | Wie viele Teilnehmer stellen Sie in betrachteten Zeitrahmen fest? Wie viele Schüler haben mindestens " | ||
+ | |||
+ | ==== Nur 2iW ==== | ||
+ | |||
+ | * Es findet sich ein UserAgent (Browser, oder sonstiges Programm, das auf eine Webseite zugreift) " | ||
+ | * Studieren Sie den Verlauf der Person mit der IP 192.168.1.18 | ||
+ | * Die Person hat das Passwort ''' | ||
+ | * Können Sie einzelne IPs Ihren Klassenkameraden zuordnen? | ||
+ | |||
+ | ==== Nur 2iW ==== | ||
+ | * Jemand hat eine Wörterbuch-Attacke gefahren. Welche IP hatte diese Person? Welche Programmiersprache wurde für die Attacke benutzt? Welches war wohl das Passwort? Überprüfen Sie das Passwort. | ||
+ | * Bei einigen Einträgen steht " | ||
+ | |||
+ | |||
+ | |||
+ | ===== Schlechte Passwörter, | ||
Ihr Ziel ist es, die Passwörter zu knacken. Dazu gibt es 4 Challenges, wobei die letzte wohl nur auf einem richtigen Computer gelöst werden kann. | Ihr Ziel ist es, die Passwörter zu knacken. Dazu gibt es 4 Challenges, wobei die letzte wohl nur auf einem richtigen Computer 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, kopieren Sie die URL (das was in der Adresszeile vom Browser steht) in das Abgabe Word-Dokument auf Teams. | 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, kopieren Sie die URL (das was in der Adresszeile vom Browser steht) in das Abgabe Word-Dokument auf Teams. | ||
Line 8: | Line 39: | ||
==== Infos zu Challenge 1 ==== | ==== 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. | + | So praktisch Standardpasswörter bei der Inbetriebnahme auch sind, diese müssen unbedingt geändert werden. |
+ | |||
+ | Mehr zu Standardpasswörtern: | ||
</ | </ | ||
==== Infos zu Challenge 2 ==== | ==== Infos zu Challenge 2 ==== | ||
Line 31: | Line 65: | ||
import urllib | import urllib | ||
+ | # 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(request) | ||
+ | reply = s.recv(4096) | ||
+ | s.close() | ||
+ | return reply | ||
+ | | ||
+ | |||
+ | # Passwoerter einlesen | ||
file1 = open(' | file1 = open(' | ||
pws = map(lambda x : urllib.quote(x.rstrip()), | pws = map(lambda x : urllib.quote(x.rstrip()), | ||
file1.close() | file1.close() | ||
- | # Alle Passwoerter | + | |
- | for pw in pws: | + | # Passwoerter |
- | # hier was mit pw tun... | + | for pw in pws: |
- | </ | + | # Die URL ist zu vervollstaendigen (aus einem login-Versuch kopieren) |
- | + | url = "/ | |
- | Um zu überprüfen, | + | |
- | <code python> | + | |
- | if " | + | # Den HTML-Code vom login-Versuch herunterladen |
- | | + | reply = download(url) |
- | else: | + | |
- | | + | # HTML-Code analysieren: |
- | | + | |
+ | print(" | ||
+ | | ||
+ | | ||
+ | print(" | ||
+ | exit() | ||
</ | </ | ||
</ | </ |