Website-Suche

8 Netcat (nc)-Befehl mit Beispielen


Netcat (oder kurz nc) ist ein einfaches, aber leistungsstarkes Netzwerk-Befehlszeilentool, das zum Ausführen aller Vorgänge unter Linux im Zusammenhang mit TCP, < verwendet wirdUDP- oder UNIX-Domänen-Sockets.

Netcat kann zum Port-Scannen, zur Port-Umleitung und als Port-Listener (für eingehende Verbindungen) verwendet werden. Es kann auch zum Öffnen von Remote-Verbindungen und vielen anderen Dingen verwendet werden. Außerdem können Sie es als Hintertür verwenden, um Zugriff auf einen Zielserver zu erhalten.

In diesem Artikel erklären wir die Verwendungsbefehle von Netcat anhand von Beispielen.

So installieren und verwenden Sie Netcat unter Linux

Um das Netcat-Paket auf Ihrem System zu installieren, verwenden Sie den Standardpaketmanager für Ihre Linux-Distribution.

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

Sobald das Netcat-Paket installiert ist, können Sie in den folgenden Beispielen die Verwendung des Netcat-Befehls erlernen.

Port-Scannen

Netcat kann zum Port-Scannen verwendet werden: um herauszufinden, welche Ports geöffnet sind und Dienste auf einem Zielcomputer ausführen. Es kann einen einzelnen, mehrere oder eine Reihe offener Ports scannen.

Hier ist ein Beispiel: Die Option -z setzt nc so, dass es einfach nach lauschenden Daemons sucht, ohne tatsächlich Daten an diese zu senden. Die Option -v aktiviert den ausführlichen Modus und -w gibt eine Zeitüberschreitung für Verbindungen an, die nicht hergestellt werden können.

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

Übertragen Sie Dateien zwischen Linux-Servern

Mit Netcat können Sie Dateien zwischen zwei Linux-Computern oder -Servern übertragen. Auf beiden Systemen muss nc installiert sein.

Um beispielsweise eine ISO-Image-Datei von einem Computer auf einen anderen zu kopieren und den Übertragungsfortschritt zu überwachen (mit dem Dienstprogramm pv), führen Sie den folgenden Befehl auf dem Absender-/Servercomputer aus (auf dem die ISO-Datei vorhanden ist).

Dadurch wird nc im Abhörmodus (Flag -l) auf Port 3000 ausgeführt.

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

Führen Sie auf dem Empfänger-/Client-Computer den folgenden Befehl aus, um die Datei abzurufen.

nc 192.168.1.4 3000 | pv | tar -zxf -

Erstellen Sie einen Befehlszeilen-Chatserver

Sie können Netcat auch verwenden, um sofort einen einfachen Befehlszeilen-Messaging-Server zu erstellen. Wie im vorherigen Anwendungsbeispiel muss nc auf beiden Systemen installiert sein, die für den Chatroom verwendet werden.

Führen Sie auf einem System den folgenden Befehl aus, um den Chat-Server zu erstellen, der Port 5000 überwacht.

nc -l -vv -p 5000

Führen Sie auf dem anderen System den folgenden Befehl aus, um eine Chatsitzung mit einem Computer zu starten, auf dem der Nachrichtenserver ausgeführt wird.

nc 192.168.56.1 5000

Erstellen Sie einen einfachen Webserver

Mit der Option -l des nc-Befehls wird ein einfacher, unsicherer Webserver erstellt, um statische Webdateien zu Lernzwecken bereitzustellen. Um dies zu demonstrieren, erstellen Sie wie gezeigt eine .html-Datei.

vim index.html

Fügen Sie der Datei die folgenden HTML-Zeilen hinzu.

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

Speichern Sie die Änderungen in der Datei und beenden Sie den Vorgang.

Stellen Sie dann die obige Datei über HTTP bereit, indem Sie den folgenden Befehl ausführen, wodurch der HTTP-Server kontinuierlich ausgeführt werden kann.


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

Anschließend öffnen Sie einen Webbrowser und können über die folgende Adresse auf den Inhalt zugreifen.

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

Beachten Sie, dass Sie den Netcat HTTP-Server stoppen können, indem Sie [Strg+C] drücken.

Fehlerbehebung bei der Linux-Serververbindung

Eine weitere nützliche Verwendung von Netcat ist die Behebung von Serververbindungsproblemen. Hier können Sie mit Netcat überprüfen, welche Daten ein Server als Reaktion auf vom Client ausgegebene Befehle sendet.

Der folgende Befehl ruft die Homepage von example.com ab.

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

Die Ausgabe des obigen Befehls enthält die vom Webserver gesendeten Header, die zur Fehlerbehebung verwendet werden können.

Suchen Sie einen Dienst, der auf dem Port ausgeführt wird

Sie können auch Netcat verwenden, um Port-Banner zu erhalten. In diesem Fall erfahren Sie, welcher Dienst hinter einem bestimmten Port ausgeführt wird. Um beispielsweise zu erfahren, welche Art von Dienst hinter Port 22 auf einem bestimmten Server ausgeführt wird, führen Sie den folgenden Befehl aus (ersetzen Sie 192.168.56.110 durch die IP-Adresse des Zielservers). Das Flag -n bedeutet, DNS- oder Dienstsuchen zu deaktivieren.

nc -v -n 192.168.56.110 80

Erstellen Sie einen Stream-Socket

Netcat unterstützt auch die Erstellung von UNIX-Domänen-Stream-Sockets. Der folgende Befehl erstellt und überwacht einen UNIX-Domänen-Stream-Socket.

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

Erstellen Sie eine Hintertür

Sie können Netcat auch als Hintertür ausführen. Dies erfordert jedoch mehr Arbeit. Wenn Netcat auf einem Zielserver installiert ist, können Sie damit eine Hintertür erstellen, um eine Remote-Eingabeaufforderung zu erhalten.

Um als Hintertür zu fungieren, muss Netcat einen ausgewählten Port (z. B. Port 3001) auf dem Zielserver abhören und Sie können dann von Ihrem Computer aus wie folgt eine Verbindung zu diesem Port herstellen.

Dies ist der Befehl, der auf dem Remote-Server ausgeführt werden soll, wobei die Option -d das Lesen von stdin deaktiviert und -e den Befehl angibt, der auf dem Zielsystem ausgeführt werden soll.

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

Nicht zuletzt kann Netcat als Proxy für verschiedene Dienste/Protokolle verwendet werden, darunter HTTP, SSH und viele mehr. Weitere Informationen finden Sie in der Manpage.

man nc

In diesem Artikel haben wir 8 praktische Beispiele zur Verwendung von Netcat-Befehlen erklärt. Wenn Sie weitere praktische Anwendungsfälle kennen, teilen Sie uns diese über das unten stehende Feedback-Formular mit. Sie können auch eine Frage stellen.