Netcat

Netcat – narzędzie sieciowe

Netcat to narzędzie, z którego korzystamy za pomocą wiersza poleceń. Umożliwia ono odczyt, zapis i rozwiązywanie problemów z połączeniami sieciowymi. Wykorzystuje się go do wszelkiego rodzaju zadań związanych z siecią, takich jak skanowanie portów, przesyłanie plików i debugowanie sieci. Netcat umożliwia łączenie się ze zdalnymi serwerami, wysyłanie i odbieranie danych przez połączenia sieciowe oraz przeprowadzanie jej diagnostyki. Używa się go do testowania usług sieciowych, a nawet do prostego przesyłania plików.

W tym artykule chciałbym pokazać osobom początkującym, w jaki sposób korzystać z netcat, ponieważ każdy użytkownik systemu Linux powinien go znać. Bez dalszego wstępu zaczynajmy.

 

Sprawdź, czego nauczysz się dzięki kursowi Grafany!

Udostępniamy darmowo ponad godzinny materiał z kursu. Przekonaj się, że jest idealny dla Ciebie!

Chcesz wziąć udział w kursie? Kliknij w link i obejrzyj co Cię czeka: https://asdevops.pl/demo-grafana/

 

 

 

 

Instalacja Netcat

Większość popularnych dystrybucji posiada netcat w swoim repozytorium. Do takich możemy zaliczyć Ubuntu, Debian, Fedora i CentOS Stream. W związku z tym, nawet jeżeli nie jest preinstalowany, to nie ma potrzeby ręcznej jego instalacji. W niektórych przypadkach nazwa pakietu może się nieznacznie różnić, dlatego ważne jest, aby sprawdzić dokumentację menedżera pakietów dla konkretnej dystrybucji. Na przykład w dystrybucji Debian instalację przeprowadzamy w następujący sposób:

sudo apt install netcat

W celu sprawdzenia, czy instalacja zakończyła się poprawnie, wpisujemy polecenie:

nc
usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]
      [-m minttl] [-O length] [-P proxy_username] [-p source_port]
      [-q seconds] [-s sourceaddr] [-T keyword] [-V rtable] [-W recvlimit]
      [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]]
      [destination] [port]

Jeżeli korzystasz z dystrybucji, używającej innego menedżera możesz spróbować po prostu w powyższym poleceniu podmienić go. Gdy nie odnajdziesz pakietu, to poszukaj w dokumentacji systemowej czy i pod jaką nazwą występuje.

Podstawowe korzystanie z narzędzia

Podstawowa składnia netcat wygląda następująco:

nc [opcje] [miejsce docelowe] [port]

Po nc określamy opcje, których chcemy użyć. Następnie podajemy miejsce docelowe, z którym chcemy się połączyć i numer portu.

W ramach przykładu, aby połączyć się ze zdalnym serwerem o adresie IP 192.168.0.10 na porcie 80, należy wpisać:

nc 192.168.0.10 80

Netcat możesz także użyć do nasłuchiwania połączeń przychodzących, określając opcję -l, i numer portu do nasłuchiwania:

nc -l 8080

Spowoduje to rozpoczęcie nasłuchiwania netcat na porcie 8080 w oczekiwaniu na połączenia przychodzące.

Obsługuje on różne opcje wiersza poleceń, których można użyć do modyfikacji jego zachowania. Te najczęściej używane to:

-v – wyświetlane są dodatkowe informacje o połączeniu;

-z – sprawdzamy, czy port jest otwarty bez faktycznego łączenia się z nim;

-u – używamy do wysyłania i odbierania pakietów UDP zamiast TCP;

-p – określamy port źródłowy, który ma być używany dla połączeń wychodzących;

-s – określamy źródłowy adres IP, który ma być używany dla połączeń wychodzących;

-w – wyznaczamy limit czasu w sekundach dla połączeń;

Łącząc ze sobą powyższe opcje, możesz tworzyć różnorodne połączenia sieciowe i wykonywać wiele zadań za pomocą tego narzędzia.

