Einführung
In der Welt der Linux-Administration wird netcat (nc) oft als „Schweizer Taschenmesser“ für die Arbeit mit Netzwerken bezeichnet. Das kompakte, aber leistungsfähige Werkzeug sendet und empfängt Daten über die Protokolle TCP und UDP. Auch wenn der Funktionsumfang von netcat begrenzt wirken mag, eignet es sich hervorragend, um Verbindungen zu testen, Netzwerkdienste zu debuggen und einfache Netzwerkkommunikation aufzubauen.
Was der Befehl kann
Netcat ist ein universelles Netzwerkwerkzeug, das in vielen Szenarien der Systemadministration und Entwicklung zum Einsatz kommt. Das sind die wichtigsten Möglichkeiten:
- Arbeit mit TCP/UDP – Verbindungen über beide Protokolle aufbauen und verwalten, um Netzwerkdienste zu testen.
- Überwachung von Ports – bestimmte Ports abhören, um eingehende Verbindungen zu analysieren.
- Datenübertragung – Informationen direkt über das Netzwerk zwischen Systemen übertragen.
- Chatfunktion – ein einfaches System zum Austausch von Textnachrichten zwischen Hosts einrichten.
- Portscans – offene Netzwerkdienste auf entfernten Systemen aufspüren.
- Tunneling – Netzwerkverkehr über alternative Ports oder Hosts umleiten.
- Proxy-Funktionen – Netzwerkoperationen in einfacher Form über Proxyserver abwickeln.
- Test-Webserver – schnell einfache HTTP-Endpunkte zum Testen bereitstellen.
Die wichtigsten Optionen des Befehls
Für die effektive Arbeit mit netcat sollten Sie die wichtigsten Kommandozeilenparameter kennen:
-6– IPv6-Unterstützung aktivieren (standardmäßig gilt -4 für IPv4)-h– Hilfe zu den verfügbaren Parametern ausgeben-i– Verzögerung zwischen Operationen festlegen (in Sekunden)-l– Modus zum Abhören eines Ports aktivieren-N– Verbindung nach der Dateiübertragung automatisch beenden-n– DNS-Auflösung abschalten, um direkt mit IP-Adressen zu arbeiten-P user_name– Benutzer für die Proxyverbindung angeben-x address:port– Adresse und Port des Proxys festlegen-p port– Port ausdrücklich angeben (wird meist automatisch bestimmt)-U– UNIX-Sockets für die Kommunikation zwischen Prozessen verwenden-u– auf das Protokoll UDP statt TCP umschalten-v– ausführliche Ausgabe einschalten-w– Timeout für die Verbindung in Sekunden festlegen-z– scannen, ohne Daten zu übertragen
Ports prüfen
Eine der Hauptaufgaben von netcat ist es, die Erreichbarkeit von Netzwerkdiensten zu prüfen. Verwenden Sie dafür die Kombination der Parameter -vz:
$ nc -vz 192.168.31.247 8080
$ nc -vz 192.168.31.247 1-1000 2>&1 | grep succeeded.png)
Screenshot mit einem Beispiel für die Ausführung des Befehls
Um UDP-Ports zu prüfen, fügen Sie den Parameter -u hinzu:
$ nc -vzu 192.168.31.247 1-1000 2>&1 | grep succeededBeachten Sie, dass UDP-Ports wegen der Besonderheiten des Protokolls immer als erreichbar angezeigt werden.
Ports abhören
Um Netzwerkaktivität zu überwachen, nutzen Sie den Abhörmodus:
$ nc -nlv 8080.png)
Screenshot mit einem Beispiel für das Abhören eines Ports
WARNING
Achten Sie bei TCP darauf, dass der Port frei ist – sonst erhalten Sie den Fehler „Already in use“. Denken Sie außerdem daran, dass niedrige Ports (< 1024) root-Rechte erfordern.
Dateien übertragen
Mit netcat lässt sich ein einfacher Datenaustausch zwischen Systemen einrichten. Beginnen wir mit einem einfachen Beispiel – einem Textchat.
Auf der empfangenden Seite:
$ nc -lp 8080.png)
Auf der sendenden Seite:
$ nc 0.0.0.0 8080Bei der Übertragung von Dateien funktioniert es genauso. Auf der empfangenden Seite:
$ nc -l 8080 > paste.txtAuf der sendenden Seite:
$ nc -N 0.0.0.0 8080 < copy.txtEinfacher Webserver
Mit netcat können Sie einen einfachen HTTP-Server aufsetzen. Der Funktionsumfang ist zwar begrenzt, für schnelle Tests ist das aber praktisch:
$ while true; do echo -e "HTTP/1.1 200 OK\n\n$(cat index.html)" | nc -l -w 1 8080; done.png)
Der Parameter -w 1 sorgt dafür, dass die Verbindung automatisch geschlossen wird, falls der Browser das nicht tut.
Remote-Shell
Netcat lässt sich auch für den Fernzugriff auf ein System nutzen. Der alte Parameter -e wurde zwar aus Sicherheitsgründen entfernt, es gibt aber alternative Methoden.
Auf der empfangenden Seite:
$ nc -lvnp 8080Auf der sendenden Seite:
$ rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | sh -i 2>&1 | nc 0.0.0.0 8080 >/tmp/f.png)
DANGER
Seien Sie mit Fernzugriff vorsichtig – er ist ein möglicher Angriffsweg. Richten Sie immer eine Firewall ein und halten Sie sich an die Grundsätze der Sicherheit.
Weitere Informationen
Vollständige Informationen zu den Möglichkeiten von netcat erhalten Sie mit:
man ncINFO
Denken Sie bei der Arbeit mit Netzwerkwerkzeugen an die Sicherheit. Dokumentieren Sie alle Änderungen und prüfen Sie regelmäßig die Einstellungen Ihres Netzwerkschutzes.
Unsere Ressourcen
Telegram-Kanal: https://t.me/f3cloud_news
Hosting-Website: https://f3cloud.com