HTB Sherlock - Heist Writeup

HTB Sherlock - Heist Writeup

Scenariusz Zadania

Forela niedawno otrzymała skargi od widzów, że transmisja na żywo na ich kanale YouTube wyświetlała dziwne treści. Zamiast standardowych materiałów firmowych, transmisja na żywo pokazywała filmy promujące oszustwa związane z kryptowalutami. Kanał był wykorzystywany do prezentacji produktów i usług firmy oraz do dostarczania treści edukacyjnych związanych z branżą, w której firma działała. Alonzo Spire, administrator IT w Forela, zarządzał kanałem YouTube. Zespół reagowania na incydenty został powiadomiony o incydencie, gdy tylko otrzymano skargi. System Alonzo został poddany analizie wstępnej, a artefakty zostały zebrane z jego systemu do analizy śledczej w celu potwierdzenia, w jaki sposób doszło do włamania na firmowy kanał.

(ang. Forela recently received complaints from viewers that the live stream on their YouTube channel was showing strange content. Instead of the usual company content, the live stream showed videos promoting cryptocurrency scams. The channel was used to showcase the company’s products and services and provide educational content related to the industry they were in. Alonzo Spire, the IT administrator of Forela, managed the YouTube channel. The incident response team was notified of an incident as soon as complaints were received. Alonzo’s system was triaged and artefacts were acquired from his system for forensics analysis to confirm how the company’s channel got hacked.)

Artefakty

Do rozwiązania zadania otrzymujemy następujące pliki:

  • Email.eml - wiadomość email otrzymana przez użytkownika,
  • Heist.pcap - zrzut komunikacji,
  • Kape_Acquisition.zip - częścową kopię zawartości dysku C. Po rozpakowaniu pliku Kape_Acquisition.zip łącznie do dyspozycji mamy 917 plików (Rys 1).
    Rys. 1. Pobrane artefakty.
    Rys. 1. Pobrane artefakty.

Rozwiązanie

Zadanie 1

O której godzinie podejrzany e-mail phishingowy został odebrany w skrzynce odbiorczej ofiary? (UTC) (ang. At what time was the suspected phishing email received in the victim’s inbox? (UTC))

W katalogu głównym zadania znajduje się plik Email.eml. Po odczytaniu jego zawartości zauważam, że jest to kopia maila zawierającego phishing. W polu “Odebrano” (Received) znajduje się poszukiwana przeze mnie informacja (Rys. 2).

Rys. 2. Czas otrzymania maila w skrzynce odbiorczej ofiary.
Rys. 2. Czas otrzymania maila w skrzynce odbiorczej ofiary.

Odpowiedź: 2023-04-11 08:55:22

Zadanie 2

Podaj URL, który został wykorzystany do pobrania pliku w ramach tego incydentu bezpieczeństwa. (ang. Please provide the download URL that was utilised to retrieve the file initially downloaded as part of this security event.)

Skoro użytkownik pobrał złośliwy załącznik, prawdopodobnie zrobił to za pomocą domyślnej przeglądarki systemowej. W katalogu użytkownika znalazłem, że miał zainstalowane dwie przeglądarki: Edge oraz Chrome. Założyłem, że skoro posiada Chrome, jest to jego główna przeglądarka. W pliku History, w tabeli downloads, znalazłem nazwę pobranego złośliwego pliku oraz ID potrzebne do dalszych poszukiwań (Rys. 3).

Rys. 3. Nazwa pobranego złośliwego załącznika.
Rys. 3. Nazwa pobranego złośliwego załącznika.
Następnie, w tabeli download_url_chains, odkryłem trzy wpisy. Oznacza to, że użytkownik został dwukrotnie przekierowany, zanim pobrał złośliwy załącznik. Ostatni wpis to adres, z którego pobrano złośliwy załącznik (Rys. 4).

Odpowiedź: https://doc-0s-5g-docs.googleusercontent.com/docs/securesc/sjpaukai4p255id8irbsaa0d1ds9k29c/o8kmueker1h57tkoe14o1osgi4uhbafl/1681208325000/03105725814018983462/13809461445078444789Z/1KsmFJYLzRefViXzeyWYOoojfewRmJgpp?e=download&uuid=d3c34b3f-c99f-42b3-84b3-dfc4ac4f609a&nonce=iojdml3dsj58i&user=13809461445078444789Z&hash=o5gmgdrljfhdo4hvrt3oparan4sq0hm5

Zadanie 3

Jak nazywa się plik, który podejrzewa się o początkowe pobranie w ramach tego incydentu bezpieczeństwa? (ang. What is the name of the file suspected to have been initially downloaded as part of this security event?)

Nazwa pobranego złośliwego załącznika z poprzedniego zadania (Rys. 3).

Odpowiedź: Forela-Partnership.zip

Zadanie 4

Kiedy ten plik został pobrany na system? (ang. When was this file downloaded onto the system?)

W tabeli downloads, w tym samym wierszu, w którym znajduje się nazwa poszukiwanego pliku, w kolumnie last_visit_time, która informuje o ostatniej wizycie użytkownika pod danym adresem URL, znalazłem wartość 13325681964931025. Jest to znacznik czasu zapisany w formacie WebKit/Chrome. Za pomocą narzędzia epochconverter przekonwertowałem ten znacznik na standardowy format i uzyskałem odpowiedź.

Rys. 5. Czas pobrania pliku zapisany w formacie WebKit/Chrome.
Rys. 5. Czas pobrania pliku zapisany w formacie WebKit/Chrome.

Odpowiedź: 2023-04-11 10:19:24

Zadanie 5

Jak nazywa się plik, który zainicjował złośliwą aktywność na komputerze? (ang. What is the name of the file that initiated malicious activity on the endpoint?)

Za pomocą polecenia MFTECMD.exe -f "$MFT" --csv ". ---csvf mft.csv" przetworzyłem plik MFT na format CSV, a następnie wykorzystałem Timeline Explorer do dalszej analizy. Znając czas pobrania złośliwego oprogramowania oraz ścieżkę pobrania pliku, znalazłem odpowiedź (Rys. 6).

Rys. 6. Nazwa złośliwego pliku po rozpakowaniu archiwum przez użytkownika..
Rys. 6. Nazwa złośliwego pliku po rozpakowaniu archiwum przez użytkownika.

Odpowiedź: Partnership.pdf.exe

Zadanie 6

Jaki typ pliku był wykorzystywany do zamaskowania złośliwego ładunku, aby zmylić użytkownika i nakłonić go do jego uruchomienia? (ang. What file type was the malicious payload disguised as to deceive the user into executing it?)

Na podstawie znalezionej nazwy złośliwego oprogramowania można wywnioskować, że atakujący próbował podszyć się pod plik PDF.

Odpowiedź: pdf

Zadanie 7

Z jakiej ścieżki katalogu został uruchomiony złośliwy plik? (ang. From which directory path was the malicious file executed?)

Do rozwiązania zadania otrzymaliśmy pliki Prefetch, zawierające informacje na temat uruchamianych aplikacji i serwisów na systemie operacyjnym ofiary. Wśród nich znalazłem plik PARTNERSHIP.PDF.EXE-CCA24020.pf, który odpowiada wcześniej znalezionej nazwie złośliwego oprogramowania. Za pomocą polecenia PECmd.exe -f C\Windows\prefetch\PARTNERSHIP.PDF.EXE-CCA24020.pf uzyskałem ścieżkę, z której złośliwe oprogramowanie zostało uruchomione (Rys. 7).

Rys. 7. Ścieżka uruchomienia złośliwego pliku.
Rys. 7. Ścieżka uruchomienia złośliwego pliku.

Odpowiedź: C:\USERS\ALONZO.SPIRE\DOCUMENTS\

Zadanie 8

Na pulpicie użytkownika znajdował się plik z notatką. Jakie były jej treść? (ang. There was a file on users desktop with a note. What were the contents of the note?)

