GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwendung von Netcat-Befehlen mit Beispielen

Der Befehl Netcat (nc) ist ein leistungsstarkes Tool zum Analysieren von Netzwerkverbindungen, zum Scannen nach offenen Ports, zum Übertragen von Daten usw. Es ist ein Netzwerkdienstprogramm zum Lesen und Schreiben in Netzwerkverbindungen unter Verwendung von TCP- oder UDP-Protokollen.

Wie installiere ich netcat

Es ist ein plattformübergreifendes Tool und für Linux, macOS, Windows und BSD verfügbar. Wir werden netcat auf einem Ubuntu 18.04-Rechner mit apt install installieren oder aus dem Quellcode kompilieren.

Die Installation mit apt ist ziemlich einfach, Sie müssen nur den folgenden Befehl im Terminal eingeben:

sudo apt install netcat

Auf CentOS 8

ncat kann mit dem nmap-Paket auf RHEL 8/CentOS 8 installiert werden. Verwenden Sie den dnf-Befehl wie unten beschrieben

sudo dnf install nmap

Wie installiere ich netcat aus dem Quellcode

Das Kompilieren von netcat aus dem Quellcode ist nicht so einfach wie die Installation über apt install , aber wenn Sie die folgenden Schritte befolgen, können Sie es ganz einfach installieren.

Laden Sie den Quellcode von der netcat-Website mit dem folgenden Befehl herunter

wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz

Extrahieren Sie das neu heruntergeladene Archiv. Dazu können Sie Folgendes ausführen:

tar -xzvf netcat-0.7.1.tar.gz

cd in das Verzeichnis, das den Quellcode des Pakets enthält, und geben Sie ./configure ein um das Paket für Ihr System zu konfigurieren.

cd netcat-0.7.1
./configure

Wenn Sie beim Ausführen des Befehls ./configure eine Fehlermeldung wie diese erhalten – „kein akzeptabler C-Compiler in $PATH gefunden“, vergewissern Sie sich, dass Sie den gcc-Compiler installiert haben. Um es zu installieren, geben Sie den folgenden Befehl ein:

apt-get install build-essential

Ausführen von configure dauert etwas.

Sobald die Konfiguration erfolgreich abgeschlossen wurde, führen Sie Folgendes aus:

sudo make

und

sudo make install

Sie können die Programmbinärdateien und Objektdateien aus dem Quellcodeverzeichnis entfernen, indem Sie make clean eingeben . Um auch die Dateien zu entfernen, die configure erstellt, führen Sie make distclean aus Befehl.

Netcat-Beispiele

Bevor Sie beginnen, einige Netcat-Befehle zu untersuchen, ist es wichtig zu wissen, dass Sie Root-Rechte benötigen, wenn Sie mit nc an bekannte Ports (0-1023) binden. Andernfalls können Sie nc als normaler Benutzer ausführen.

1) Testen Sie, ob ein bestimmter TCP-Port eines entfernten Hosts offen ist

nc -vn 192.168.40.146 2424

Ausgabe, wenn der Port 2424 auf dem Remote-Server geschlossen ist

nc: connect to 192.168.40.146 port 2424 (tcp) failed: Connection refused

Ausgabe, wenn der Port auf dem Remote-Server geöffnet ist (z. B. Port 22)

