THM Honeynet Collapse – Zadanie 7

Zadanie 7 w CTFie Honeynet Collapse to trudniejsza wersja zadania 6. Było ono bardziej skupione na analizie systemu plików, a nie artefaktów samego Windowsa.

Tutaj również mieliśmy obraz dysku, tylko że niekompletny. Dostępne były jedynie pliki systemowe NTFS (tablica MFT, pliki dziennika USNJournal itd.).

Otrzymany obraz to obraz dysku kontrolera domeny po ataku ransomware.

Pytania 1., 2. i 4. — pobranie ransomware-u

  • Poziom trudności: łatwy 🟢, łatwy 🟢 i średni 🟡
  • Liczba punktów: 30, 30 i 60
  • Treść (1): Jaki jest pełny adres URL, z którego pobrane zostało oprogramowanie ransomware?
  • Treść (2): Jaka była oryginalna nazwa pliku wykonywalnego oprogramowania ransomware pobranego na host?
  • Treść (4): Jakie rozszerzenie pliku zostało dodane do zaszyfrowanych plików?

Szczerze mówiąc nie byłem pewien jak do tego podejść, ale na szczęście nie miałem zbyt wielu opcji. Wyeksportowałem plik $MFT, który jest tablicą wszystkich plików w systemie NTFS:

Następnie użyłem narzędzia MFTECmd autorstwa Erica Zimmermana do sparsowania tablicy MFT:

C:\Users\bonk\Desktop\net9>MFTECmd.exe -f $MFT --csv dc --csvf mft.csv
MFTECmd version 1.3.0.0

Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/MFTECmd

Command line: -f $MFT --csv dc --csvf mft.csv

Warning: Administrator privileges not found!

File type: Mft

Processed $MFT in 10,4956 seconds

$MFT: FILE records found: 500 382 (Free records: 235 248) File size: 718,5MB
Path to dc doesn't exist. Creating...
        CSV output will be saved to dc\mft.csv

Otworzyłem plik w TimelineExplorerze (również autorstwa Zimmermana) i zacząłem plików mających Downloads w nazwie ścieżki.

Bardzo szybko znalazłem kilka podejrzanych plików, które miały przypisane metadane dotyczące pochodzenia pliku — a w nim szukany adres URL (odpowiedź na pierwsze pytanie):

W pobliżu pobranego HiddenFile.zip znajdował się również plik wykonywalny (odpowiedź na drugie pytanie):

Na tym samym zrzucie ekranu widać również dodawane do zaszyfrowanych plików przez program pięcioliterowe rozszerzenie (złożone z samych liter) — odpowiedź na czwarte pytanie.

Pytanie 3. — plik szyfrujący

  • Poziom trudności: średni 🟡
  • Liczba punktów: 60
  • Treść: Który plik wykonywalny zainicjował proces szyfrowania w systemie?

Znaleziony przeze mnie dwuliterowy plik nie był tym, który zaszyfrował wszystkie pliki. Był jedynie stubem, który pobierał prawdziwe oprogramowanie ransomware.

Zanotowałem datę i czas ostatniego dostępu do stuba (2025-07-04 11:35:36), usunąłem filtr i posortowałem wszystkie pliki po dacie utworzenia.

Szukałem utworzonych plików po tym czasie i bardzo szybko znalazłem plik w podejrzanej ścieżce C:\DeceptiFiles\Deployment\Agents, który został utworzony około dziewięć minut po uruchomieniu stuba:

Nazwa tego pliku była odpowiedzią na pytanie trzecie!

Pytanie 5. — nazwa grupy ransomware-owej

  • Poziom trudności: trudny 🔴
  • Liczba punktów: 120
  • Treść: Wyjdź poza oczywiste wnioski – która grupa ransomware zaatakowała organizację?

Zadanie piąte jako jedyne w całym CTFie opierało się na
OSINT-cie. Miałem znaleźć nazwę grupy odpowiedzialnej za atak ransomware przeprowadzony na analizowanym kontrolerze domen.

Nie miałem dostępu do plików na dysku, ale pamiętałem, że w opisie zadania autorzy zamieścili ocenzurowaną wersję wiadomości od grupy:

Postanowiłem, że dalsze przeszukiwanie pliku $MFT nie ma sensu i wklepałem w Google (DuckDuckGo nie zwróciło żadnych wyników) widoczny dopisek do URLa pierwszej strony (f8cef2c0f8fd):

Jedynym wynikiem był wpis ze strony tria.ge, na której była dostępna nieocenzurowana wersja wiadomości:

Po wklejeniu adresu bloga w przeglądarkę TOR, otrzymałem odpowiedź na pytanie piąte:

Pytanie 6. — dodatkowe instrukcje

  • Poziom trudności: bonus 🌟
  • Liczba punktów: 25
  • Treść: Jaka jest nazwa pliku zawierającego dodatkowe instrukcje dotyczące okupu dla ofiary?

Okazało się, że na dysku znajdował się jeszcze jeden plik z instrukcjami. Na szczęście nie zamknąłem jeszcze wtedy okna TimelineExplorera i po zjechaniu w dół listy o centymetr, znalazłem odpowiedź: