root@echelon:~# cat /var/log/htb/meerkat-walkthrough.md
// WALKTHROUGH

[*] Meerkat Walkthrough - Analiza PCAP

W tym artykule postaram się przedstawić walkthrough kolejnego Sherlocka z HackTheBox. Jest to Sherlock typu Easy, który skupia się na analzie zawartości pliku pcap i json.

PRZYGOTOWANIE ŚRODOWISKA

Po rozpakowaniu archiwum otrzymujemy dwa pliki:

  • meerkat.pcap
  • meerkat-alerts.json

IDENTYFIKACJA APLIKACJI

Pytanie na to odpowiedź znajdujemy za pomocą programu 'jq', który posłuży nam do parsowania danych zawartych w pliku .json. Za pomocą poniższej komendy listujemy wszystkie sygnatury (tylko nazwy):

We believe our Business Management Platform server has been compromised. Please can you confirm the name of the application running?

jq -r '.[].alert.signature' meerkat-alerts.json | sort -u
Identyfikacja aplikacji Bonitasoft
Sygnatury alertów pokazujące aplikację Bonitasoft
Odpowiedź: BonitaSoft

RESEARCH PODATNOŚCI

W przypadku drugiego pytania musimy posłużyć się informacją którą udało nam się uzyskać w przypadku poprzedniego pytania, a konkretnie CVE-2022-25237. Szybki research na temat podatności, np: https://rhinosecuritylabs.com/application-security/cve-2022-25237-bonitasoft-authorization-bypass/

Możemy wywnioskować, że atakujący będzie próbować techniki Brute Force w celu uzyskania danych logowania użytkownika. Sprawdźmy nasz plik .pcap.

We believe the attacker may have used a subset of the brute forcing attack category - what is the name of the attack carried out?

Analiza ataków credential stuffing
Identyfikacja ataków credential stuffing w Wireshark

Zawężamy nasz ruch za pomocą filtra do ruchu 'http' następnie klikamy PPM na dowolny request typu POST i wybieramy Follow → HTTP Stream. Po obejrzeniu kilku takich przypadków widzimy, że atakujący wydaje się wykorzystywać rzeczywiste nazwy użytkownika i nietypowe hasła - być może pochodzące z wycieków. To może sugerować Credential stuffing.

Odpowiedź: Credential stuffing

Does the vulnerability exploited have a CVE assigned - and if so, which one?

Odpowiedź: CVE-2022-25237

OBEJŚCIE FILTRA AUTORYZACJI

Dalej analizując plik .pcap widzimy http://forela.co.uk:8080/bonita/API/pageUpload;i18ntranslation?action=add co wskazuje na dodanie parametru i18ntranslation tak jak to było opisane w analizie podatności RhinoSecurity.

Which string was appended to the API URL path to bypass the authorization filter by the attacker's exploit?

Odpowiedź: i18ntranslation

LICZENIE KOMBINACJI LOGOWANIA

Do odpowiedzi na kolejne pytanie wykorzystamy program tcpdump który pozwala analizować duże pliki .pcap i, np. przycinać je do interesujących nas danych, np. ruch tylko HTTP lub zapytania typu POST, aby kolejno wykorzystać odfiltrowany ruch na analizy w programie Wireshark.

Widzimy wszystkie próby unikalnych loginów i haseł już odfiltrowanych (install & install które się powtarzają):

How many combinations of usernames and passwords were used in the credential stuffing attack?

tcpdump -nn -s 0 -A -r meerkat.pcap \ | grep -oE "username=[^&]+&password=[^& ]+" \ | grep -v "username=install&password=install" \ | sort -u
Unikalne kombinacje loginów
Lista unikalnych kombinacji username/password

Dodatkowo dorzucając parametr 'wc -l' otrzymamy sam wynik:

tcpdump -nn -s 0 -A -r meerkat.pcap \ | grep -oE "username=[^&]+&password=[^& ]+" \ | grep -v "username=install&password=install" \ | sort -u \ | wc -l
Liczba kombinacji
Zliczenie unikalnych kombinacji
Odpowiedź: 56

POMYŚLNE LOGOWANIE

Na pytanie o hasło i login na które udało się zalogować ponownie wykorzystujemy tcpdump i poniższą komendę:

Which username and password combination was successful?

tcpdump -nn -s 0 -A -r meerkat.pcap \ | egrep "username=|HTTP/1.1 204"

Na samym dole powinniśmy widzieć login i hasło z kodem odpowiedzi 204. Do usunięcia znaków specjalnych możemy użyć CyberChef i URL Decode lub podmienić ręcznie.

Pomyślne logowanie
Identyfikacja pomyślnego logowania (kod 204)
Odpowiedź: [email protected]:g0vernm3nt

IDENTYFIKACJA SERWISU UDOSTĘPNIANIA TEKSTU

Na kolejne pytanie możemy spróbować odpowiedzieć za pomocą prostej komendy:

tcpdump -nn -s 0 -A -r meerkat.pcap | grep GET

Analizując wyniki pastes.io wygląda podejrzanie.

If any, which text sharing site did the attacker utilise?

Serwis pastes.io
Wykrycie wykorzystania serwisu pastes.io
Odpowiedź: pastes.io

NAZWA KLUCZA PUBLICZNEGO

Spróbujemy otworzyć adres który udało nam się znaleźć przy okazji poprzedniego pytania https://pastes.io/raw/bx5gcr0et8. Prawdopodobna nazwa pliku to 'hffgra4unv'.

Please provide the filename of the public key used by the attacker to gain persistence on our host.

Odpowiedź: hffgra4unv

PLIK ZMODYFIKOWANY DLA PERSISTENCE

Widzimy również, że ścieżka na którą plik został zapisany to /home/ubuntu/.ssh/authorized_keys

Can you confirm the file modified by the attacker to gain persistence?

Odpowiedź: /home/ubuntu/.ssh/authorized_keys

TECHNIKA MITRE ATT&CK

Technika zastosowana przez atakującego to Account Manipulation: SSH authorized Keys

Źródło: https://attack.mitre.org/techniques/T1098/004/

Can you confirm the MITRE technique ID of this type of persistence mechanism?

Odpowiedź: T1098.004

WNIOSKI

Ten walkthrough pokazał kompleksową analizę ataku wykorzystującego podatność w BonitaSoft. Poznaliśmy łańcuch ataków od credential stuffing, przez wykorzystanie CVE-2022-25237, aż po ustanowienie persistence za pomocą kluczy SSH.

Kluczowe umiejętności które wykorzystaliśmy:

  • Analiza plików PCAP za pomocą tcpdump i Wireshark
  • Parsowanie danych JSON za pomocą jq
  • Identyfikacja ataków credential stuffing
  • Research podatności CVE
  • Analiza technik persistence zgodnych z MITRE ATT&CK
  • Dekodowanie URL encoded data

Tego typu analizy są niezbędne podczas odpowiedzi na incydenty bezpieczeństwa, szczególnie przy podejrzeniu kompromitacji systemów przez zewnętrznych atackers.

« POWRÓT DO LISTY ARTYKUŁÓW

system@echelon:~# cat /etc/privacy_notice.txt

Ta strona używa Google Analytics do zbierania anonimowych informacji o ruchu na stronie. Kontynuując korzystanie z tej strony, wyrażasz zgodę na używanie plików cookie zgodnie z naszą Polityką Prywatności.