Port 139 to port TCP wykorzystywany przez protokół NetBIOS Session Service, który umożliwia komunikację i udostępnianie zasobów między urządzeniami w sieci lokalnej. W nowoczesnych sieciach opartych na systemie Windows jest stopniowo zastępowany przez port 445, jednak nadal pozostaje aktywny na wielu urządzeniach i wymaga świadomego zarządzania ze względów bezpieczeństwa.
Port 139 pojawia się w wynikach skanowania sieci na tyle często, że każdy administrator i świadomy użytkownik powinien wiedzieć, co się za nim kryje. To nie przypadkowy numer – ma konkretne zadanie, historię i realne konsekwencje dla bezpieczeństwa sieci. Poniżej znajdziesz wszystko, czego potrzebujesz, aby zrozumieć jego rolę i podjąć świadome decyzje dotyczące jego konfiguracji.
Czym jest port 139?
Port 139 jest przypisany do usługi NetBIOS Session Service (w skrócie NetBIOS-SSN). NetBIOS, czyli Network Basic Input/Output System, to interfejs programistyczny opracowany przez IBM w 1983 roku, który umożliwia aplikacjom komunikację w sieci lokalnej. Port 139 obsługuje warstwę sesji tego protokołu, odpowiadając za nawiązywanie, utrzymywanie i kończenie połączeń między urządzeniami.
Organizacja IANA (Internetowa Agencja Przydzielania Nazw i Numerów) oficjalnie przypisała port 139 do protokołu TCP, choć technicznie może on działać również przez UDP w przypadku niektórych funkcji NetBIOS. W praktyce w środowiskach Windows port ten jest niemal wyłącznie spotykany jako port TCP.
Warto odróżnić port 139 od pokrewnych portów NetBIOS. Port 137 obsługuje usługę nazw NetBIOS (NetBIOS Name Service), port 138 zajmuje się przesyłaniem datagramów (NetBIOS Datagram Service), a port 139 odpowiada konkretnie za sesje, czyli połączenia dwukierunkowe wymagające potwierdzenia.
Do czego służy port 139 w praktyce?
Port 139 w środowiskach Windows odpowiada za udostępnianie plików i drukarek w sieci lokalnej za pośrednictwem protokołu SMB (Server Message Block) uruchamianego ponad warstwą NetBIOS. Oznacza to, że gdy komputer z systemem Windows 9x, NT, 2000 lub starszymi wersjami XP łączył się z folderem udostępnionym w sieci, nawiązywał połączenie właśnie przez port 139.
Usługa ta pozwalała komputerom na wzajemne rozpoznawanie się po nazwach NetBIOS zamiast adresów IP. Było to rozwiązanie praktyczne w sieciach lokalnych bez serwera DNS. Takie środowisko sieciowe przez wiele lat dominowało w małych firmach i sieciach domowych.
TCP czy UDP – jak działa port 139?
Port 139 działa przede wszystkim w oparciu o protokół TCP, ponieważ NetBIOS Session Service wymaga niezawodnego, połączeniowego transportu danych. TCP zapewnia kolejność pakietów, potwierdzenia odbioru i retransmisję w razie błędów – cechy niezbędne do stabilnej wymiany plików między urządzeniami.
Protokół UDP jest używany przez inne usługi NetBIOS, szczególnie przez NetBIOS Name Service na porcie 137 i NetBIOS Datagram Service na porcie 138. Datagramy UDP nie wymagają nawiązywania sesji, więc nadają się do szybkiego rozgłaszania nazw urządzeń w sieci. Port 139 w trybie UDP pojawia się sporadycznie i nie odgrywa tej samej roli co wersja TCP.
Poniższa tabela pokazuje podział portów NetBIOS wraz z protokołami transportowymi:
| Port | Protokół transportowy | Usługa NetBIOS |
|---|---|---|
| 137 | TCP / UDP | NetBIOS Name Service |
| 138 | UDP | NetBIOS Datagram Service |
| 139 | TCP (głównie) | NetBIOS Session Service |
| 445 | TCP | SMB bezpośrednio (bez NetBIOS) |
Port 139 a port 445 – jaka jest różnica?
Wraz z pojawieniem się systemu Windows 2000 firma Microsoft wprowadziła obsługę protokołu SMB bezpośrednio przez port 445, bez potrzeby korzystania z warstwy NetBIOS. Port 445 stał się domyślnym sposobem udostępniania zasobów w nowoczesnych sieciach Windows i jest szybszy oraz prostszy w konfiguracji.
Port 139 pozostał aktywny dla zachowania zgodności wstecznej ze starszymi systemami operacyjnymi. Gdy dwa urządzenia Windows próbują się połączyć, system najpierw próbuje użyć portu 445. Jeśli połączenie na tym porcie się nie powiedzie, system wraca do portu 139 jako rozwiązania zapasowego.
Jeśli w sieci nie ma żadnych urządzeń starszych niż Windows XP SP2, port 139 można bezpiecznie wyłączyć lub zablokować na zaporze sieciowej bez utraty funkcjonalności udostępniania plików.
Zagrożenia bezpieczeństwa związane z portem 139
Port 139 jest od lat jednym z najczęściej skanowanych portów przez narzędzia do testów penetracyjnych i przez złośliwe oprogramowanie. Otwarta usługa NetBIOS Session Service może ujawniać nazwę komputera, listę udostępnionych zasobów, nazwę domeny lub grupy roboczej, a w starszych konfiguracjach nawet listę lokalnych użytkowników.
Historyczne ataki takie jak exploit MS08-067 czy późniejszy WannaCry (2017) wykorzystywały protokół SMB przez port 139 lub 445 do propagacji w sieci lokalnej. Choć WannaCry celował głównie w port 445, wiele jego wariantów próbowało połączenia na obu portach. Otwieranie portu 139 na zewnętrzne połączenia internetowe jest poważnym błędem konfiguracyjnym.
Oto zagrożenia, które mogą wynikać z niepotrzebnie otwartego portu 139:
- Ujawnienie nazwy komputera i struktury sieci lokalnej dla nieuprawnionych skanerów
- Możliwość przeprowadzenia ataku typu brute-force na udostępnione zasoby bez szyfrowania
- Eksploatacja podatności w starszych implementacjach protokołu SMB nad NetBIOS
- Przechwycenie danych przesyłanych bez szyfrowania w protokole SMBv1
- Wykorzystanie portu jako wektora bocznego ruchu w sieci po początkowym włamaniu
Jak sprawdzić, czy port 139 jest otwarty?
W systemie Windows stan portu 139 można sprawdzić za pomocą wiersza poleceń. Polecenie netstat -an | find "139" wyświetli, czy port nasłuchuje na połączenia przychodzące. Stan LISTENING oznacza, że usługa NetBIOS Session Service jest aktywna.
Na systemach Linux do sprawdzenia służy polecenie ss -tlnp | grep 139 lub nmap -p 139 adres_ip dla zdalnego skanowania. Narzędzie nmap pozwala też na zidentyfikowanie wersji usługi działającej na porcie, co bywa pomocne przy audycie bezpieczeństwa.
Nigdy nie udostępniaj portu 139 przez przekierowanie portów na routerze lub regułę w zaporze sieciowej zezwalającą na ruch z zewnętrznego adresu IP. Usługa NetBIOS nie jest przeznaczona do komunikacji przez internet i nie oferuje odpowiednich mechanizmów uwierzytelniania dla takich połączeń.
Jak wyłączyć port 139 w systemie Windows?
Wyłączenie portu 139 w systemie Windows realizuje się przez wyłączenie protokołu NetBIOS over TCP/IP w ustawieniach karty sieciowej. Należy wejść do Panelu sterowania, następnie do ustawień połączeń sieciowych, otworzyć właściwości protokołu TCP/IPv4, kliknąć „Zaawansowane”, przejść do zakładki „WINS” i wybrać opcję „Wyłącz NetBIOS over TCP/IP”.
Alternatywnie port 139 można zablokować na poziomie Zapory systemu Windows, tworząc regułę blokującą ruch przychodzący na porcie 139 TCP. To rozwiązanie jest bezpieczniejsze w środowiskach, gdzie nie ma pewności, czy jakaś aplikacja nie korzysta z NetBIOS, a jednocześnie chce się ograniczyć dostęp z zewnątrz.
W środowiskach korporacyjnych wyłączanie portu 139 realizuje się przez zasady grupy (GPO), co pozwala zastosować zmianę jednocześnie na wszystkich komputerach w domenie. Przed wyłączeniem NetBIOS w dużej sieci warto przeprowadzić testy, ponieważ niektóre starsze aplikacje biznesowe nadal mogą wymagać tej usługi do prawidłowego działania.
