Kolejnym wyzwaniem na platformie Hack The Box w ścieżce Starting Point jest maszyna Redeemer, oznaczona poziomem trudności Very Easy. W tym laboratorium analizuję konfigurację serwera Redis – magazynu struktur danych w pamięci – oraz sprawdzam skutki braku uwierzytelniania w publicznie dostępnej usłudze bazodanowej.

Skanowanie i identyfikacja usługi

Zadanie rozpoczynam od pełnego rekonesansu portów TCP na przydzielonym adresie IP maszyny docelowej. Aby sprawdzić cały zakres portów oraz zidentyfikować wersje uruchomionych usług, wykonuję skanowanie narzędziem nmap:

nmap -Pn -sV -p- 10.129.19.162

W poleceniu wykorzystałem następujące przełączniki:

  • Pominięcie wykrywania hosta (Skip Host Discovery) – flaga -Pn nakazuje traktować host docelowy jako aktywny, co zapobiega przerwaniu badania przy blokowaniu zapytań ICMP.
  • Wykrywanie wersji (Service Version Detection) – parametr -sV odpytuje otwarte porty, aby ustalić nazwę i wersję oprogramowania.
  • Pełny zakres portów (All Ports) – opcja -p- skanuje wszystkie 65535 portów TCP.

Wynik skanowania wskazuje otwarty port 6379/tcp:

Nmap scan report for 10.129.19.162
Host is up (0.061s latency).
Not shown: 65534 closed tcp ports (reset)
PORT     STATE SERVICE VERSION
6379/tcp open  redis   Redis key-value store 5.0.7

Na badanym hoście działa usługa Redis key-value store 5.0.7.

Połączenie z serwerem Redis

Do interakcji z serwerem bazodanowym wykorzystuję narzędzie redis-cli. Nawiązuję bezpośrednie połączenie z adresem maszyny docelowej:

redis-cli -h 10.129.19.162

W poleceniu użyto parametru:

  • Wskazanie hosta (Host Specification) – flaga -h określa docelowy adres IP, z którym nawiązywane jest połączenie.

Serwer akceptuje sesję bez żądania hasła i udostępnia interaktywną konsolę tekstową.

Eksploracja bazy danych i zdobycie flagi

Po uzyskaniu dostępu do konsoli sprawdzam stan instancji oraz statystyki bazy danych poleceniem INFO:

10.129.19.162:6379> INFO

W sekcji dotyczącej przestrzeni kluczy sprawdzam obecność zapisanych danych. Następnie wyświetlam listę wszystkich kluczy w bieżącej bazie:

10.129.19.162:6379> KEYS *

Wśród zwróconych wyników znajduje się klucz o nazwie flag. Aby odczytać przypisaną do niego zawartość, wykonuję polecenie GET:

10.129.19.162:6379> GET flag

Baza zwraca poszukiwany ciąg znaków, co pozwala na pomyślne zdobycie flagi i zaliczenie zadania.

Podczas pracy z bazą Redis wykorzystałem polecenia:

  • Informacje o instancji (Instance Information) – polecenie INFO wyświetla konfigurację, statystyki oraz stan bazy.
  • Przeszukiwanie kluczy (Key Search) – komenda KEYS * listuje wszystkie klucze pasujące do zadanego wzorca.
  • Pobranie wartości (Get Key Value) – polecenie GET flag zwraca wartość zapisaną pod wskazanym kluczem.

Podsumowanie

Laboratorium Redeemer pokazuje konsekwencje pozostawienia serwera Redis bez wymuszonego uwierzytelniania w sieci. Domyślny brak ochrony hasłem pozwala każdemu na natychmiastowy odczyt, modyfikację oraz usunięcie przechowywanych struktur danych. W celu zabezpieczenia instancji przed nieuprawnionym dostępem należy ustawić silne hasło w dyrektywie requirepass, ograniczyć nasłuchiwanie do lokalnego interfejsu pętli zwrotnej (bind 127.0.0.1) oraz zablokować port 6379 na poziomie zapory sieciowej.


Raport z testów można pobrać tutaj.