Za pomocą MFTExplorer znalazłem katalog domowy użytkownika oraz jego pulpit. Na pulpicie znajduje się tylko jeden plik zawierający notatkę o nazwie reminder.txt (Rys. 8).

Rys. 8. Zawartość pliku reminder.txt.
Rys. 8. Zawartość pliku reminder.txt.

Odpowiedź: Contact Pakistan operations team to get updates and assist them if needed

Zadanie 9

O której godzinie złośliwy plik został uruchomiony? (ang. At what time was the malicious file was executed?)

Odpowiedź na to pytanie uzyskałem podczas rozwiązywania zadania 7. Informacja ta znajduje się w pliku Prefetch PARTNERSHIP.PDF.EXE-CCA24020.pf (Rys 9).

Rys. 9. Czas uruchomienia złośliwego pliku.
Rys. 9. Czas uruchomienia złośliwego pliku.

Odpowiedź: 2023-04-11 10:20:06

Zadanie 10

Złośliwy plik zrzucił na system dwa pliki, które przeprowadziły dalsze działania na komputerze. Jakie są nazwy tych dwóch plików? (w porządku alfabetycznym) (ang. The malicious file dropped 2 files on the system which performed further actions on the endpoint. What’s the name of these 2 files? (alphabetical order))

Analizując wynik polecenia PECmd.exe -f C\Windows\prefetch\PARTNERSHIP.PDF.EXE-CCA24020.pf, prawie na samym końcu otrzymanych wyników znalazłem informację o dwóch dodatkowych plikach exe (Rys. 10).

Rys. 10. Wykryte dwa nowo powstałe pliki exe.
Rys. 10. Wykryte dwa nowo powstałe pliki exe.

Odpowiedź: SI168290.EXE, UN598654.EXE

Zadanie 11

Jeden z plików z pytania 10 zrzucił na system dwa kolejne pliki. Jakie są ich nazwy? (w porządku alfabetycznym) (ang. One of the files from Question 10 dropped two more files onto the system. What are the names of these files? (in alphabetical order))

Oba wcześniej wykryte pliki, ponieważ zostały uruchomione, również posiadają pliki Prefetch. Sprawdziłem je za pomocą PECmd.exe. Analizując plik UN598654.EXE, znalazłem odpowiedź (Rys. 11).

Rys. 11. Wykryte kolejne dwa  powstałe pliki exe.
Rys. 11. Wykryte kolejne dwa powstałe pliki exe.

Odpowiedź: PRO5093.EXE, QU2705.EXE

Zadanie 12

Jaki jest złośliwy adres IP C2 i port? (ang. What’s the malicious C2 IP Address and port?)

Na początku próbowałem znaleźć coś w logach systemowych za pomocą narzędzia Chainsaw. Przeszukując logi dla każdego z wcześniej wspomnianych plików exe, nie znalazłem nic istotnego. Dlatego postanowiłem przyjrzeć się plikowi Heist.pcapng. Po wstępnym rozpoznaniu okazało się, że największa wymiana danych nie była przeprowadzona z serwerem C2, co okazało się ślepym zaułkiem. Znając jednak czas uruchomienia złośliwego oprogramowania, zdecydowałem się przejrzeć komunikację w tej okolicy czasowej. Czas wysłania pakietu 110775 oraz port wstępnie odpowiadały moim oczekiwaniom (Rys. 12).

Rys. 12. Wykryty adres IP C2 oraz port.
Rys. 12. Wykryty adres IP C2 oraz port.
Dopiero po sprawdzeniu zawartości komunikacji byłem w 100% pewny, że jest to komunikacja z serwerem C2 (Rys. 13).
Rys. 13. Zrzut komunikacji nawiązanej przez złośliwe oprogramowanie z serwerem C2.
Rys. 13. Zrzut komunikacji nawiązanej przez złośliwe oprogramowanie z serwerem C2.

Odpowiedź: 176.113.115.145:4125

