Netcat
| Netcat software | |
|---|---|
| Genere | Accesso remoto |
| Sviluppatore | *Hobbit* |
| Data prima versione | 28 ottobre 1995 |
| Ultima versione | 1.10 (20 marzo 1996) |
| Sistema operativo | Unix-like |
| Licenza | licenza libera (licenza libera) |
| Sito web | nc110.sourceforge.net/ |
Netcat è un programma open source a riga di comando di comunicazione remota, utilizzabile sia col protocollo TCP sia col protocollo UDP.
Netcat è stato pensato per essere utilizzato facilmente da altri programmi o scripts. Allo stesso tempo può essere uno strumento utilissimo per l'amministrazione di rete e di investigazione.
Nel 2000 Netcat fu votata da www.insecure.org come il secondo migliore programma per la sicurezza informatica. Anche nel 2003 e nel 2006 raggiunse il quarto posto per la stessa categoria. Netcat viene spesso chiamato come "il coltellino svizzero delle reti TCP/IP". Può essere utilizzato per moltissime funzioni: eseguire una scansione sulle porte di un computer remoto o ascoltare in locale, trasferire file, essere usato come una chat o persino per la creazione di una backdoor.
Licenza
[modifica | modifica wikitesto]Netcat è un programma open source con licenza libera. La licenza originale allegata al programma recita:
«Netcat è per intero una mia creazione, sebbene abbia usato molti altri codici come esempio. Con la speranza che possa essere utile è distribuito gratuitamente alla comunità di Internet senza restrizione alcuna, tranne l'attribuzione del merito a chi di dovere. Non ha licenza GPL, Berkley o altre insensatezze. L'autore non si assume NESSUNA responsabilità riguardo a come sarà usato. Se Netcat dovesse farti arricchire in qualche modo e ti sentissi generoso, spediscimi un assegno. Se siete legati in qualche modo alla Microsoft Network, rifatevi una vita. Siete sempre in tempo. Per commenti, domande e aggiornamenti hobbit@avian.org»
Modalità d'uso
[modifica | modifica wikitesto]Le modalità d'uso di Netcat sono essenzialmente due. Per connettersi a un computer remoto nc [opzioni] indirizzo.computer.remoto porta. Per ricevere localmente nc -l -p porta [opzioni].
Le opzioni di Netcat sono:
- -c shell commands come -e configura un comando /bin/sh da eseguire alla connessione
- -e filename configura un programma da eseguire alla connessione
- -b consente broadcasts
- -g gateway source-routing gateway
- -G num source-routing pointer: 4, 8, 12, ...
- -h apre l'help
- -i secs intervallo per l'invio di dato o lo scan di porte
- -k imposta l'opzione keepalive sul socket
- -l modalità ascolto, per connessioni in entrata
- -n indirizzo IP numerico
- -o file output esadecimale del traffico
- -p port numero della porta locale
- -r randomizza porte locali e remote
- -q secs alla fine della trasmissione dei dati termina dopo i secondi impostati
- -s addr imposta l'indirizzo sorgente utilizzato nella creazione della connessione
- -T tos imposta il protocollo (predefinito TCP)
- -t comunicazione TELNET
- -u usa il protocollo UDP
- -v fornisce informazioni (due volte fornisce più informazioni)
- -w secs Imposta il tempo di inattività dopo il quale terminare
- -z Imposta a zero il flag di I/O. Appena la porta si sarà aperta sarà immediatamente spenta e chiusa. (per lo scan)
Esempi
[modifica | modifica wikitesto]Client di posta
[modifica | modifica wikitesto]Netcat può essere usato come client di posta, esattamente come telnet.
nc mail.server.net 25
Simulare un webserver contenente una singola pagina
[modifica | modifica wikitesto]Per versioni Windows:
( echo "HTTP/1.0 200 Ok"; echo; cat pagina.htm; ) | nc -q 1 -l -p porta
oppure su terminale Linux:
while true; do nc -l -p porta -q 1 < pagina.htm; done
o per la versione OpenBSD:
while true; do nc -l porta < pagina.htm; done
Scanner delle porte di un computer remoto
[modifica | modifica wikitesto]nc indirizzo.computer.remoto porta1-porta2 -v -z
l'indirizzo potrà essere un ip o un host, Netcat proverà a connettersi con tutte le porte comprese nel range stabilito.
Trasferimento di file
[modifica | modifica wikitesto]Per il computer che riceve:
nc -l -p porta >file
Per il computer che invia
nc indirizzo.computer.remoto porta <file
Chat tra due computer
[modifica | modifica wikitesto]nc -l -p porta -v
nc indirizzo.computer.remoto porta -v
Backdoor
[modifica | modifica wikitesto]Sul computer remoto:
nc -l -p porta -e cmd.exe
se il sistema operativo è Windows;
nc -l -p porta -e /bin/bash
se il sistema operativo è Linux.
Sul computer locale:
nc indirizzo.computer.remoto porta -v
Versioni e varianti
[modifica | modifica wikitesto]Netcat è originariamente un programma Unix. L'ultima versione è del marzo 1996 disponibile all'indirizzo http://nc110.sourceforge.net/.
Esistono diverse implementazioni per altri sistemi inclusi MacOS e Windows.
Socat è un parente più complesso di Netcat. È più grande e più flessibile e ha più opzioni.
Cryptcat è una versione che comprende anche la criptazione dei dati inviati.
Altri progetti
[modifica | modifica wikitesto]
Wikimedia Commons contiene immagini o altri file su Netcat
Collegamenti esterni
[modifica | modifica wikitesto]- Una semplice guida a Netcat in Italiano, su megalab.it.
- OpenBSD nc(1) man page via OpenBSD
- GNU netcat, su netcat.sourceforge.net.
- Socat, su dest-unreach.org.
- Netcat for Windows CE (PocketPC, Windows Mobile)
- Advanced Netcat Tutorial, su adamsinfo.com. URL consultato il 5 febbraio 2010 (archiviato dall'url originale il 7 luglio 2011).
- Netcat - a couple of useful examples, su g-loaded.eu.
- Netcat useful examples, su catonmat.net.
- major features[collegamento interrotto], su nc110.sourceforge.net.
