THM Honeynet Collapse – Zadanie 6

Po analizie zrzutu pamięci RAM Honeynet Collapse miało dla mnie zadanie 6. Polegało ono na analizie obrazu dysku serwera Windows. W trakcie ataku logi zdarzeń zostały usunięte, więc musiałem polegać wyłącznie na narzędziach EZ-Tools.

Pytanie 1. — konto ofiary

  • Poziom trudności: łatwy 🟢
  • Liczba punktów: 30
  • Treść: Które konto domenowe zostało użyte do zainicjowania zdalnej sesji na hoście?

W tym zadaniu miałem znaleźć konto, którego użył atakujący do początkowego połączenia do badanego serwera.

Nie będę ściemniał, to zadanie rozwiązałem w pięć sekund.
Z opisu zadania wynika, że atakujący użył poświadczeń niejakiego Matthewsa: „[… ] the attacker had already slipped into the server with Matthew’s stolen credentials […]”.

A kogo hash NTLM skradliśmy w zadaniu czwartym? Właśnie jego! Oto wynik pypykatza z pytania bonusowego:

[...]
== LogonSession ==
authentication_id 66488374 (3f68836)
session_id 4
username matthew.cxxxxxxx
domainname DECEPT
logon_server DC-01
[...]

Odpowiedzią jest nazwa użytkownika (wartość po username).

Pytanie 2. — długość sesji PowerShell

  • Poziom trudności: średni 🟡
  • Liczba punktów: 60
  • Treść: Przez ile sekund atakujący utrzymywał aktywną sesję PowerShell?

Od najprostszego pytania w całym CTFie przechodzimy do (najwyraźniej) najtrudniejszego. Na Discordzie THM (hosta CTFa) dużo ludzi zgłaszało, że nie potrafiło znaleźć odpowiedzi.

Na myśl przyszedł mi klucz UserAssist w rejestrze, który przechowuje dane o uruchomionych programach oraz czasie focusowania okna. Wyeksportowałem plik NTUSER.DAT (UserAssist znajduje się w HKEY_CURRENT_USER) z katalogu Matthewsa. Dodatkowo wyeksportowałem logi transakcyjne, w razie gdyby NTUSER.DAT był oznaczony jako dirty:

Następnie otworzyłem plik NTUSER.DAT w programie Registry Explorer (również autorstwa Zimmermana). Logi okazały się niepotrzebne. Po otwarciu pliku wybrałem zakładkę UserAssist:

W wyświetlonej tabeli wybrałem sortowanie po nazwie programu i znalazłem PowerShella. Odczytałem wartość z kolumny Focus Time i zamieniłem wartość na całe sekundy:

Poniżej wpisu z PowerShellem widać również bardzo interesującą ścieżkę: C:\ProgramData\sync\7zz.exe.

Pytania 3., 4. i 5. — eksfiltracja danych

  • Poziom trudności: łatwy 🟢, średni 🟡 i trudny 🔴
  • Liczba punktów: 30, 60 i 120
  • Treść (1): Jaki był adres IP C2 używany przez atakującego do przygotowania ataku i eksfiltracji danych?
  • Treść (2): Jakiego znanego narzędzia użył atakujący do eksfiltracji danych?
  • Treść (3): Jakie jest „ukryte” hasło do kontrolowanego przez atakującego konta na serwisie Mega?

Po uporaniu się z najcięższym zadaniem z całego CTFa, musiałem znaleźć adres serwera C2 (Command and Control) użytego podczas ataku i eksfiltracji danych.

Oprócz wpisu PowerShella w UserAssist znalazłem również ścieżkę do folderu C:\ProgramData\sync. Znajdowały się w nim pliki potrzebne do odpowiedzi na trzy kolejne pytania:

W crmhttp.conf znajdował się adres serwera C2:

[crmremote]
type = webdav
url = http://xxx.yyy.zzz.ttt:8080

W mega.conf znajdowało się ukryte hasło do konta na Mega (swoją drogą w trakcie CTFa udało mi się znaleźć nieukryte hasło, gdzieś w logach poleceń):

[crmremote]
type = mega
user = harmlessuser98 <małpa> proton.me
pass = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Zostało jeszcze „trudne” pytanie dotyczące samego narzędzia. Ono również znajdowało się w katalogu sync, co prawda ze zmienioną nazwą (backup_win.exe) i pozornie usuniętą ikoną.

Pozornie, bo wystarczyło wyeksportować plik na pulpit: pojawiła się ikonka, a w szczegółach pliku było widać faktyczną nazwę programu (i to w kilku miejscach):

Pytanie 6. — email Lucasa

  • Poziom trudności: bonus 🌟
  • Liczba punktów: 25
  • Treść: Jaki jest adres email Lucasa znaleziony w eksfiltrowanych danych?

To było pierwsze pytanie, na które znalazłem odpowiedź. Po otworzeniu obrazu dysku od razu zauważyłem folder o wymownej nazwie Exfil_Temp, w którym znajdowały się dwa pliki CSV. W pliku Users_export.csv znajdował się email Lucasa: