Sample Files
The files that are available for download here are usually malware, please treat these files accordingly. Malicious samples are packed as zip or 7zip archives with the password infected.
[imp@mal.re /tmp/classes/hsbund-ws2026/tag4/]$ cat aufgabe8.md
Zur Untersuchtung steht das Asservat mit der folgenden SHA-256 Prüfsumme:
```
de04d2402154f676f757cf1380671f396f3fc9f7dbb683d9461edd2718c4e09d
```
Es handelt sich um eine Ransomware names "NetWalker", welche API-Hashing verwendet.
1. Identifiziere und analysiere die API-hashing Funktion.
2. Erstelle eine Enumeration von API hashes, welche Du dann in Ghidra importierst. Zu diesem Zweck findest Du im Aufgabenarchiv Python-Skripte, in welchem das API-hashing nach-implementiert werden muss.
3. Identifiziere die Funktion, in der mittels `FindFirstFileW` Dateien und Verzeichnisse enumeriert werden.
Hier ist eine Zusammenfassung der wichtigsten Arbeitsschritte für Aufgabenteil 2 und 3:
- Importiere das API Hash enum in Ghidra:
- File → Parse C Source
- Unter "Source files to parse": Alle Einträge löschen
- Unter "Source files to parse": Eure enum.h-Datei einfügen
- Parse to Program
- Bei allen Nachfragen die Vorauswahl bestätigen.
- In der Funktion, in der Funktionen dynamisch aufgelöst werden: Öffne das Kontextmenü für die globale Variable, in der die aufgelösten Funktionen gespeichert werden.
- Wähle im Kontextmenü die Option "Auto Create Structure".
- Ändere alle passenden Parametertypen zu `ApiHashes`, so dass erkennbar wird, welches Strukturfeld welche Funktion enthält.
- Finde die Auflösung von `FindFirstFileW` und suche nach Referenzen auf das entsprechende Strukturfeld.
- Ggf. führt das nicht zum Ziel. Dies kann daran liegen, dass Ghidra den Datentyp der globalen Struktur nicht aggressiv genug propagiert. Finde in diesem Fall die eine Funktion, die die globale Struktur zurückgibt und passe ihren Rückgabewert an.