Zadanie 13

Jaka jest rodzina złośliwego oprogramowania, do której należy plik? (ang. What’s the malware family of the malicious file?)

Analizując komunikację złośliwego oprogramowania z serwerem C2, nie znalazłem bezpośrednich informacji na temat rodziny tego oprogramowania. Dopiero po wyszukaniu składni wysyłanej przez serwer http://tempuri.org/Entity/Id1 (Rys. 13) znalazłem odpowiedź na tej stronie.

Rys. 14. Składnia poleceń wysyłanych przez serwer C2.
Rys. 14. Składnia poleceń wysyłanych przez serwer C2.

Odpowiedź: Redline

Zadanie 14

Który złośliwy plik wykradł dane z komputera? (ang. Which malicious file exfiltrated data from the endpoint?)

Muszę przyznać, że analiza komunikacji nie była rzeczą prostą. Posiłkując się tym artykułem, udało mi się zidentyfikować, który złośliwy plik nawiązał połączenie. Informacja na ten temat jest zawarta komunikacji (Rys. 15).

Rys. 15. Wykryty złośliwy plik wykradający dane z komputera ofiary.
Rys. 15. Wykryty złośliwy plik wykradający dane z komputera ofiary.

Odpowiedź: C:\Users\alonzo.spire\AppData\Local\Temp\IXP001.TMP\qu2705.exe

Zadanie 15

Jaki jest identyfikator procesu (PID) złośliwego pliku użytego do wykradania danych? (ang. What’s the process ID of the malicious file used to exfiltrate data?)

Na początku komunikacji złośliwe oprogramowanie pobiera podstawowe informacje o systemie oraz uruchomionych na nim procesach (Rys. 16).

Rys. 16. Wykryty pid procesu.
Rys. 16. Wykryty pid procesu.

Odpowiedź: 3924

Zadanie 16

Po tym incydencie pojawiło się kolejne ostrzeżenie o wycieku danych z innego serwera FTP, na którym były przechowywane kluczowe pliki. Nasz zespół TI podejrzewa, że mogło dojść do wycieku wewnętrznych poświadczeń. Jaki jest adres IP i hasło do serwera FTP, do którego Alonzo miał dostęp? (ang. There was another alert after this incident of data exfiltration from another FTP server hosting critical files. Our TI team believe there may have been an internal credential leak. What’s the IP address and the password of the FTP server which Alonzo had access to?)

Wykradzony adres IP oraz hasło do serwera FTP znajdują się w komunikacji z serwerem C2 (Rys. 17).

Rys. 17. Wykradzione adres IP, nazwa użytkownika oraz hasło do serwera FTP.
Rys. 17. Wykradzione adres IP, nazwa użytkownika oraz hasło do serwera FTP.

Odpowiedź: 13.45.67.23:TheAwesomeGrape

Zadanie 17

Jakie było hasło do kanału YouTube, który został zhakowany? (ang. What was the password of the YouTube channel which was hacked?)

Przeszukując komunikację po słowie kluczowym “youtube”, znalazłem hasło (Rys. 18).

Rys. 18. Wykradzione hasło do serwisu youtube.
Rys. 18. Wykradzione hasło do serwisu youtube.

Odpowiedź: yoUKnoWnoThiNGJoNSNoW

Zadanie 18

Alonzo zgłosił nieautoryzowane użycie swojej karty kredytowej i podejrzewa, że jego dane karty zostały skradzione. Proszę potwierdzić numer jego karty kredytowej. (ang. Alonzo reported unauthorised use of his credit card and assumed his card details were stolen. Please confirm his credit card number.)

To było niełatwe zadanie. Aby znaleźć numer wykradzionej karty kredytowej, uznałem, że łatwiej będzie skopiować tekst do edytora tekstu, takiego jak Sublime, i skorzystać z wyrażeń regularnych (regex). Numer karty kredytowej składa się z 16 cyfr, dlatego użyłem wyrażenia regex \d{16} i przeszukując cały tekst pod tym kątem (Rys. 19).

Rys. 19. Wykradziony numer karty kredytowej.
Rys. 19. Wykradziony numer karty kredytowej.

Odpowiedź: 4012873018191881

Zadanie 19

W ataku skradziono również dokument planu migracji, który zawierał pewne wrażliwe informacje wewnętrzne. Kto wysłał dokument do Alonzo? (ang. A migration plan document was also stolen in the attack which included some sensitive internal information. Who sent the document to Alonzo?)

Muszę przyznać, że to było ciekawe wyzwanie. Po znalezieniu w komunikacji z serwerem nazwy poszukiwanego pliku, okazało się, że jest to plik docx. Z dalszej części komunikacji nic nie dało się odczytać (Rys. 20).

Rys. 20. Początek pliku AWS-Assesment migration.docx.
Rys. 20. Początek pliku AWS-Assesment migration.docx.
Postanowiłem więc spróbować pobrać ten plik. Skopiowałem dane z pakietów, a następnie w edytorze hexed.it usunąłem niepotrzebne bity (Rys. 21). Aby dokładnie zidentyfikować początek i koniec pliku, posiłkowałem się informacjami z tej strony.
Rys. 21. Edycja pliku w hexed.it.
Rys. 21. Edycja pliku w hexed.it.
Po otwarciu pliku w edytorze Word, na samym dole dokumentu znalazłem podpis autora, co pozwoliło mi odpowiedzieć na zadane pytanie (Rys. 22).
Rys. 22. Znaleziony podpis twórcy odzyskanego dokumentu.
Rys. 22. Znaleziony podpis twórcy odzyskanego dokumentu.

Odpowiedź: Abdullah Yasin

Zadanie 20

Forela planuje rozbudowę infrastruktury w związku z globalną ekspansją. Jaka jest data, kiedy infrastruktura zostanie zaktualizowana? (ang. Forela is planning to upgrade its infrastructure as its expanding globally. What’s the date when the infrastructure will be upgraded?)

Zadanie to rozwiązałem w ten sam sposób, jak poprzednie. Odzyskując plik Infra upgrade.docx i odczytując jego zawartość, znalazłem odpowiedź (Rys. 23).

Rys. 23. Odzyskany plik Infra upgrade.docx.
Rys. 23. Odzyskany plik Infra upgrade.docx.

Odpowiedź: 2024-01-17

Zadanie 21

Ile bajtów danych zostało wysłanych przez złośliwy proces z pytania 14? Należy zauważyć, że dane PCAP nie zawierają odpowiedzi. (ang. How many bytes of data were sent by the malicious process found in question 14? Please note - the PCAP data does not provide the answer.)

Mała podpowiedź do rozwiązania tego zadania znajduje się w pytaniu - “dane PCAP nie zawierają odpowiedzi”. Zacząłem szukać odpowiedzi w innym miejscu. Na początku wyniki grep nie przyniosły rezultatów, więc zacząłem przeglądać, jakie inne pliki otrzymałem do rozwiązania zadania. W katalogu C\Windows\System32\SRU\ znalazłem plik SRUDB.dat, który jest odpowiedzialny za zbieranie diagnostyki z systemu Windows. Pomyślałem, że to może być dobry kierunek. Za pomocą polecenia SrumECmd.exe -f "C\Windows\System32\SRU\SRUDB.dat" -r "C\Windows\System32\config\SOFTWARE" --csv . przekonwertowałem zawarte w nim dane do plików CSV. Następnie otworzyłem plik 20240812173827_SrumECmd_NetworkUsages_Output.csv w Excelu i przeszukałem jego zawartość pod kątem złośliwego oprogramowania. W kolumnie BytesSent znalazłem odpowiedź (Rys. 24).

Rys. 24. Liczba bajtów wysłanych przez złośliwe oprogramowanie.
Rys. 24. Liczba bajtów wysłanych przez złośliwe oprogramowanie.

Odpowiedź: 107059