Ostatnim zadaniem w CTFie Honeynet Collapse było zadanie ósme. Polegało ono na analizie obrazu dysku urządzenia Mac. Użytkownik pobrał i zainstalował pewnego wirusa, a ja musiałem znaleźć informacje na jego temat.
Pytanie 1. — strona pobierania
- Poziom trudności: łatwy 🟢
- Liczba punktów: 30
- Treść: Z jakiej strony internetowej użytkownik pobrał instalator złośliwej aplikacji?
Pierwsze co przyszło mi na myśl to przejrzenie historii przeglądania Safarii. Pliki tej przeglądarki znajdują się w katalogu ~/Library/Safari
(~ oznacza katalog domowy użytkownika). Plik History.db
odpowiada za przechowywanie historii przeglądania:
Po zamontowaniu obrazu dysku przy użyciu apfs-fuse, otworzyłem plik History.db w aplikacji DB Browser for SQLite. W tabeli history_items znalazłem URL z domeną .thm, który był odpowiedzią na pytanie pierwsze:
id | url | domain_expansion [...]
[...]
55 | http://deve*******.thm/ | NULL [...]
[...]
Pytanie 2. — plik instalacyjny
- Poziom trudności: łatwy 🟢
- Liczba punktów: 30
- Treść: Jak nazywa się instalator złośliwej aplikacji?
Najbardziej oczywistym miejscem do sprawdzenia był katalog Downloads
, ale tam nie było szukanego instalatora (był za toDocker.dmg
, ale to nie ten plik).
Będąc jeszcze w katalogu z plikami Safarii, przejrzałem zawartość pliku Downloads.plist
:
$ plistutil -i ./Downloads.plist
W historii pobierania znajdował się jeden wpis:
[...]
<date>2025-07-04T10:08:25Z</date>
<key>DownloadEntryURL</key>
<string>http://devexxxxxx.thm/Devexxxxxxxxx.pkg</string>
<key>DownloadEntrySandboxIdentifier</key>
<string>5E5E49EB-A07C-489C-B6D6-BCE05557044C</string>
<key>DownloadEntryBookmarkBlob</key>
[...]
Odpowiedzią na pytanie drugie było Develxxxxxxxxx.pkg
.
Pytanie 3. — data i czas instalacji
- Poziom trudności: średni 🟡
- Liczba punktów: 60
- Treść: Kiedy złośliwa aplikacja została zainstalowana w systemie?
Aby znaleźć czas instalacji pakietu, postanowiłem przeszukać plik install.log
, który znajdował się w katalogu /private/var/log
.
Po wyszukaniu w pliku nazwy instalatora znalazłem następujący wpis:
2025-07-04 xx:yy:zz-07 Lucass-Virtual-Machine installd[709]: Installed "Devexxxxxxxxxx" ()
Liczba „-07” przy czasie oznacza, że komputer był w strefie czasowej odsuniętej od UTC o siedem godzin. Z tego powodu odpowiedzią na pytanie był data i czas przesunięty o siedem godzin w przyszłość.
Pytanie 4. — uprawnienia TCC
- Poziom trudności: średni 🟡
- Liczba punktów: 60
- Treść: Które uprawnienie TCC zostało najpierw zażądane przez aplikację?
Uprawnienia TCC (Transparency, Consent and Control)pozwalają użytkownikowi na wyraźne przyznawanie aplikacjom dostępu do wrażliwych usług i danych (np. do kamerki, mikrofonu itd.).
Informacje na temat przydzielonych uprawnień znajdują się w katalogu ~/Library/Application Support/com.apple.TCC/TCC.db
(dostępny jest również plik dla całego systemu). Po otwarciu pliku TCC.db w przeglądarce baz danych szybko znalazłem pierwsze żądane uprawnienie:

Pytanie 5. — pełny adres URL do serwera C2
- Poziom trudności: trudny 🔴
- Liczba punktów: 120
- Treść: Jaki jest pełny adres URL C2, do którego aplikacja przesłała dane?
We wcześniej analizowanym pliku install.log był widoczny wpis wskazujący ścieżkę instalacji:
xxxx xxxx Lucass-Virtual-Machine installd[709]: PackageKit: Touched bundle /Applications/Devexxxxxxxx.app
Po przejściu do katalogu /Applications/Devexxxxxxxx.app
wystarczyło zgrepować rekursywnie katalog po frazie „http
„:
Resources/script:LR="http://c7.macos-uxxxxxxxxxxx.info:8080"
grep: Resources/MainMenu.nib/keyedobjects-101300.nib: plik binarny pasuje do wzorca
grep: Resources/MainMenu.nib/keyedobjects.nib: plik binarny pasuje do wzorca
Adres http://c7.macos-uxxxxxxxxxxx.info:8080
był odpowiedzią na pytanie piąte.
Pytanie 6. — pełny adres URL do serwera C2
- Poziom trudności: bonus 🌟
- Liczba punktów: 25
- Treść: Jakiego mechanizmu persistence używała aplikacja?
W ostatnim zadaniu w całym CTFie trzeba było znaleźć mechanizm, za pomocą którego aplikacja utrzymywała działanie w systemie.
Pierwszy mechanizm, który przyszedł mi na myśl to LaunchAgent
. Na początek sprawdziłem katalog systemowy /System/Library/LaunchAgents
, ale w nim był jedynie plik związany z agentem Spice.
Drugim katalogiem jakim sprawdziłem był katalog ~/Library/LaunchAgents
, w którym już jasno było widać plik autostartu złośliwej aplikacji:
┌──(bonk㉿bonx)-[~/mac/root]
└─$ cd Users/lucasrivera/Library/LaunchAgents
┌──(bonk㉿bonx)-[~/.../Users/lucasrivera/Library/LaunchAgents]
└─$ ls
com.developai.agent.plist DevelopAI.sh