Netcat (oder kurz nc) ist ein einfaches, aber leistungsstarkes Befehlszeilentool für Netzwerke, das für die Ausführung von Operationen in Linux im Zusammenhang mit TCP -, UDP-oder UNIX-Domänensockets verwendet wird.
Netcat kann für Port-Scanning, Port-Umleitung, als Port-Listener (für eingehende Verbindungen) verwendet werden; Es kann auch verwendet werden, um Remote-Verbindungen 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 erklären wir die Netcat-Verwendungsbefehle 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 $ dnf install nc $ sudo apt-get install Netcat
Nach der Installation des netcat-Pakets können Sie in den folgenden Beispielen die Verwendung des netcat-Befehls näher erläutern.
Port-Scanning
Netcat kann zum Port-Scanning verwendet werden: Um zu wissen, welche Ports geöffnet sind und Dienste auf einem Zielcomputer ausgeführt werden. Es kann einen einzelnen oder mehrere oder eine Reihe von offenen Ports scannen.,
Hier ist ein Beispiel, die-z
Option setzt nc, um einfach nach abhörenden Daemons zu suchen, ohne tatsächlich Daten an sie zu senden. Die Option -v
aktiviert den ausführlichen Modus und -w
gibt eine Zeitüberschreitung für die Verbindung an, die nicht hergestellt werden kann.,
Dateien zwischen Linux-Servern übertragen
Mit Netcat können Sie Dateien zwischen zwei Linux-Computern oder-Servern übertragen, und 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 (mithilfe des PV-Dienstprogramms), führen Sie den folgenden Befehl auf dem Absender – /Servercomputer aus (sofern die ISO-Datei vorhanden ist).,
Dies wird nc im Listening-Modus (-l
flag) 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 – /Clientcomputer 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 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 Chatserver zu erstellen, der Port 5000 überwacht.
$ 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 der -l
option des nc-Befehls zum Erstellen eines einfachen, unsicheren Webservers zum Bereitstellen statischer Webdateien zu Lernzwecken. Um dies zu demonstrieren, erstellen Sie eine .html
Datei wie gezeigt.
$ vim index.html
Fügen Sie die folgenden HTML-Zeilen in die Datei ein.
<html> <head> <title>Test Page</title> </head> <body> <p>Serving this file using Netcat Basic HTTP server!</p> </body></html>
Änderungen in der Datei speichern und beenden.,
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 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done
Dann öffnen Sie einen Webbrowser und können über die folgende Adresse auf den Inhalt zugreifen.,
Beachten Sie, dass zu stoppen die Netcat-HTTP-server-durch drücken der Taste .
Fehlerbehebung bei der Linux-Serververbindung
Eine weitere nützliche Verwendung von Netcat besteht darin, Serververbindungsprobleme zu beheben. Hier können Sie mit Netcat überprüfen, welche Daten ein Server als Antwort auf vom Client ausgegebene Befehle sendet.
der folgende Befehl ruft Die Homepage von example.com.,
$ 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 Port ausgeführt wird
Sie können Netcat auch verwenden, um Port-Banner abzurufen. In diesem Fall erfahren Sie, welcher Dienst hinter einem bestimmten Port ausgeführt wird. Um beispielsweise zu wissen, welcher Diensttyp 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 Service-Lookups zu deaktivieren.,
$ nc -v -n 192.168.56.110 80
Create a Stream Sockets
Netcat also supports creation of UNIX-domain stream sockets. The following command will create and listen on a UNIX-domain stream socket.
$ nc -lU /var/tmp/mysocket &$ ss -lpn | grep "/var/tmp/"
Create a Backdoor
You can as well run Netcat as a backdoor., Dies erfordert jedoch mehr Arbeit. Wenn Netcat auf einem Zielserver installiert ist, können Sie damit eine Hintertür erstellen und eine Remote-Eingabeaufforderung abrufen.
Um als Backdoor zu fungieren, muss Netcat einen ausgewählten Port (z. B. Port 3001) auf dem Zielserver abhören und Sie können dann wie folgt eine Verbindung zu diesem Port von Ihrem Computer aus 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
Last but not least kann Netcat als Proxy für verschiedene Dienste/Protokolle verwendet werden, einschließlich HTTP, SSH und viele mehr. Weitere Informationen finden Sie auf der Manpage.
$ man nc
In diesem Artikel haben wir 8 praktische Anwendungsbeispiele für Netcat-Befehle erläutert. Wenn Sie andere praktische Anwendungsfälle kennen, teilen Sie uns dies über das untenstehende Feedback-Formular mit. Sie können auch eine Frage stellen.