# Raport z testów bezpieczeństwa

## Metadane raportu

| Pole                     | Wartość                                   |
|---------------------------|--------------------------------------------|
| Nazwa projektu / systemu  | Test penetracyjny – środowisko laboratoryjne (maszyna Fawn) |
| Adres IP hosta docelowego | 10.129.13.14 (wykryto również 10.129.13.25; podsieć: 10.129.13.5/24) |
| Typ testów                | Black-box, test penetracyjny infrastruktury sieciowej / usług |
| Zakres                    | Środowisko laboratoryjne platformy Hack The Box |
| Data przygotowania raportu | 2026-10-01 |
| Autor                     | slummer87 |

## 1. Wprowadzenie

Niniejszy raport przedstawia wyniki testu bezpieczeństwa przeprowadzonego w ramach ćwiczeń na platformie Hack The Box w środowisku laboratoryjnym (maszyna Fawn). Celem badania była weryfikacja odporności infrastruktury sieciowej na nieautoryzowany dostęp ze szczególnym uwzględnieniem usługi przesyłania plików (FTP), identyfikacja otwartych portów i wersji oprogramowania oraz sprawdzenie poprawności wdrożonych mechanizmów uwierzytelniania. Testy zrealizowano zgodnie z metodyką black-box w oparciu o scenariusz laboratoryjny.

## 2. Metodyka

Test penetracyjny przeprowadzono w następujących etapach:

1. **Rekonesans sieciowy i skanowanie portów** – identyfikacja aktywnych maszyn oraz weryfikacja dostępności portu 21/tcp w przydzielonym segmencie sieciowym za pomocą narzędzia `nmap`.
2. **Identyfikacja i analiza wersji usług** – ustalenie typu oraz wersji działającego demona FTP (`vsftpd 3.0.3`) pod kątem znanych podatności i błędów konfiguracyjnych.
3. **Weryfikacja mechanizmów uwierzytelniania** – próba nawiązania sesji z wykorzystaniem kont domyślnych/anonimowych (`anonymous`).
4. **Eksploitacja i potwierdzenie dostępu** – weryfikacja uprawnień do przeglądania i pobierania zasobów z serwera plików (plik dowodowy `flag.txt`).
5. **Analiza ryzyka i opracowanie rekomendacji** – ocena wpływu wykrytych luk oraz sformułowanie zaleceń naprawczych.

## 3. Przebieg testów

### 3.1. Rekonesans i skanowanie portów

Zgodnie z założeniami testu skoncentrowano się na weryfikacji dostępności usługi FTP, nasłuchującej domyślnie na porcie 21/tcp. W celu optymalizacji czasu skanowania w zadanym segmencie sieci wykonano ukierunkowane skanowanie:

```bash
nmap -p 21 --open -sV 10.129.13.5/24
```

Zastosowane parametry:
- `-p 21` – ograniczenie zakresu badania do portu 21,
- `--open` – raportowanie wyłącznie hostów z otwartym portem,
- `-sV` – detekcja wersji uruchomionych usług.

**Wynik skanowania:** W badanej podsieci zidentyfikowano maszyny z otwartym portem 21/tcp:

```text
Nmap scan report for 10.129.13.14
Host is up (0.18s latency).

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
Service Info: OS: Unix

Nmap scan report for 10.129.13.25
Host is up (0.15s latency).

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
Service Info: OS: Unix
```

Głównym celem dalszej analizy został host **10.129.13.14**, na którym działa usługa `vsftpd 3.0.3` na systemie klasy Unix.

### 3.2. Weryfikacja mechanizmów uwierzytelniania

Podjęto próbę nawiązania połączenia z usługą FTP przy użyciu standardowego klienta `ftp` i weryfikacji, czy serwer dopuszcza logowanie anonimowe:

```bash
ftp anonymous@10.129.13.14
```

Odpowiedź serwera:

```text
Connected to 10.129.13.14.
220 (vsFTPd 3.0.3)
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
```

**Wynik:** Serwer FTP zaakceptował poświadczenia użytkownika `anonymous` bez wymuszenia hasła (kod odpowiedzi `230 Login successful`), przydzielając nieautoryzowanemu użytkownikowi sesję interaktywną.

### 3.3. Potwierdzenie skutków podatności i odczyt danych

Po uzyskaniu dostępu do powłoki FTP zweryfikowano zawartość udostępnianego katalogu poleceniem `ls`:

```text
ftp> ls
```

W katalogu głównym serwera zidentyfikowano plik `flag.txt`. Zasób został pobrany na stację testera przy użyciu polecenia:

```text
ftp> get flag.txt
```

Odczytanie zawartości pobranego pliku stanowi jednoznaczny dowód możliwości nieautoryzowanego dostępu do poufnych informacji składowanych na serwerze.

## 4. Zidentyfikowane podatności

### 4.1. Zezwolenie na anonimowy dostęp do serwera FTP