Używanie Netcat jako prostego klienta i serwera TCP/UDP

Netcat możesz używać jako prosty klient i serwer TCP/UDP. Aby móc ustawić go w taki sposób określamy adres IP lub nazwę hosta zdalnego serwera i numer portu, z którym chcemy się połączyć.

Na przykład, aby połączyć się z urządzeniem działającym pod adresem IP 192.168.0.100 na porcie 80, polecenie powinno wyglądać w następujący sposób:

nc 192.168.0.100 80

Po nawiązaniu połączenia wprowadasz polecenia lub dane, jakie mają być wysłane na serwer. Aby zamknąć połączenie, możesz użyć kombinacji klawiszy Ctrl+C. Powyższy przykład prezentuje, w jaki sposób użyć narzędzia jako klienta. Natomiast możemy chcieć używać go w drugą stronę, czyli jako serwera. Aby tego dokonać, musimy określić numer portu do nasłuchiwania i opcjonalnie adres IP, z którym chcemy się połączyć. W ramach przykładu, aby nasłuchiwać na porcie 1234 na wszystkich dostępnych interfejsach sieciowych, należy użyć następującego polecenia:

nc -l 1234

Gdy netcat działa jako serwer, będzie czekał, aż klient się z nim połączy. Gdy klient się połączy, wyświetli wszelkie dane, które zostaną do niego wysłane. Aby zakończyć działanie serwera, korzystamy z kombinacji klawiszy Ctrl+C.

Bardziej zaawansowane możliwości netcat

Netcat jest dobrym narzędziem do badania sieci. Dzięki niemu możemy skanować sieci w poszukiwaniu otwartych portów, których następnie można użyć w celu uzyskania dostępu do usług. Kolejną możliwością jest przechwytywanie banerów. Polega to na pobieraniu informacji o serwerze i aplikacji, które są wyświetlane na ekranie przed połączeniem się z serwerem. W przypadku netcat, baner jest zwykle tekstem wyświetlanym przez serwer na standardowym wyjściu lub błędach, przed ustanowieniem połączenia. Może to dostarczyć cennych informacji o usłudze i jej wersji.

Aby użyć netcat do skanowania portów, możesz określić ich zakres do przeszukiwania za pomocą opcji -z, po której następuje adres IP celu. Na przykład polecenie:

nc -zv 192.168.1.1 1-100

Przeskanuje porty od 1 do 100 na adresie IP 192.168.1.1. Jeśli port jest otwarty, netcat zgłosi się z komunikatem informującym, że połączenie się powiodło.

Aby użyć netcat do przechwytywania banerów, możesz użyć opcji -v wraz z adresem IP i numerem portu usługi, z którą chcesz się połączyć. Na przykład polecenie:

nc -v 192.168.1.1 80

Nawiąże on połączenie z portem 80 o adresie IP 192.168.1.1 i pobierze informacje o banerze wysyłane przez serwer działający na nim. Może to pomóc w identyfikacji oprogramowania serwera i jego wersji. Przydaje się to do testowania zabezpieczeń i oceny podatności na zagrożenia.

Używanie netcat do przesyłania plików

Netcat może być używany do przesyłania plików. Przydaje się, gdy potrzebujemy coś szybko przesłać i nie mamy konieczności konfigurowania dedykowanego systemu udostępniania plików. W celu wysłania pliku, za pomocą tytułowego narzędzia, komputer wysyłający musi działać jako serwer, a komputer odbierający musi działać jako klient.

Nadawca powinien użyć polecenia:

nc -l [port] < [plik]

Spowoduje to uruchomienie netcat w trybie nasłuchiwania na określonym porcie i odczytanie zawartości pliku do wysłania.

Na komputerze odbierającym powinno zostać wprowadzone polecenie:

nc [adres IP serwera] [port] > [plik]

Spowoduje to połączenie się z adresem IP serwera i określonym portem oraz zapisanie odebranych danych w określonym pliku.

Używanie Netcat do zdalnego dostępu do systemu

Dzięki Netcat możemy również nawiązać zdalne połączenie z powłoką systemową. Oznacza to, że możesz używać netcat do łączenia się ze zdalnym systemem i wykonywać w nim polecenia. Przydaje się, to jeżeli chcemy zdalnie zarządzać systemem i nie mamy dostępnego graficznego interfejsu użytkownika (GUI). Aby użyć netcat do wspomnianej czynności, musimy najpierw nawiązać połączenie ze zdalnym systemem. Możemy to zrobić, uruchamiając następujące polecenie w systemie zdalnym:

nc -l -p <port> -e /bin/bash

Spowoduje to uruchomienie netcat w tak zwanym trybie serwera i nasłuchiwanie na określonym porcie. Po nawiązaniu połączenia wykona pn polecenie /bin/bash, które zapewni dostęp do powłoki. W systemie lokalnym powinieneś użyć następującego polecenia, aby połączyć się z systemem zdalnym:

nc <zdalny_ip> <port>

Spowoduje to co przed chwilą wspomniałem i wyświetli monit powłoki. Teraz możesz wykonywać polecenia w systemie zdalnym, tak jakbyś był bezpośrednio zalogowany. Należy jednak zauważyć, że używanie netcat do zdalnego dostępu do powłoki może stanowić zagrożenie dla bezpieczeństwa, jeśli nie jest odpowiednio zabezpieczone. Powinniśmy zawsze używać mechanizmów szyfrowania i uwierzytelniania w celu ochrony połączenia i zapewnienia, że tylko autoryzowani użytkownicy mają dostęp do systemu zdalnego.

Przykłady używania narzędzia Netcat

Najczęściej netcat używa się do:

  • rozwiązywania problemów z siecią;
  • testów penetracyjnych;         
  • przesyłania plików;
  • zdalnego dostępu do powłoki;
  • monitorowania i rejestrowania zdarzeń;

Choć początkowo może nie wygląda, to netcat jest naprawdę potężnym narzędziem, z którego korzysta się do bardzo wielu różnych czynności. Jego wszechstronność i prostota sprawiają, że jest często używany przez administratorów oraz osób zajmujących się bezpieczeństwem cybernetycznym.

Przydatne opcje programu

Poniżej chcę zaprezentować najważniejsze opcje z ich skróconym opisem:

-l lub -L – ta opcja powoduje, że netcat nasłuchuje połączeń przychodzących. -l dotyczy połączeń TCP, podczas gdy -L dotyczy połączeń UDP;

-p – ta opcja określa numer portu, który ma być używany do nasłuchiwania lub łączenia się;

-n – ta opcja wyłącza rozpoznawanie nazw, co może przyspieszyć proces łączenia;

-v – ta opcja włącza szczegółowe dane wyjściowe, umożliwiając wyświetlenie bardziej szczegółowych informacji o połączeniu;

-u – ta opcja włącza tryb UDP, który jest używany do połączeń, które nie wymagają niezawodnego dostarczania danych;

-z – ta opcja jest używana do skanowania portów i nakazuje netcatowi skanowanie w poszukiwaniu otwartych portów;

-e – ta opcja umożliwia wykonanie programu lub skryptu i przesłanie danych wyjściowych przez netcat;

-c – ta opcja jest podobna do opcji -e, ale umożliwia wykonanie polecenia zamiast programu lub skryptu.

Co najważniejsze powyższe opcje można łączyć ze sobą, o czym już wspominałem. Umożliwia to tworzyć bardziej złożone polecenia, które spełnią nasze oczekiwania. Ważne jest, aby pamiętać, że niektóre z tych opcji mogą być potencjalnie niebezpieczne. Dlatego ważne jest, aby przed użyciem uważnie przeczytać dokumentację netcat.

Typowe błędy, których należy unikać

Ponieważ netcat jest potężnym narzędziem, istnieje kilka typowych pułapek, o których powinieneś wiedzieć. Jednym z największych zagrożeń podczas korzystania z niego jest przypadkowe otwarcie sieci na nieautoryzowany dostęp. Aby tego uniknąć, ważne jest, aby zawsze dwukrotnie lub nawet trzykrotnie sprawdzać swoje polecenia przed ich uruchomieniem i ograniczyć dostęp do netcat tylko do autoryzowanych użytkowników. Następnym potencjalnym problemem z nim jest to, że może zostać wykorzystany przez atakujących, którzy próbują uzyskać dostęp do Twojej sieci. Aby temu zapobiec, ważne jest, na bieżąco przeprowadzać aktualizację bezpieczeństwa i uważnie monitorować sieć pod kątem wszelkich oznak podejrzanej aktywności. Jako trzecie, netcat może być złożony i trudny w użyciu dla początkujących. Ucząc się, ważne jest, aby zacząć od prostych poleceń i stopniowo przechodzić do bardziej złożonych zadań czy też poleceń. Ponadto pomocne może być przeczytanie dokumentacji i samouczków, aby lepiej zrozumieć narzędzie i jego możliwości.

W związku z powyższym, zanim zaczniesz otwierać połączenia i używać tego narzędzia w codziennej pracy zapoznaj się z nim bardzo wnikliwie.

Jak bezpiecznie korzystać z Netcat

Netcat to potężne narzędzie, o czym się przekonałeś, czytając ten materiał. Można go używać do wielu celów. Ważne jest, jednak aby korzystając z niego zachować pewne środki ostrożności. Oto kilka porad:

Używaj go w zaufanej sieci – Netcat wysyła i odbiera dane w postaci zwykłego tekstu, co oznacza, że każdy, kto ma dostęp do sieci, może je przechwycić i przeczytać. Dlatego ważne jest, aby używać Netcat tylko w zaufanej sieci.

Ogranicz dostęp – Netcat może być używany do otwierania portów w twoim systemie, co może stanowić zagrożenie bezpieczeństwa, jeśli nie jest używane prawidłowo. Aby zminimalizować to ryzyko, otwieraj tylko niezbędne porty i ograniczaj do nich dostęp za pomocą zapór ogniowych i innych środków bezpieczeństwa.

Używaj szyfrowania – Netcat domyślnie nie zapewnia żadnego szyfrowania, co oznacza, że wrażliwe dane można łatwo przechwycić i odczytać. Aby temu zapobiec, podczas korzystania z netcat używaj protokołów szyfrowania, takich jak SSH lub SSL.

Użyj silnego hasła – Jeśli używasz netcat do zdalnego dostępu do powłoki, ważne jest, aby używać silnego i złożonego hasła, aby zapobiec nieautoryzowanemu dostępowi do systemu.

Stosując się do powyższych zaleceń, możemy bezpiecznie korzystać z netcat i zminimalizować ryzyko zagrożeń bezpieczeństwa wynikających z jego korzystania.

Podsumowanie

Netcat posiada szereg opcji i możliwości, dzięki którym jesteś w stanie wykonać ogromną ilość codziennych czynności. Jednak nieprawidłowe lub też bezmyślne wykorzystanie go może wywołać negatywne skutki. Dlatego nim zaczniesz korzystać z niego, dobrze się z nim zapoznaj. Pamiętaj, każde narzędzie, przy pomocy którego jesteś w stanie nawiązać połączenie stanowi pewnego rodzaju zagrożenie. Dlatego, jeżeli kiedykolwiek spotkasz się z podobnym programem, nim zaczniesz go używać, musisz bardzo dobrze wiedzieć, co dane polecenie robi oraz jakie ryzyko jest z nim związane.

Chcesz wiedzieć więcej na temat administracji? Przeczytaj nasze artykuły, a także weź udział w kursach!

 

 

 

Sprawdź, czego nauczysz się dzięki kursowi Grafany!

Udostępniamy darmowo ponad godzinny materiał z kursu. Przekonaj się, że jest idealny dla Ciebie!

Chcesz wziąć udział w kursie? Kliknij w link i obejrzyj co Cię czeka: https://asdevops.pl/demo-grafana/

 
 
 

Lekcja demo kursu Grafany!

X