Netcat

Netcat ist ein kleines einfaches Programm von der Standardein- oder -ausgabe über Netzwerkverbindungen transportiert werden kann. Dabei arbeitet es auf Client- Server-Basis mit dem TCP-Protokoll. Es erfreut sich großer Beliebtheit und ist für nahezu jede Plattform verfügbar. Unter Kalilinux ist die ursprüngliche Variante  von Netcat aus dem Jahr 1996 zu finden, die weniger Möglichkeiten bietet, als die neuaufgelegte Variante von den Entwicklern von Nmap. Diese verfügt, neben anderen Neuerungen, über die Möglichkeiten mit IPv6 und SSL zu arbeiten.

Im folgenden Tutorial zeige ich, wie man eine Verbindung zwischen zwei Computern mit Hilfe von Netcat hinbekommt.

Serverseitig = meint den Computer auf dem Netcat gestartet wird und auf einem gewählten Port auf Verbindungsversuche horcht.

Clientseitig = meint den Computer mit dem man sich zum Computer verbindet auf dem Netcat eine Verbindungs erwartet.

 

Einfache Verbindung herstellen

Serverseitig:

Mit dem folgenden Befehl starten wir Netcat. Der Schalter -l steht für "listening" und der Port dahinter ist der Port auf dem Netcat lauschen soll. Wer eine UDP-Verbindung wünscht, der fügt zum -l noch ein "u" ein. Ich markiere es mal rot, weil es optional ist.

ncat -ul 3195

Clientseitig:

Nun muss auf der Clientseite ebenfalls Netcat gestartet werden. Dabei werden die Ziel-IP und der Ziel-Port (3195) angegeben. Netcat verbindet sich dann automatisch. Falls die Verbindung UDP stattfinden soll, so ist an diese Zeile zwischen Ziel-IP und -Port ein "-u" einzufügen. Ich markiere es mal rot, weil es optional ist.

 ncat 192.168.10.101 -u 3195

Wichtig ist zu wissen, dass es keine Rückmeldung über die Verbindung gibt. Gibt man nun einen String (bspw. das Wort "Test") ein, so wird dieser an den Server gesendet. Auf dem Server erscheint dann "Test".

Portscan mit dem alten Netcat

nc -v -n -z -w 1 192.168.10.101 1-1024

-v = verbose (ausführliche Informationen)
-n = keine DNS-Abfrage stellen (geht schneller)
-z = Zero I/O (SYN-ACK-RST)
-w =

 

Filetransfer durchführen

Netcat lässt sich auch für einen Filetransfer zwischen Client und Server gebrauchen.

Serverseite:

ncat -l -p 3195 > test.txt

Clientseite:

ncat -w 1 192.168.10.101 3195 < /home/hobbit/Schreibtisch/testtext.txt

-w 1 = "wait" in Sek bevor eine Verbindung als fehlgeschlagen gewertet wird.

 

Festplatten-Image von einem PC zum anderen per Netzwerk übertragen

Sagen wir, dass wir zwei PCs oder Server haben und das Festplatten-Image von einem PC zum anderen übertragen werden soll, damit der alte PC entsorgt werden kann.

Vorgehen: Beide PCs müssen mit einer Live-CD (Rescue-CD, Knoppix oder vergleichbares) gebootet werden.

Dann zuerst auf dem Ziel-PC folgendes ausführen:

netcat -l 44321 | dd of=/dev/sda

Und nun auf dem Quell-PC:

dd if=/dev/sda | netcat 192.168.47.102 44321

Die IP und Port sind natürlich anzupassen.

 

Remote-Shell des Zielsystems aufrufen

Zuletzt noch die Remoteshell, die sich mittels Netcat ausführen lässt. Nach Aufbau der Verbindung erhält der Administrator Zugang per Konsole auf der Serverseite.

Serverseite (Windowscomputer):

ncat -l -p 3195 -c cmd.exe

-c cmd.ext = Die Konsole (cmd.exe) wird bei erfolgreicher Verbindung ausgeführt.

Clientseite:

ncat 192.168.10.101 3195

Nun befindet man sich in der Windows Konsole (cmd.exe) und kann wie gewoht Befehle ausführen.