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
- FTP:
nc arnold.c64.org 21
- Telnet:
nc -t 1984.ws 23
- Versenden einer Email via SMTP
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:
-t
oder-C
schaltet NetCat in den Telnet-Modus (je nach Implementierung)<ip>
= IP-Adresse oder DNS-Name des Zielsystemes23
Telnet-Port
Beispiele:
Port-Scan
Auch als Port-Scanner lässt sich NetCat verwenden:
nc -vvznw 1 <ip> <port>
Parameter:
-vv
= verbose / very verbose ;)-z
= zero data = Keine Daten senden-n
= keine Namensauflösung (kein DNS)-w #
= Timeout in Sekunden zum Lesen<IP>
= IP-Adresse oder DNS-Name des Zielsystemes<Port>
= Port oder (je nach Implementierung) Port-Range, z.B.1-1024
alle Ports von 1 bis 102422,23,25,53,80,119
die angegebenen Ports20-25,53,80-123
Kombination der Möglichkeiten
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:
-l
startet den Listener, wartet auf eine eingehende Verbindung-p <port>
gibt den Port an<ip>
nur auf IP-Adresse lauschen (z.B. 127.0.0.1)- dann werden Anfragen von anderen Computern nicht entgegengenommen
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