Ein Tunnel für alle Fälle: So nutzt man Netcat

Ein Minimalchat ist zugegebenermaßen wenig spannend, darum hier eine Erweiterung des Konzepts: nc –l –p<Portnummer> > dateiname. Das > ist wichtig, es leitet alle eingehenden Daten in die Datei mit dem am Ende festgelegten Namen weiter. Ruft man nun am Client Netcat mit nc <IP-Adresse oder Hostname des Servers> <Port des Servers> < Dateiname, liest das Tool die angegebene Datei ein, schiebt sich durch den Netcat-Tunnel und schreibt sie auf dem Zielsystem wieder in das Dateisystem.

Weil das auch über einen offen gelassenen Port wie 80 (HTTP) oder 53 (DNS) funktioniert, ersetzt Netcat so ein FTP-Programm oder eine andere formelle Dateiübertragung. Am Ende muss der Anwender den Tunnel wieder schließen. Den Parameter -q, der nach Ende der Übertragung die Verbindung von allein abbaut, gibt es nur in der Unix-Version. Übrigens sind Kombinationen von Windows-Server und Linux-Client durchaus möglich. Viele Beispiele im Internet verwenden diese Netcat-Funktion, um komplette Festplatten-Images eines Computers über das Netz in eine Datei zu schreiben.

Zu Befehl

Netcat kann noch weit mehr. Der nächste Trick dürfte allerdings von vielen Admins nicht gern gesehen werden. Auf Wunsch startet das Tool nämlich eine Shell auf dem als Server fungierenden Computer, deren Ausgabe auf dem Client-Computer erfolgt. Der klassische Anwendungsfall ist ein gehacktes System, auf das der Angreifer über eine Sicherheitslücke Zugriff bekommen hat. Nun kopiert er Netcat auf das Opfer und startet das Tool: nc –l –p<Portnummer> -L –d –e cmd.exe.

Das Programm lauscht (-l) auf dem angegebenen Port (-p) auf Verbindungsversuche. Ein DOS-Fenster ist dabei nicht zu sehen, denn der Parameter -d für (detached) koppelt den Prozess von der DOS-Box ab. Klopft ein Netcat-Client an, führt die Serverinstanz eine MS-DOS-Eingabeaufforderung aus (-e), die auf dem Client angezeigt wird. Dort hat der Anwender alle Rechte, die zu dem Benutzer gehören, der Netcat am Server gestartet hat.

Der Parameter -L sorgt dafür, dass sich das Tool nach dem Ende der Session mit den gleichen Parametern erneut startet. Im Angriffsfall wird der Hacker die Verbindung vom Opfer aus starten, denn so tunnelt das Programm mit sehr hoher Wahrscheinlichkeit von innen nach außen durch eine Firewall. Heute dürfte ein Angriff (ohne Verschlüsselung) allerdings kaum gelingen: Moderne Firewalls überprüfen den durchgeleiteten Datenverkehr, und Netcat-Traffic wird mit Sicherheit erkannt. Dieses Prinzip funktioniert auch mit Telnet.

Wird der Netcat Server mit der Option -t gestartet (nc -l -p23 -t -e cmd.exe), reagiert er auch auf Telnet-Anfragen eines Clients. Das ist nützlich, wenn kein Netcat auf dem Client installiert ist. Das klappt natürlich auch mit anderen Servern, wie Mail- oder Webservern. So führt nc www.dict.org 2628 zu einer Konsole, die die dort definierten Kommandos bereit stellt. Ein DEFINE wn server hätte die Definition des Wortes server zur Antwort.

Themenseiten: Security-Praxis

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Ein Tunnel für alle Fälle: So nutzt man Netcat

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *