Wyszukiwanie w witrynie

8 Polecenie Netcat (nc) z przykładami


Netcat (lub w skrócie nc) to proste, ale potężne narzędzie sieciowe wiersza poleceń używane do wykonywania dowolnych operacji w systemie Linux związanych z TCP, NetcatUDP lub gniazda domeny UNIX.

Netcat może być używany do skanowania portów, przekierowywania portów, jako słuchacz portów (dla połączeń przychodzących); można go również używać do otwierania połączeń zdalnych i wielu innych rzeczy. Poza tym możesz użyć go jako backdoora, aby uzyskać dostęp do serwera docelowego.

W tym artykule wyjaśnimy na przykładach polecenia użycia Netcat.

Jak zainstalować i używać Netcat w systemie Linux

Aby zainstalować pakiet netcat w swoim systemie, użyj domyślnego menedżera pakietów dla swojej dystrybucji Linuksa.

yum install nc                  [On CentOS/RHEL]
dnf install nc                  [On Fedora 22+ and RHEL 8]
sudo apt-get install Netcat     [On Debian/Ubuntu]

Po zainstalowaniu pakietu netcat możesz przejść dalej, aby dowiedzieć się, jak używać polecenia netcat w poniższych przykładach.

Skanowanie portów

Netcat może być używany do skanowania portów: aby wiedzieć, które porty są otwarte i działają usługi na maszynie docelowej. Może skanować jeden, wiele lub cały zakres otwartych portów.

Oto przykład: opcja -z ustawia nc tak, aby po prostu skanowała w poszukiwaniu demonów nasłuchujących, bez wysyłania do nich żadnych danych. Opcja -v włącza tryb szczegółowy, a opcja -w określa limit czasu dla połączenia, którego nie można nawiązać.

nc -v -w 2 z 192.168.56.1 22     #scan a single port
OR
nc -v -w 2 z 192.168.56.1 22 80  #scan multiple ports
OR
nc -v -w 2 z 192.168.56.1 20-25  #scan range of ports

Przesyłaj pliki między serwerami Linux

Netcat umożliwia przesyłanie plików pomiędzy dwoma komputerami lub serwerami z systemem Linux i na obu tych systemach musi być zainstalowany nc.

Na przykład, aby skopiować plik obrazu ISO z jednego komputera na drugi i monitorować postęp przesyłania (za pomocą narzędzia pv), uruchom następujące polecenie na komputerze nadawcy/serwerze (na którym istnieje plik ISO).

Spowoduje to uruchomienie nc w trybie nasłuchiwania (flaga -l) na porcie 3000.

tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso  | pv | nc -l -p 3000 -q 5

Na komputerze odbiorcy/kliencie uruchom następujące polecenie, aby uzyskać plik.

nc 192.168.1.4 3000 | pv | tar -zxf -

Utwórz serwer czatu z wiersza poleceń

Możesz także użyć Netcat, aby natychmiast utworzyć prosty serwer przesyłania wiadomości z wiersza poleceń. Podobnie jak w poprzednim przykładzie, nc musi być zainstalowany na obu systemach używanych w pokoju rozmów.

W jednym systemie uruchom następujące polecenie, aby utworzyć serwer czatu nasłuchujący na porcie 5000.

nc -l -vv -p 5000

W drugim systemie uruchom następującą komendę, aby rozpocząć sesję czatu z komputerem, na którym działa serwer przesyłania wiadomości.

nc 192.168.56.1 5000

Utwórz podstawowy serwer WWW

Z opcją -l polecenie nc używaną do tworzenia podstawowego, niezabezpieczonego serwera WWW do udostępniania statycznych plików internetowych w celach edukacyjnych. Aby to zademonstrować, utwórz plik .html, jak pokazano.

vim index.html

Dodaj następujące linie HTML w pliku.

<html>
        <head>
                <title>Test Page</title>
        </head>
        <body>
                      <p>Serving this file using Netcat Basic HTTP server!</p>
        </body>
</html>

Zapisz zmiany w pliku i wyjdź.

Następnie udostępnij powyższy plik przez HTTP, uruchamiając następujące polecenie, co umożliwi ciągłą pracę serwera HTTP.


while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done

Następnie otwórz przeglądarkę internetową i uzyskaj dostęp do treści pod następującym adresem.

http://localhost:8080
OR
http://SERVER_IP:8080

Pamiętaj, że możesz zatrzymać serwer Netcat HTTP, naciskając [Ctrl+ C].

Rozwiązywanie problemów z połączeniem serwera Linux

Innym przydatnym zastosowaniem Netcat jest rozwiązywanie problemów z połączeniem z serwerem. Tutaj możesz użyć Netcat, aby sprawdzić, jakie dane wysyła serwer w odpowiedzi na polecenia wydane przez klienta.

Poniższe polecenie pobiera stronę główną example.com.

printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80

Dane wyjściowe powyższego polecenia zawierają nagłówki wysłane przez serwer WWW, które można wykorzystać do celów rozwiązywania problemów.

Znajdź usługę działającą na porcie

Możesz także użyć Netcat, aby uzyskać banery portów. W takim przypadku powie Ci, jaka usługa działa za danym portem. Na przykład, aby dowiedzieć się, jaki typ usługi działa za portem 22 na konkretnym serwerze, uruchom następujące polecenie (zamień 192.168.56.110 na adres IP serwera docelowego). Flaga -n oznacza wyłączenie wyszukiwania DNS lub usług.

nc -v -n 192.168.56.110 80

Utwórz gniazda strumieniowe

Netcat obsługuje także tworzenie gniazd strumieniowych w domenie UNIX. Poniższe polecenie utworzy i nasłuchuje w gnieździe strumieniowym domeny UNIX.

nc -lU /var/tmp/mysocket &
ss -lpn | grep "/var/tmp/"

Utwórz backdoora

Równie dobrze możesz uruchomić Netcat jako backdoora. Wymaga to jednak więcej pracy. Jeśli na serwerze docelowym jest zainstalowany Netcat, możesz go użyć do utworzenia backdoora, aby uzyskać zdalny wiersz poleceń.

Aby działać jako backdoor, potrzebujesz, aby Netcat nasłuchiwał na wybranym porcie (np. porcie 3001) na serwerze docelowym, a następnie możesz połączyć się z tym portem ze swojego komputera w następujący sposób.

Jest to polecenie przeznaczone do uruchomienia na zdalnym serwerze, gdzie opcja -d wyłącza odczyt ze standardowego wejścia, a -e określa polecenie do uruchomienia w systemie docelowym.

nc -L -p 3001 -d -e cmd.exe 

I wreszcie, Netcat może być używany jako serwer proxy dla różnych usług/protokołów, w tym HTTP, SSH i wielu innych. Aby uzyskać więcej informacji, zobacz jego stronę podręcznika.

man nc

W tym artykule wyjaśniliśmy 8 praktycznych przykładów użycia poleceń Netcat. Jeśli znasz inne praktyczne przypadki użycia, podziel się z nami za pomocą poniższego formularza opinii. Możesz także zadać pytanie.