Tipps und Tricks mit dem Befehl netcat unter Linux
- 761
- 193
- Matteo Möllinger
NetCat ist ein vielseitiges Networking -Dienstprogramm, das zum Lesen von TCP- und UDP -Verbindungen an willkürlichen Ports verwendet werden kann (wie bei anderen Dienstprogrammen, die unter Linux verwendet werden, erfordern die Ports unter 1024 Root/Sudo -Berechtigungen). Standardmäßig verwendet NetCat TCP -Verbindungen, udp kann jedoch mit dem angegeben werden -u
Flagge. NetCat kann sowohl als Server als auch als Client verwendet werden. Wenn als Server verwendet wird -l
Flag wird verwendet, um auf eine Verbindung zuzuhören. Ähnlich wie beim CAT -Befehl kann NetCat Informationen von Stdin empfangen und an Stdout schreiben, wodurch es für Workflows mit Rohren und Umleitungen hervorragend ist. Der NC Der Befehl wird typischerweise verwendet, um Netcat für die Benutzerfreundlichkeit zu rufen.
In diesem Tutorial lernen Sie, wie man mit NetCat Folgendes macht:
- Machen Sie eine HTTP -Anfrage, um eine Webseite zu erhalten
- Chatten Sie mit Freunden über Maschinen hinweg
- Dateien zwischen Maschinen kopieren
- Port -Scan durchführen
- Meldungen von NetCat in einem Webbrowser anzeigen
- Erstellen und verbinden Sie eine Reverse Shell
Softwareanforderungen und Konventionen verwendet
Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Verteilungsunabhängige |
Software | Netcat |
Andere | Root -Berechtigungen zur Verwendung von Ports unter 1024 |
Konventionen | # - Linux -Befehle, die mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden sollen sudo Befehl$ - Linux -Befehle, die als regulärer nicht privilegierter Benutzer ausgeführt werden sollen |
Greifen Sie auf einer Webseite
WARNUNGNetCat -Verbindungen sind nicht verschlüsselt. Die folgenden Beispiele übertragen Daten im Clear. Verwenden Sie NETCAT nicht, um sensible Daten in nicht vertrauenswürdigen Netzwerken wie dem Internet und dem öffentlichen Wi-Fi zu übertragen. Wenn Sie Daten sicher übertragen müssen, sollten Sie OpenSSH in Betracht ziehen.
NETCAT kann verwendet werden, um willkürliche Verbindungen zu Netzwerkdiensten herzustellen. Infolgedessen kann es verwendet werden, um HTTP-Anforderungen an einen Webserver zu stellen, ähnlich wie ein Webbrowser. Lassen Sie uns die Indexseite von Google von Google schnappen.com.
Geben Sie die NC Befehl gefolgt von dem Gastgeber und das Hafen Sie möchten eine Verbindung zu einer Verbindung haben.
$ NC Google.com 80
Lassen Sie uns nun die HTTP -Anfrage stellen. Geben Sie Folgendes ein oder kopieren/einfügen und drücken Sie die Eingabetaste zweimal.
Get /Index.HTML HTTP/1.1
Sie sollten Ausgabe ähnlich wie dieser Screenshot sehen.
Greifen Sie auf der Website mit NetCatPlaudern
In diesem Beispiel geht davon aus, dass Sie 2 Computer im selben Netzwerk mit Hostnamen haben Host1 Und Host2. Diese Annahme wird auch in folgenden Beispielen erfolgen. So erstellen Sie eine NetCat -Hörverbindung auf Host1 Geben.
$ nc -lv 8888
Dies hört für Verbindungen auf Port 8888 zu. Der -v
Flag gibt die ausführliche Ausgabe an, die Ihnen weitere Informationen zu eingehenden Verbindungen erhalten.
Jetzt on Host2
eingeben:
$ NC HOST1 8888
Sie werden feststellen, dass jeder in das Terminal auf Host1 eingegebene Text an das Terminal auf Host2 gesendet wird und umgekehrt. Dies kann als Adhoc -Chat zwischen zwei Benutzern im selben Netzwerk verwendet werden.
Datei Übertragung
NetCat kann verwendet werden, um eine Datei von einem Computer zu einem anderen zu kopieren. Nehmen wir an, Sie haben eine Datei namens NCNotes.txt, von dem Sie übertragen möchten Host1
Zu Host2
Geben Sie auf Host1 Folgendes ein, um die Datei zu erstellen und eine eingehende Verbindung anzuhören, um sie auf Port 2222 zu übertragen:
$ echo "Dies sind meine NetCat -Notizen"> NCNotes.txt $ nc -l 2222 < ncnotes.txt
Geben Sie auf Host2 Folgendes ein, um die Datei zu kopieren/zu empfangen und sie dann in STDOut zu drucken, um zu überprüfen, ob die Dateiübertragung erfolgreich war.
$ nc host1 2222> ncnotes.txt $ cat ncnotes
Was ist, wenn Sie einen gesamten Ordner übertragen möchten und nicht nur eine einzige Datei? NetCat ist nicht in der Lage, dies selbst zu tun, daher müssen wir den TAR -Befehl nutzen.
Geben Sie Folgendes auf Host1 ein, um einen mit fünf Dateien gefüllten Ordner zu erstellen, und erstellen Sie dann ein Archiv und leiten Sie ihn mit NetCAT über das Netzwerk ein.
$ mkdir Dateien; Berühren Sie Dateien/1… 5 $ tar -cvz -Dateien | NC -L 8888
Geben Sie Folgendes ein Host2
Um den Ordner zu übertragen und zu überprüfen, ob er alle fünf Dateien enthält.
$ NC HOST1 8888 | tar -xvz $ ls Dateien
Auf Host1 the -C
Flag wird verwendet, um das Archiv zu erstellen, das in netcat geleitet wird, -v
wird für die ausführliche Ausgabe verwendet, damit wir visuelles Feedback haben, mit dem wir wissen können, dass dies geschieht und -z
wird verwendet, um das Archiv so zu komprimieren, dass die Netzwerkübertragung schneller ist. In unserem Beispiel macht die Komprimierung keinen großen Unterschied, da die Dateien Der Ordner ist mit leeren Dateien gefüllt, aber Sie möchten jedoch große Verzeichnisse/Dateien übertragen, daher ist es gut zu wissen. Auf Host2 the -X
Flag wird verwendet, um das Archiv zu extrahieren, das von NetCat eingeflochten wird, -v
ist für ausführliche Extraktion und ist -z
ist das Archiv zu dekomprimieren.
Port -Scan
NetCat kann als rudimentärer Portscanner verwendet werden, indem Sie die verwenden -z
Flagge.
Angenommen, Sie sind auf Host1
Und Sie möchten wissen, ob ein SSH -Server auf Host2 ausgeführt wird. Vorausgesetzt, es wird auf dem Standardport (22) ausgeführt und es gibt keine Firewall, die den Zugriff darauf blockiert, können Sie den folgenden Befehl verwenden, um festzustellen, ob der Dienst ausgeführt wird.
$ NC -ZV HOST2 22
NetCat kann auch eine Reihe von Ports scannen, um festzustellen, welche, wenn eine von ihnen geöffnet ist. Dies kann verwendet werden, um zu schließen, welche Dienste diese Maschine ausführen. Angenommen, Sie sind auf Host2
und Sie möchten sehen, ob Ports zwischen irgendwelchen Ports 1
Und 1024
sind offen Host1
; Sie können den folgenden Befehl verwenden.
$ NC -ZV HOST1 1-1024
Je nachdem, welche Version von NetCat Sie in Ihrem System installiert haben. Wenn ersterer der Fall ist, ist die Ausgabe sehr leicht zu lesen. Wenn der letztere der Fall ist, kann sich die Ausgabe als schwierig erweisen, und der folgende Befehl sollte stattdessen verwendet werden, damit nur geöffnete Ports angezeigt werden.
$ NC -ZV HOST1 1-1024 2> & 1 | Grep gelang es
Meldung im Browser anzeigen
An Host1
Gebe folgendes ein. Der -k
Flag hält die Verbindung am Leben, damit sie von derselben Maschine oder anderen Maschinen wieder verbunden werden kann. Ohne diese Flagge Host1
Wird aufhören, nach mehr Verbindungen zu hören, sobald die erste Verbindung hergestellt wurde.
$ echo "hallo da" | NC -LKV 5555
An Host2
einen Browser öffnen und navigieren zu Host1: 5555
Sie sollten die Wörter sehen Hallo
im Browser angezeigt.
Reverse Shell
NETCAT kann auch verwendet werden, um eine Reverse Shell einzurichten, um einen Computer über das Netzwerk aus der Ferne zu verwalten. Dies geschieht mit dem -e
Flagge. In diesem Beispiel möchten wir eine Verbindung zu einer Bash -Shell anstellen Host2
Um es aus zu verabreichen von Host1
.
An Host1
eingeben:
$ nc -lv 6666
An Host2
eingeben:
$ nc -v host1 6666 -e /bin /bash
Jetzt on Host1
Geben Sie Folgendes ein und es wird sich herausstellen, dass wir einen Fernzugriff auf die Bash -Shell an haben Host2
.
$ hostname $ whoami $ ls
Sie sollten den Hostnamen für sehen Host2
, der Benutzername des Benutzer, der initiiert wurde NC An Host2
und ihre Dateien. Viele Versionen von Netcat enthalten nicht die -e
Option aufgrund ihres Missbrauchspotenzials. Erstellen einer Remote -Shell auf einer Maschine mit einer Version von NetCAT, in der die Option -e nicht enthalten ist Host2
. Lösungen dafür gibt es für Bash, Python, Perl, PHP und mehr.
Verwandte Linux -Tutorials:
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Mastering -Bash -Skriptschleifen beherrschen
- Dinge zu installieren auf Ubuntu 20.04
- Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
- Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 1
- Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 3
- Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 4
- Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 2
- Einführung in genannte Pipes auf Bash Shell
- Tipps und Trick -Beispiele für nützliche Bash -Bash -Befehlszeilen - Teil 5
- « So installieren, konfigurieren und verwenden Sie Mutt mit einem Google Mail -Konto unter Linux
- So verfolgen Sie Systemanrufe, die von einem Prozess mit Strace unter Linux getätigt wurden »