| Parametr           | Opis |
|---------------------|------|
| **ID podatności**   | VULN-001 |
| **Host/port**       | 10.129.13.14 : 21/tcp (oraz 10.129.13.25 : 21/tcp) |
| **Kategoria**       | Niewłaściwe uwierzytelnianie / Dostęp anonimowy (CWE-287: Improper Authentication, CWE-306: Missing Authentication for Critical Function) |
| **Krytyczność**     | **Wysoka (High)** |
| **Opis**            | Serwer FTP `vsftpd 3.0.3` został skonfigurowany w sposób umożliwiający logowanie anonimowe (`anonymous FTP`). Dowolny użytkownik mający łączność sieciową z serwerem może zalogować się na konto `anonymous` bez podawania hasła i uzyskać dostęp do zasobów przechowywanych w katalogu głównym usługi. |
| **Dowód (PoC)**      | Połączenie poleceniem `ftp anonymous@10.129.13.14`, serwer zwrócił `230 Login successful`. Wykonanie polecenia `ls` ujawniło plik `flag.txt`, który następnie pobrano poleceniem `get flag.txt`. |
| **Wpływ**            | Możliwość naruszenia poufności danych poprzez pobieranie poufnych plików. W przypadku obecności uprawnień zapisu (write access) dla konta anonimowego istniałoby także ryzyko naruszenia integralności danych, umieszczenia złośliwego oprogramowania lub wyczerpania przestrzeni dyskowej. |
| **Prawdopodobieństwo wykorzystania** | Bardzo wysokie – podatność nie wymaga zaawansowanej wiedzy ani specjalistycznych narzędzi; dostęp realizowany jest za pomocą standardowego klienta FTP. |

### 4.2. Wykorzystanie nieszyfrowanego protokołu FTP do transmisji danych

| Parametr           | Opis |
|---------------------|------|
| **ID podatności**   | VULN-002 |
| **Host/port**       | 10.129.13.14 : 21/tcp (oraz 10.129.13.25 : 21/tcp) |
| **Kategoria**       | Przesyłanie danych w postaci jawnej (CWE-319: Cleartext Transmission of Sensitive Information) |
| **Krytyczność**     | **Średnia (Medium)** |
| **Opis**            | Tradycyjny protokół FTP przesyła wszystkie polecenia, dane uwierzytelniające oraz zawartość pobieranych/wysyłanych plików w postaci otwartego tekstu (plain text). W środowisku sieci współdzielonej komunikacja ta może zostać przechwycona przez osoby trzecie. |
| **Dowód (PoC)**      | Usługa nasłuchuje na standardowym porcie 21/tcp w trybie jawnym bez wymuszenia szyfrowania TLS/SSL (FTPS). |
| **Wpływ**            | Ryzyko podsłuchania transmisji w sieci (sniffing), kradzieży danych uwierzytelniających (w przypadku logowania imiennego) oraz przechwycenia wrażliwych plików transferowanych między klientem a serwerem. |
| **Prawdopodobieństwo wykorzystania** | Średnie – wymaga obecności atakującego na ścieżce przesyłu danych (atak typu Man-in-the-Middle) lub dostępu do tego samego segmentu sieci. |

## 5. Rekomendacje

Dla zidentyfikowanych podatności zaleca się wdrożenie następujących działań naprawczych:

1. **Wyłączenie logowania anonimowego:**
   W pliku konfiguracyjnym serwera vsftpd (najczęściej `/etc/vsftpd.conf`) należy upewnić się, że opcja `anonymous_enable` ma wartość `NO`:
   ```text
   anonymous_enable=NO
   ```
   Po zmianie konfiguracji należy zrestartować usługę systemową.

2. **Migracja na bezpieczne protokoły transferu plików:**
   - Rekomenduje się zastąpienie protokołu FTP bezpieczniejszym protokołem **SFTP** (SSH File Transfer Protocol), który domyślnie szyfruje kanał kontrolny i przesyłane dane oraz wykorzystuje silne uwierzytelnianie SSH.
   - Alternatywnie, jeśli wymagane jest zachowanie infrastruktury FTP, należy wdrożyć **FTPS** (FTP over TLS/SSL) z wymuszeniem szyfrowania zarówno kanału poleceń, jak i transferu danych.

3. **Izolacja użytkowników i ograniczenie uprawnień (chroot):**
   Użytkownicy serwera FTP powinni być ograniczeni wyłącznie do swoich dedykowanych katalogów domowych (mechanizm `chroot_local_user=YES`), bez możliwości przeglądania struktury katalogów systemowych.

4. **Segmentacja sieci i filtrowanie ruchu:**
   Dostęp do portów transferu plików powinien być ograniczony za pomocą zapory sieciowej (firewall) wyłącznie do zaufanych adresów IP i stacji roboczych personelu uprawnionego.

5. **Regularne aktualizacje i monitoring:**
   Należy dbać o regularną aktualizację oprogramowania serwerowego oraz wdrożyć logowanie zdarzeń (np. prób logowania, transferowanych plików) i ich monitorowanie w systemie SIEM.

## 6. Podsumowanie

W trakcie przeprowadzonych testów bezpieczeństwa hosta w środowisku Hack The Box zidentyfikowano dwie istotne podatności: **wysoką** (zezwolenie na anonimowe logowanie do serwera FTP i pobieranie plików bez uwierzytelnienia) oraz **średnią** (brak szyfrowania transmisji danych). Umożliwiły one testerowi bezproblemowe pobranie poufnego pliku dowodowego `flag.txt`. 

Wdrożenie przedstawionych zaleceń (wyłączenie anonimowego dostępu oraz przejście na bezpieczny protokół SFTP/FTPS) pozwoli skutecznie zabezpieczyć serwer przed nieautoryzowanym dostępem i wyciekiem danych.

## 7. Podsumowanie klasyfikacji podatności

| ID        | Nazwa podatności                                    | Krytyczność |
|-----------|-----------------------------------------------------|--------------|
| VULN-001  | Zezwolenie na anonimowy dostęp do serwera FTP       | Wysoka       |
| VULN-002  | Wykorzystanie nieszyfrowanego protokołu FTP (brak TLS)| Średnia     |

---
*Niniejszy raport został przygotowany na podstawie testów przeprowadzonych w środowisku laboratoryjnym platformy Hack The Box. Wyniki i rekomendacje mają charakter poglądowy i powinny zostać zweryfikowane przed wdrożeniem w środowisku produkcyjnym.*
