Netcat (o nc in breve) è uno strumento da riga di comando di rete semplice ma potente utilizzato per eseguire qualsiasi operazione in Linux relativa a socket TCP, UDP o UNIX-domain.
Netcat può essere usato per la scansione delle porte, il reindirizzamento delle porte, come listener delle porte (per le connessioni in entrata); può anche essere usato per aprire connessioni remote e tante altre cose. Inoltre, è possibile utilizzarlo come backdoor per accedere a un server di destinazione.
In questo articolo, spiegheremo i comandi di utilizzo di Netcat con esempi.,
Come installare e utilizzare Netcat in Linux
Per installare il pacchetto netcat sul proprio sistema, utilizzare il gestore di pacchetti predefinito per la propria distribuzione Linux.
$ yum install nc $ dnf install nc $ sudo apt-get install Netcat
Una volta installato il pacchetto netcat, si può procedere ulteriormente per imparare l’uso del comando netcat nei seguenti esempi.
Scansione delle porte
Netcat può essere utilizzato per la scansione delle porte: per sapere quali porte sono aperte e servizi in esecuzione su una macchina di destinazione. Può eseguire la scansione di una singola o multipla o di un intervallo di porte aperte.,
Ecco un esempio, l’opzione-z
imposta nc per eseguire semplicemente la scansione dei demoni in ascolto, senza inviare loro alcun dato. L’opzione-v
abilita la modalità dettagliata e-w
specifica un timeout per la connessione che non può essere stabilito.,
il Trasferimento di File Tra Server Linux
Netcat consente di trasferire file tra due computer Linux o server, ed entrambi questi sistemi devono avere nc installato.
Ad esempio, per copiare un file immagine ISO da un computer a un altro e monitorare l’avanzamento del trasferimento (utilizzando l’utilità pv), eseguire il seguente comando sul computer mittente/server (dove esiste il file ISO).,
Questo eseguirà nc in modalità di ascolto (-l
flag) sulla porta 3000.
$ tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso | pv | nc -l -p 3000 -q 5
E sul computer ricevitore / client, eseguire il seguente comando per ottenere il file.
$ nc 192.168.1.4 3000 | pv | tar -zxf -
Creare una Riga di Comando del Server di Chat
Si può anche usare Netcat per creare una semplice riga di comando del server di messaggistica istantanea., Come nell’esempio di utilizzo precedente, nc deve essere installato su entrambi i sistemi utilizzati per la chat room.
Su un sistema, eseguire il seguente comando per creare il server di chat in ascolto sulla porta 5000.
$ nc -l -vv -p 5000
Sull’altro sistema, eseguire il seguente comando per avviare una sessione di chat su un computer in cui è in esecuzione il server di messaggistica.,
$ nc 192.168.56.1 5000
Creare un Server Web di Base
con il -l
opzione di nc comando utilizzato per creare una base, server web per servire web statici file per fini di apprendimento. Per dimostrarlo, creare un file.html
come mostrato.
$ vim index.html
Aggiungi le seguenti righe HTML nel file.
<html> <head> <title>Test Page</title> </head> <body> <p>Serving this file using Netcat Basic HTTP server!</p> </body></html>
Salva le modifiche nel file ed esci.,
Quindi servire il file sopra sopra su HTTP eseguendo il seguente comando, che consente al server HTTP di funzionare continuamente.
$ while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done
aprire un browser web e l’accesso ai contenuti tramite il seguente indirizzo.,
si noti che è possibile per fermare il Netcat HTTP server premendo .
Risoluzione dei problemi di connessione al server Linux
Un altro utilizzo utile di Netcat è quello di risolvere i problemi di connessione al server. Qui, è possibile utilizzare Netcat per verificare quali dati un server sta inviando in risposta ai comandi emessi dal client.
Il seguente comando recupera la home page di example.com.,
$ printf "GET / HTTP/1.0\r\n\r\n" | nc text.example.com 80
L’output del comando precedente include le intestazioni inviate dal server web che possono essere utilizzate per la risoluzione dei problemi.
Trova un servizio in esecuzione sulla porta
Puoi anche usare Netcat per ottenere banner di porta. In questo caso, ti dirà quale servizio è in esecuzione dietro una determinata porta. Ad esempio, per sapere che tipo di servizio è in esecuzione dietro la porta 22 su un server specifico, eseguire il seguente comando (sostituire 192.168.56.110 con l’indirizzo IP del server di destinazione). Il flag-n
significa disabilitare le ricerche DNS o di servizio.,
$ nc -v -n 192.168.56.110 80
Create a Stream Sockets
Netcat also supports creation of UNIX-domain stream sockets. The following command will create and listen on a UNIX-domain stream socket.
$ nc -lU /var/tmp/mysocket &$ ss -lpn | grep "/var/tmp/"
Create a Backdoor
You can as well run Netcat as a backdoor., Tuttavia, ciò richiede più lavoro. Se Netcat è installato su un server di destinazione, è possibile utilizzarlo per creare una backdoor, per ottenere un prompt dei comandi remoto.
Per eseguire una backdoor è necessario che Netcat ascolti su una porta scelta (ad esempio la porta 3001) sul server di destinazione e quindi sia possibile connettersi a questa porta dalla propria macchina come segue.
Questo è il comando da eseguire sul server remoto in cui l’opzione -d
disabilita la lettura da stdin e -e
specifica il comando da eseguire sul sistema di destinazione.,
$ nc -L -p 3001 -d -e cmd.exe
Ultimo ma non meno importante, Netcat può essere utilizzato come proxy per diversi servizi / protocolli tra cui HTTP, SSH e molti altri. Per ulteriori informazioni, vedere la sua pagina man.
$ man nc
In questo articolo, abbiamo spiegato 8 esempi pratici di utilizzo dei comandi Netcat. Se conosci altri casi d’uso pratico, condividi con noi tramite il modulo di feedback qui sotto. Puoi anche fare una domanda.