Inhaltsverzeichnis

netcat

NetzKatze oder das Schweizer-Taschenmesser des Netzwerkadministrators…

NetCat (nc) ist ein kleines universelles Werkzeug im Netzwerkbereich. Analog zu cat erlaubt NetCat das lesen -aber auch- von und in Netzwerkverbindungen.
Es gibt verschiedene Implementierungen von NetCat (gnu-netcat, netcat6, openbsd-netcat,nc für Windows,…). Diese unterscheiden sich teilweise in den verfügbaren Optionen und Fähigkeiten

Servertest

Besonders zum Testen (oder zum Bannergrabbing) eignet sich NetCat hervorragend:
echo -e 'GET / HTTP/1.1\r\nHost: wiki.butzel.net\r\n\r' | nc git.butzel.net 80

Dies gilt natürlich nicht nur für HTTP, sondern auch für andere Protokolle

echo -en "EHLO domain.tld\r\nMAIL FROM: ich@domain.tld\r\nRCPT TO:du@other.domain\r\nDATA\r\nSubject: Betreff\r\n\r\nMailtext. Blah laber fasel...\r\n\r\n.\r\nquit\r\n" | nc smtp.server.local 25

Telnet

nc -t <ip> 23 oder
nc -C <ip> 23
Parameter:

Beispiele:

Port-Scan

Auch als Port-Scanner lässt sich NetCat verwenden: nc -vvznw 1 <ip> <port>
Parameter:

Beispiel-Script für mehrere IP-Adressen

## gegeben sei eine Text-Datei 'ips.txt' mit  einer IP-Adresse je Zeile
while read IP
do
 nc -nvvzw 1 $IP 20-25,80,443,8080,8443 
done<ips.txt

Listener (Server)

nc -lp <port> oder
nc -l <ip> <port>
Parameter:

Web-Server

Dank des Listeners kann NetCat auch einen simplen WebServer repäsentieren:

Ausgabe einer statischen Webseite:

## Vorbereitungen zur Erstellung einer einfachen Seite mit Header
# Webseite:
echo "<html><head><title>Beispiel</title></head><body>Beispiel-Seite mit NetCat</body></html>" >> index.html
# HTTP-Header:
echo -en "HTTP/1.1 200 OK\r\nContent-Length: $(cat index.html|wc -c)\r\nContent-Type: text/html; charset=utf-8\r\nConnection: close\r\n\r\n" > index.http
# Zusammenführen 
cat index.html >> index.http && rm index.html 
 
## Webserver mit Netcat
while true; do nc -l