Netcat

Mit Netcat oder auch nc genannt, lassen sich Daten von der Standardein- oder -ausgabe durch eine Netzwerkverbindung über TCP oder UDP transportieren. Das Ganze läuft als Server und Client ab, dabei werden die Daten unverschlüsselt übermittelt. Das Anwendungsgebiet kann beispielsweise ein internes Netz sein, wo Daten ohne Sicherheitsbedürfnis rasch kopiert werden müssen.

Netcat gibt es für praktisch alle Plattformen, untenstehende Beispiele wurden auf einem Linuxsystem durchgeführt.

Um Daten empfangen zu können wird zuerst auf dem Zielrechner Netcat als Server initialisiert. Folgendes Beispiel lauscht (-l = listen) auf dem Port (-p = Port) 3000 und alle Daten werden in der Datei “kopie” gespeichert. Der Zielrechner lauscht solange auf diesem Port bis Netcat z.B. mittels strg + c abgebrochen wird.

Zielrechner::

nc -l -p 3000 > kopie

Um nun Daten senden zu können, wird auf einem anderen Rechner, nennen wir diesen Startrechner, Netcat aufgerufen, der eine Verbindung zum Zielrechner über den Port 3000 macht und die Datei “original” übermittelt.

Startrechner:

nc Zielrechner 3000 < original

Dabei spielt es keine Rolle in welcher Art die Daten vorliegen, Netcat leitet diese einfach weiter.

Im folgenden Beispiel wird der Inhalt des Arbeitsspeichers mittels dem Programm Disk Dump (dd) zum Zielrechner übermittelt. Das Pipe-Zeichen "|" bedeutet, dass das Ergebnis aus dd an Netcat weitergereicht wird.

Startrechner:

dd if=/dev/mem | nc Zielrechner 3000

Zielrechner:

nc -l -p 3000 > arbeitsspeicher

Auf dem Zielrechner werden dann die Arbeitsspeicherdaten in die Datei "arbeistspeicher" geschrieben.
Natürlich lassen sich so auch ganze Festplatten oder einzelne Partitionen über das Netz sichern.

Startrechner:

dd if=/dev/hda1 | nc Zielrechner 3000

Die Harddiskdaten werden auf dem Zielrechner mittels gzip komprimiert und dann in die Datei "hda1.gz" gespeichert.

Zielrechner:

netcat -l -p 3000 | gzip > hda1.gz

Netcat kann auch als Portscanner eingesetzt werden.
Die Option -z überprüft in diesem Beispiel, ob der SSH Port 22 offen ist und gibt dessen Status mittels -v aus.

netcat -vz Zielrechner 22

Ohne die Option -z initiiert Netcat eine Verbindung auf den Port 22, was bei einem offenen Port und einem laufenden SSH Server mit einem Banner wie z.B. SSH-2.0-OpenSSH_5.1 quittiert werden kann.

Es lassen sich auch ganze Port-Breiche absuchen, hier alle Ports zwischen 21 und 80. Die Option -w gibt das Timeout in Sekunden an.

netcat -vz -w 10 Zielrechner 21-80

Post to Twitter Post to Facebook Send Gmail

Leave a Reply

*