Startseite>Cryptcat analysiert PCs im Netzwerk
Aus Raspberry Pi Geek 03/2014

Cryptcat analysiert PCs im Netzwerk

© Onatos, sxc.hu

Volle Kontrolle

Harald Zisler

Cryptcat hilft nicht nur bei der Netzwerkanalyse, sondern eignet sich auch zum Aufbau eines kleinen, verschlüsselten Privatchats.

README

Cryptcat arbeitet wie das klassische Netcat, baut aber verschlüsselte Verbindungen auf. Das erlaubt es, das praktische Tool weit über seinen ursprünglichen Zweck hinaus im Alltag einzusetzen.

Bei Installationen auf klassischen PCs oder kleineren Rechnern wie dem Raspberry Pi fehlen oft Werkzeuge zum Analysieren des Netzwerks. Das kleine Programm Cryptcat ermöglicht es, schnell und unkompliziert die netzwerkseitig sichtbaren Dienste eines Rechners abzufragen oder Daten zu übertragen. Dabei belässt es die Software bei einer übersichtlichen Anzahl von Funktionen, was das Einbinden in Shell-Skripte erleichtert.

Im Detail

Die Cryptcat-Projektseite [1] selbst gibt Auskunft über das grundlegende Konzept des Tools. In der Manpage verweisen die Entwickler auf das Programm Netcat, dessen Optionen sie bis auf wenige Ausnahmen übernommen haben. Es fehlen aber insbesondere “gefährliche” Schalter wie -e, welches das Ausführen von Kommandos auf dem entfernten Rechner ermöglicht.

Cryptcat steht für viele Distributionen bereit; die aktuelle Version finden Sie online [2]. Das Programm baut bei Transfers über das Netzwerk verschlüsselte Verbindungen auf und ermöglicht verschiedene Kontrollaufgaben sowie Datentransfers. Es setzt keine Root-Rechte voraus und verhält sich auf der Shell vielfach wie cat.

Zum Chiffrieren der Verbindungen nutzt Cryptcat den Algorithmus Twofish [3] mit Schlüssellängen von 128, 192 oder 256 Bit. Die dabei angewandte Feistelchiffre-Technik stellt sicher, dass das symmetrische Verfahren beim Entschlüsseln eindeutige Ergebnisse liefert.

Bauen Sie eine Verbindung zwischen zwei Rechnern auf, ohne dabei ein Kennwort anzugeben, kommt das fest eingebaute Passwort metallica zum Einsatz. Dies steht so in der Dokumentation, weswegen es sich empfiehlt, jenseits geschützter Netze immer eigene, schlecht nachvollziehbare Passwörter zu verwenden.

Bei der Wahl des Quellports haben Sie freie Hand: Je nach Aktion geben Sie einen einzelnen Port (beim Datentransfer) oder einen Bereich (bei Portscans) an. Im Empfangsmodus beendet sich das Programm normalerweise nach Abschluss der Aufgabe. Im Sendemodus müssen Sie unter Umständen selbst die Verbindung trennen. Das Programm arbeitet wahlweise mit TCP oder UDP-Paketen.

Sie erhalten keine Fehlermeldung, wenn das Senden nicht funktioniert – es sei denn, Sie verwenden die Optionen -v oder -vv. In jedem Fall steht der Exit-Code 0 für eine gelungene Übertragung und 1 für einen Fehlschlag. In der Bash fragen Sie diesen Wert mittels echo $? ab. Die Tabelle “Cryptcat-Optionen” zeigt eine Auswahl oft genutzter Parameter.

Cryptcat-Optionen

Parameter

Bedeutung

-k Passwort

Benutze Passwort zum Verbindungsaufbau

-l

Empfangsmodus

-p Port

Port benutzen

-z

Portscan-Modus

-u

UDP statt TCP (Standard) verwenden

-v

Ausgabe mit wenigen Meldungen

-vv

Ausführliche Ausgabe

-w Sekunden

Timeout für Verbindungen (sonst bis Abbruch durch Benutzer oder Befehl)

-n

Host- und DNS-Abfrage unterbinden, keine Namensauflösung

Ausgaben umleiten

Auf dem Zielrechner starten Sie den Empfang durch das Cryptcat-Kommando aus der ersten Zeile von Listing 1. Nun führen Sie auf einem anderen Rechner einen Befehl in der Shell aus und leiten dessen Ausgabe an das Programm auf dem Zielrechner weiter (Zeile 2).

Listing 1

 

$ cryptcat -k "Passwort" -l -p Port
$ df -h | cryptcat -k "Passwort" -w 1 Hostname_oder_IP Port

Das Kommando aus dem Beispiel in Listing 1 ermittelt den Füllstand der Festplatten auf dem Zielrechner mittels df und leitet die Ausgabe via Pipe um (Abbildung 1). Die Option -w 1 trennt die Verbindung eine Sekunde nach dem Ende der Übertragung.

Abbildung 1: Umleiten einer Ausgabe mittels Cryptcat: Das Foto zeigt den Sender mit hellem und das Ziel mit dunklem Hintergrund.

Abbildung 1: Umleiten einer Ausgabe mittels Cryptcat: Das Foto zeigt den Sender mit hellem und das Ziel mit dunklem Hintergrund.

Senden und empfangen

Das Senden von Daten setzt einen korrekten Befehl voraus, dessen Ausgabe sich für das Übertragen mit Cryptcat eignet. Wenn Sie auf der Gegenstelle die Daten nicht auf dem Bildschirm ausgeben möchten, nutzen Sie alternativ ein Kommando, das von der Standardeingabe liest.

Als Beispiel dient das Packen des Unterverzeichnisses versuch mit drei Dateien. Als Erstes schalten Sie den Zielrechner auf Empfang (Listing 2, Zeile 1). Dann packen Sie die Dateien und schicken den Datenstrom direkt über das Netzwerk zum Empfänger (Zeile 2). Brauchen Sie mehr Informationen beim Übertragen der Daten, setzen Sie die Option -v ein (Abbildung 2).

Listing 2

 

$ cryptcat -k "Passwort" -l -p Port | tar xv
$ tar cf - versuch/ | cryptcat -k "Passwort" -w 1 Rechner Port
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland