Netcat è un potentissimo strumento di networking, in grado di leggere e scrivere su connessioni di rete sia TCP che UDP: in parole semplici, rappresenta il comando Unix/Linux “cat” per le reti, da cui prende il nome.
Nato nel lontano 1996, trova il primo grande successo nel 2000, quando si classificò secondo nel sondaggio relativo ai più utili software di network security promosso da Insecure.org: negli anni successivi ha sempre ottenuto “piazzamenti” di riguardo.
Netcat può essere utilizzato in tanti modi differenti, al punto che viene definito “il coltellino svizzero della sicurezza“.
Nei sistemi Linux è spesso installato di default, motivo per cui in questo caso facciamo qualche semplice esempio di utilizzo di netcat.
Piccola chat
Vogliamo creare un piccolo sistema di chat, sul nostro computer? Supponendo che questo abbia indirizzo 192.168.1.2 e sia possibile aprire la socket 3333, eseguiamo da linea di comando:
nc -l 3333
Da un altro computer nella stessa rete, possiamo chattare dopo aver digitato
nc 192.168.1.2 3333
Trasferimento file
Supponiamo di voler scaricare dal nostro PC (client) un file da un server (192.168.1.2). La procedura è la seguente: dal server apriamo una socket sulla porta 3333 su cui viene indirizzato il file che dovrà essere trasferito
cat file.iso | nc -l 3333
Per ricevere il file sul nostro client, digitiamo:
nc 192.168.1.2 3333 > file.iso
Port Scanner
Vogliamo utilizzare netcat come port scanner, ad esempio cercando quali porte sono aperte nell’intervallo 80-100? Il comando da eseguire è il seguente:
nc -z 192.168.1.2 -p 80-100
Come si può vedere, l’utilizzo di netcat è davvero vario e spesso il limite è proprio la nostra fantasia.