Connection to 192.168.40.146 22 port [tcp/*] succeeded!
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4

2) TCP-Port-Scannen auf einem Remote-Host durchführen

Der folgende Befehl überprüft die Ports von 20 bis 25 auf dem Remote-Host und gibt das Ergebnis aus.

nc -vnz -w 1 192.168.40.146 20-25

Die Ausgabe sieht so aus

nc: connect to 192.168.40.146 port 20 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 21 (tcp) failed: Connection refused
Connection to 192.168.40.146 22 port [tcp/*] succeeded!
nc: connect to 192.168.40.146 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 24 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 25 (tcp) failed: Connection refused

3) Führen Sie einen UDP-Port-Scan auf einem Remote-Host durch

nc -vnzu 192.168.40.146 1-65535

Die Ausgabe zeigt nur die Ports, die UDP-Verbindungen zulassen.

Connection to 192.168.40.146 2424 port [udp/*] succeeded!
Connection to 192.168.40.146 12354 port [udp/*] succeeded!

4) Senden Sie ein Test-UDP-Paket an einen entfernten Host

echo -n "udp test" | nc -u -w1 192.168.40.146 2424

Der obige Befehl sendet ein Test-UDP-Paket mit einer Zeitüberschreitung von 1 Sekunde an einen Remote-Host an Port 2424

5) Kopieren Sie eine Datei (z. B. test.txt) von einem Host auf einen anderen

Führen Sie auf dem Empfängerhost (in meinem Fall 192.168.40.146) Folgendes aus:

nc -lp 2424 > test.txt

Führen Sie auf dem Absenderhost (192.168.40.144) den folgenden Befehl aus:

nc 192.168.40.146 2424 < test.txt

Dadurch wird die Datei test.txt über den Port 2424 vom Sender-Host zum Empfänger-Host kopiert. Stellen Sie sicher, dass Sie eingehende Verbindungen auf Port 2424 auf dem Empfängerhost zulassen.

6) Übertrage ein ganzes Verzeichnis (einschließlich seines Inhalts) von einem Host auf einen anderen

Führen Sie auf dem Empfängerhost Folgendes aus:

nc -l 2424 | tar xvf -

Führen Sie auf dem Absenderhost den folgenden Befehl aus:

tar cvf - /path/to/dir | nc 192.168.40.146 2424

7) Erstellen Sie ein komprimiertes Backup der Festplatte (z. B. /dev/sdc) auf einem Remote-Host

Führen Sie auf dem Remote-Host Folgendes aus:

nc -lp 2424 | sudo dd of=/path/to/image.img.gz

Führen Sie auf dem lokalen Host den folgenden Befehl aus:

dd if=/dev/sdc | gzip -c | nc 192.168.40.146 2424

8) Wiederherstellen einer Festplatte (z. B. /dev/sdc) von einem komprimierten Disk-Image, das auf einem Remote-Host gespeichert ist

Führen Sie auf dem lokalen Host Folgendes aus:

nc -lp 2424 | gunzip -c | sudo dd of=/dev/sdc

Führen Sie auf dem Remote-Host den folgenden Befehl aus:

cat /path/to/image.img.gz | nc 192.168.40.144 2424

9) Ausführen eines unsicheren Online-Chats zwischen zwei Hosts

Führen Sie auf einem Host (z. B. 192.168.40.144) den folgenden Befehl aus:

nc -lp 2424

Führen Sie auf einem anderen Host (z. B. 192.168.40.146) den folgenden Befehl aus:

nc 192.168.40.144 2424

Nachdem Sie diese Befehle ausgeführt haben, wird alles, was Sie in beide Terminals eingeben, auf beiden Host-Rechnern angezeigt.

10) Führen Sie einen Webserver mit einer statischen Webseite aus

Führen Sie den folgenden Befehl auf dem lokalen Host (z. B. 192.168.40.144) aus, um einen Webserver zu starten, der test.html auf Port 80 bereitstellt. Beachten Sie, dass Sie mit sudo-Berechtigungen ausführen müssen, da sich 80 im Bereich bekannter Ports (1-1023)

while true; do sudo nc -lp 80 < test.html; done

Öffnen Sie nun http://192.168.40.144/test.html von einem anderen Host, um darauf zuzugreifen.

11) Überwachen Sie einen TCP-Port mit einer IPv6-Adresse

Sie können den folgenden Befehl verwenden, um zuzulassen, dass nc IPv6-Adressen verwendet, wenn ein TCP-Port überwacht wird.

nc -6 -l 2424

Überprüfen Sie, ob es mit dem folgenden Befehl funktioniert

sudo netstat -nap | grep 2424

Die Ausgabe sieht so aus

tcp6 0 0 :::2424 :::* LISTEN 15665/nc

12) Streamen Sie eine Videodatei von einem Server, damit der Client das gestreamte Video mit einem Videoplayer (z. B. mplayer) ansehen kann

Auf einem Videoserver (192.168.40.144):

cat sample_video.avi | nc -l 2424

Auf einem Client-Host (192.168.40.146):

NC 192.168.40.144 2424 | mplayer -vo x11 -cache 3000 -

Lesen Sie auch:

  • So verwenden Sie den Linux Netcat-Befehl als Port-Scanner
  • Wie man einen einfachen Chat mit netcat unter Linux erstellt

Wie Sie sehen können, ist netcat ein großartiges Tool für TCP/IP-Netzwerke und eines der beliebtesten Tools von Systemadministratoren, wenn es um netzwerkbezogene Fehlersuche und Experimente geht. Aus diesem Grund werden viele Linux-Distributionen mit vorinstalliertem Netcat ausgeliefert.


Linux
  1. So verwenden Sie die Befehle „cat“ und „tac“ mit Beispielen in Linux

  2. Verwendung des ethtool-Befehls mit Beispielen

  3. Verwendung des Linux-Hexdump-Befehls mit praktischen Beispielen

  4. SSH zu einem anderen Port als 22:So geht's (mit Beispielen)

  5. SCP-Befehl in Linux:Verwendung mit Beispielen

So verwenden Sie den Gunzip-Befehl unter Linux mit Beispielen

So verwenden Sie den Linux-rm-Befehl mit Beispielen

Verwendung von Netcat-Befehlen mit Beispielen

Nmap-Befehle mit Beispielen

So verwenden Sie Netcat zum Scannen offener Ports in Linux

Verwendung des Shutdown-Befehls mit Beispielen