- Python 66.4%
- C++ 19.2%
- C 7.5%
- YARA 6.9%
| 01-email-maldoc | ||
| 02-malware | ||
| 03-malware | ||
| lecture | ||
| maltego_transforms | ||
| git-addkey.png | ||
| git-settings-ssh.png | ||
| README.md | ||
| SampleCollectionApiUsage.md | ||
Praktikumsaufgaben
In diesem Repository finden Sie die Praktikumsaufgaben. Nachdem Sie eine Aufgabe bearbeitet haben, committen und pushen Sie bitte Ihre Lösung in Ihr persönliches Projekt, das zu Beginn für Sie erstellt wurde.
Einmalig: Einrichten der git-Umgebung
SSH Public Key hinterlegen
Sie müssen einmalig ein SSH-Schlüsselpaar erzeugen und den öffentlichen Schlüssen (public key) im gitlab hinterlegen.
Gehen Sie dazu wie folgt vor. Rufen Sie auf der Kommandozeile das Programm ssh-keygen auf. Sofern dies Ihr erstes Schlüsselpaar ist, können Sie jegliche Fragen einfach per ENTER (ohne Eingaben) abfrühstücken.
# SSH-Schlüsselpaar erzeugen
chris@ubuntu:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/chris/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/chris/.ssh/id_rsa.
Your public key has been saved in /home/chris/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:54JFs5zxhMM7cVo8V0yk9vChCVHzdSKolQ+dXkgS8rw chris@cubuntu
chris@cubuntu:~$
# Dies erstellt 2 Dateien im Verzeichnis `.ssh` unterhalb Ihres Home Directory
chris@cubuntu:~$ ls -al .ssh
-rw------- 1 chris chris 1675 Apr 30 11:08 id_rsa
-rw-r--r-- 1 chris chris 395 Apr 30 11:08 id_rsa.pub
Die Datei id_rsa.pub ist der öffentliche Schlüssel. Den Inhalt dieser Datei müssen Sie in die Zwischenablage kopieren.
chris@cubuntu:~$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr2Xs1grwGkXVnQURYX6UsK31Z5BheqhnftrpiuljXTRnkbciOfe1H7JwDmMfPlrIfbJRBnWQ4TGqs3xDLUspoLcxsaL1L5MmjmTrJt6hRUzYZaLbcu15tixSpQbGbLmEf11bfR7xZm/v1feIsOwOro8orvD1EmmyunF3/PUsnf3LOUNP227ZUdm0NSEJ91cApN+4Ob/RrCTBxVGlcdYme8L9Bew4JzIZPMhaWaJ10RFbT76gaQDv5W0UYSFV8jBgD7FguQAc7JQeST0RISUPbDqoUr+CI4E60U9C12mltZKPa9QVmv/RGp+a/9TybZ4f7qs3GUSdmHwBRJJv79xsN chris@cubuntu
Besuchen Sie dann Ihre Profileinstellungen in gitlab unter https://gitlab.internet-sicherheit.de/profile
Dort klicken Sie im Menü links auf den Punkt SSH Keys.

Fügen Sie nun den öffentlichen Schlüssel ein, sprich den gesamten Inhalt der Datei .ssh/id_rsa.pub. Klicken Sie abschließend auf Add key.
Auschecken der Repositories
Gehen Sie wie folgt vor, um sich die git-Umgebung für das Praktikum einzurichten. Sie benötigen 2 Repositories:
- mcti22/tasks
- mcti22/<IHR_BENUTZERNAME>
Erstellen Sie dazu am besten ein übergeordnetes Verzeichnis mcti22. Wechseln Sie dann in das Verzeichnis mcti22 und klonen Sie die beiden Repositories wie folgt:
# Übergeordnetes Verzeichnis erstellen und betreten
mkdir mcti22
cd mcti22
# Repository für Aufgabenblätter klonen
git clone git@gitlab.internet-sicherheit.de:mcti22/tasks.git
# Repository für Ihre Lösungen (<IHR_BENUTZERNAME> ist Ihr gitlab-Benutzername, z.B. 'rmueller') klonen
git clone git@gitlab.internet-sicherheit.de:mcti22/<IHR_BENUTZERNAME>.git
# Ihr Lösungsrepository ist leer und muss wie folgt einmalig initialisiert werden, indem Sie eine leere
# Datei mit dem Namen README.md erzeugen:
cd <IHR_BENUTZERNAME>
touch README.md # erzeugt die leere Datei README.md
git add README.md # fuege die Datei zur git-Versionsverwaltung hinzu
git commit -m "add README" # Commit aller bisherigen Aktionen
git push -u origin master # Die Aenderungen auf den Server schieben
Die resultierende Verzeichnis- und Dateistruktur sollte wie folgt aussehen:
atlas:mcti22 chris$ tree
mcti22
├── tasks # hierunter sind alle Aufgabenblätter
│ ├── README.md
│ └── 01-email # Unterlagen zum Aufgabenblatt 1
│ └── lab1.pdf # Aufgabenblatt 1 als PDF
│
└── <IHR_BENUTZERNAME> # Ihre Lösungen
├── README.md
├── 1 # Lösungen für Aufgabenblatt 1
│ └── 1.1 # Lösung für Aufgabe 1.1
│ ├── logfile.txt # z.B. eine einzureichende Datei
│ └── password.txt # z.B. eine 2. einzureichende Datei
│
└── 2 # Lösungen für Aufgabenblatt 2
└── 2.? # Lösung für Aufgabe 2.?, usw.
Neues Aufgabenblatt "abholen"
Zum Abfragen einer neuen Aufgabe müssen Sie das Projekt tasks aktualisieren.
atlas:mcti22 chris$ cd tasks
atlas:tasks chris$ git pull
Sobald das geklappt hat, sollten neue Aufgabenblätter (sofern verfügbar) in neuen Unterverzeichnissen liegen.
Lösung einreichen
Sie sollen unterhalb Ihres Repositories eine bestimmte Verzeichnisstruktur (wird im Folgenden erläutert) anlegen und mittels git auf den Server "pushen".
Erzeugen Sie unterhalb Ihres Repositories ein Verzeichnis mit dem Namen 1 und darunter ein Verzeichnis mit der Aufgabennummer, also z.B. 1.1.
Legen Sie in dieses neue Verzeichnis die einzureichenden Dateien, z.B. falls gefordert ein Passwort in einer Textdatei mit dem Namen password.txt.
atlas:mcti22 chris$ cd <IHR_BENUTZERNAME>
atlas:<IHR_BENUTZERNAME> chris$ git add 1
atlas:<IHR_BENUTZERNAME> chris$ git commit -m 'Aufgabenblatt 1 geloest'
atlas:<IHR_BENUTZERNAME> chris$ git push -u origin master
Reverse Engineering mit Ghidra
Hilfreiche Videos zum Reverse Engineering mit Ghidra:
- Reversing WannaCry Part 1 - Finding the killswitch and unpacking the malware in Ghidra
- Ghidra quickstart & tutorial: Solving a simple crackme
Wir stellen einen Ghidra-Server zur Verfügung, mit dem Sie in einer Gruppe an einem Shared Project (gemeinsamen Projekt) in Ghidra arbeiten können. Schauen Sie sich dazu folgendes Video an: Reversing: Ghidra: Shared projects on the Ghidra server and version tracking.
Unser Ghidra-Server ist unter ghidra.internet-sicherheit.de, Port 13100, erreichbar. Zugangsdaten erhalten Sie auf Wunsch in Ihrem persönlichen Repository.
