Opis maszyny
You were hired as a SOC Analyst for one of the biggest Juice Shops in the world and an attacker has made their way into your network.
Your tasks are:
* Figure out what techniques and tools the attacker used
* What endpoints were vulnerable
* What sensitive data was accessed and stolen from the environment
An IT team has sent you a zip file containing logs from the server. Download the attached file, type in „I am ready!” and get to work! There’s no time to lose!
Rekonesans
Zastrzeżenie: We wpisach opisujących CTFy nie znajdziesz gotowych wartości do wklejenia na THM, znajdziesz natomiast wskazówki jak samemu rozwiązać dany problem.
Analizę rozpocząłem od pliku access. Aby odpowiadać na pytania po kolei zacząłem od znalezienia narzędzi jakimi atakujący się posłużył:
Na początku widać użycie narzędzia Nmap:

Następnym narzędziem jest Hydra:

Kolejnym narzędziem jest SQLmap:

Przedostatnim narzędziem jakie się pojawia jest curl:

Ostatnim narzędziem jest feroxbuster:

dpowiedź na pierwsze pytanie to:
nmap, hydra, sqlmap, curl, feroxbuster
Wrażliwym endpointem okazało się być /rest/user/lgin – ponieważ po wykonaniu ataku bruteforce narzędziem Hydra widać, że z tego miejsca nasąpiła dalsza exfiltracja środowiska:

Endpoint podatny na atak typu SQL Injection znalazłem sprawdzając logi access.log, gdzie widać, że narzędzie SQLmap atakowało /rest/products/search?q=query…. Widać również od razu, że do ataku został wykorzystany parametr q:

Do pobrania plików atakujący próbował użyć następujące punkty końcowe:

Wydaje się, że ostatecznie udało się to za pomocą /ftp
Sprawdzając jaka część strony była odpowiedzialna za zescrapowanie adresów email, Hint podpowiada że chodzi o miejsce gdzie użytkownik może oceniać produkty. Faktycznie – z logów wynika, że chodzi o product review

Timestamp udanego ataku bruteforce, to ten, w którym serwer zwrócił kod 200:

Jakie informacje o użytkownikach wyciągnął atakujący za pomocą SQL Injection? Aby się tego dowiedzieć przeglądałem logi zawierające frazę user i znalazłem:

Co po zdekodowaniu daje:
/rest/products/search?q=qwert')) UNION SELECT id, email, password, '4', '5', '6', '7', '8', '9' FROM Users-
Odpowiedź jakie pliki próbowano pobrać znajduje się w pliku vsftpd.log:

Jaki serwis i konto zostało wykorzystane do pobrania plików z serwera? Z logów wynika, że było to konto anonimowe dla serwisu ftp:

Żeby znaleźć za pomocą jakiego serwisu i użytkownika podłączono się do serwera trzeba przejrzeć logi auth.log. Znalazłem:

W ten sposób znaleźliśmy komplet informacji.