Zurück zur Hauptseite

Challenge - Identifiziere den Hacker

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://terminal.challenge.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.

[user@localhost:/challenge]$ ls 
Bericht.txt Fahrzeuge.txt Interviews Mitgliedslisten Personen.txt Strassen cat_test grep_test long_test

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:

[user@localhost:/challenge]$ cd shellock/
[[user@localhost:/challenge/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.

[user@localhost:/challenge/shellock]$ cd ..
[user@localhost:/challenge]$
        

cat

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

[user@localhost:/challenge]$ 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:

[user@localhost:/challenge]$ 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:

[user@localhost:/challenge]$ 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.

[user@localhost:/challenge]$ grep "really" grep_test
are really looking for.
really helpful
[user@localhost:/challenge]$ grep "really" *
grep_test:are really looking for.
grep_test:really helpful
long_test:It is really long.
[user@localhost:/challenge]$ 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!

MIT License
Copyright (c) 2016 Shuanglei Tao
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Hier kannst du deine Lösungen eintragen:

Lösung abgeben Hilfe