Challenge 3 - Identifiziere den Hacker


CISPA-Challenge: Identifiziere den Hacker

Safer Internet Day 2019

Aufgabe

Deine Aufgabe ist es, möglichst viele Informationen über einen Hacker zu finden, der in Terminal City sein Unwesen treibt. Durch geschickte Kommandozeilenbefehle durchsuchst du große Datenmengen, um einem Hacker auf die Spur zu kommen.
Der Abschnitt Vorbereitung hilft dir dabei, die Challenge zu starten und zusätzlich gibt es einen Überblick über die wichtigsten Kommandozeilenbefehle.
Die Datei „Bericht“ enthält den Bericht der Polizei über den Vorfall. Die relevanten Zeilen beginnen mit dem Wort „WICHTIG“. Diese kannst du mit dem grep-Befehl auslesen. Um eine Person zu befragen, musst du zunächst in der Datei „Personen“ nachschauen, in welcher Straße sie wohnt.
Im Ordner „Straßen“ findest du die passende Datei. Durch die Befehle head und tail kannst du die angegebene Zeile aus der Straßen-Datei auslesen. Dort befindet sich die Nummer des entsprechenden Interviews, welches du im Ordner „Interviews“ findest. Falls du bei deiner Suche nach dem Hacker auf Texte ohne Sinn triffst, suchst du an der falschen Stelle.

Vorbereitung:

Alle Befehle die du für die Aufgabe brauchst, werden oft auf Linux-Systemen benutzt. Wenn du kein eigenes Linux zur Verfügung hast, kannst du zum Lösen der Aufgabe das folgende Webterminal benutzen, das ein Linux-System simuliert.

Wenn du bereit bist und deine Linux-Konsole offen hast, solltest du als erstes die Daten, die Shellock gesammelt hat, von seinem Server runterladen:


    [root@localhost ~]# wget https://cysec-challenge.cispa.saarland/files/shellock.zip
                     

Wenn du diese runtergeladen hast, überprüfe ob die Daten nicht manipuliert werden, indem du prüfst ob die richtige Checksumme (293c439de0985f5a04307189bc2018355e040809fb354bb88e932207dd6bdd7f) berechnet wird:


    [root@localhost ~]# sha256sum shellock.zip
                    

Danach kannst du sie entpacken:


    [root@localhost ~]# unzip shellock.zip
                    

Wenn du nun ls tippst, siehst du den entpackten Ordner shellock und kannst in diesen Ordner navigieren (change directory):


    [root@localhost ~]# cd shellock
                    

Jetzt bist du bereit mit Shellocks Hinweisen zu arbeiten. Die nötigen Befehle dafür sind im nächsten Abschnitt erklärt.

ls

Der Befehl steht für list und mit ihm zeigst du den Inhalt des Ordners an, in dem du dich gerade befindest.


[root@localhost ~]# ls
dos      hello.c       shellock      shellock.zip
                

In diesem Ordner ist zum Beispiel eine Datei mit dem Namen hello.c und ein Ordner namens dos.

cd

Der Befehl steht für change directory und mit ihm wechselst du in einen anderen Ordner:


[root@localhost ~]# cd shellock/
[root@localhost shellock]#
                

Wenn du danach ls benutzt, siehst du den Inhalt des Ordners in den du gewechselt bist.
Um aus einem Ordner wieder rauszuwechseln, also in den Oberordner zu kommen benutzt man zwei Punkte.


[root@localhost shellock]# cd ..
[root@localhost ~]#
                

cat

Der Befehl steht für concatenate (zusammenfügen) und mit ihm kann man sich z.B. einfach den Inhalt einer Datei anzeigen lassen:


[root@localhost shellock]# cat cat_test
This is a test for cat.
                

head

Den Befehl head nutzt man um sich die ersten paar Zeilen einer sehr großen Datei anzeigen zu lassen. Mit -n zeigt man eine bestimmte Anzahl an Zeilen an:


[root@localhost shellock]# head -n 4 long_test
This is a long file.
With many
many
many
                

tail

Mit tail macht man das Gleiche für das Ende einer Datei, um sich die letzten Zeilen anzeigen zu lassen:


[root@localhost shellock]# tail -n 4 long_test
many
many
lines.
It is really long.
                

grep

Mit grep kann man Dateien nach bestimmten Textstücken durchsuchen. Das gesuchte Wort gibt man in Anführungstrichen an und dahinter die Datei in der man suchen möchte.
Wenn man statt der Datei einen Stern benutzt, sucht man in allen Dateien die sich im aktuellen Ordner befinden (mit -r auch noch in allen Unterordnern).
Außerdem kann man sich statt der gefundenen Zeile auch nur die Namen der Dateien anzeigen, in denen etwas gefunden wurde.


[root@localhost shellock]# grep "really" grep_test
are really looking for.
really helpful
[root@localhost shellock]# grep "really" *
grep_test:are really looking for.
grep_test:really helpful
long_test:It is really long.
[root@localhost shellock]# grep "really" -l *
grep_test
long_test
                

So jetzt kennst du die Grundlagen. Weitergehende Hinweise und Beispiele kannst du dir in diesem PDF angucken.

Viel Erfolg!

Hier kannst du deine Lösungen eintragen:

Lösung abgeben Hilfe