Ricerca nel sito web

8 Comando Netcat (nc) con esempi


Netcat (o nc in breve) è uno strumento di rete da riga di comando semplice ma potente utilizzato per eseguire qualsiasi operazione in Linux relativa a TCP, < socket di dominioUDP o UNIX.

Netcat può essere utilizzato per la scansione delle porte, il reindirizzamento delle porte, come port listener (per le connessioni in entrata); può anche essere utilizzato per aprire connessioni remote e tante altre cose. Inoltre, puoi usarlo 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 tuo sistema, utilizza il gestore pacchetti predefinito per la tua distribuzione Linux.

yum install nc                  [On CentOS/RHEL]
dnf install nc                  [On Fedora 22+ and RHEL 8]
sudo apt-get install Netcat     [On Debian/Ubuntu]

Una volta installato il pacchetto netcat, puoi procedere ulteriormente per apprendere l'utilizzo 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 quali servizi eseguono su una macchina di destinazione. Può eseguire la scansione di una o più porte aperte o di un intervallo di porte aperte.

Ecco un esempio, l'opzione -z imposta nc semplicemente per cercare demoni in ascolto, senza effettivamente inviare loro alcun dato. L'opzione -v abilita la modalità dettagliata e -w specifica un timeout per la connessione che non può essere stabilita.

nc -v -w 2 z 192.168.56.1 22     #scan a single port
OR
nc -v -w 2 z 192.168.56.1 22 80  #scan multiple ports
OR
nc -v -w 2 z 192.168.56.1 20-25  #scan range of ports

Trasferisci file tra server Linux

Netcat ti permette di trasferire file tra due computer o server Linux 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 verrà eseguito nc in modalità di ascolto (flag -l) sulla porta 3000.

tar -zcf - debian-10.0.0-amd64-xfce-CD-1.iso  | pv | nc -l -p 3000 -q 5

E sul computer ricevente/cliente, esegui il comando seguente per ottenere il file.

nc 192.168.1.4 3000 | pv | tar -zxf -

Crea un server di chat da riga di comando

Puoi anche utilizzare Netcat per creare istantaneamente un semplice server di messaggistica da riga di comando. Come nell'esempio di utilizzo precedente, nc deve essere installato su entrambi i sistemi utilizzati per la chat room.

Su un sistema, esegui il comando seguente per creare il server di chat in ascolto sulla porta 5000.

nc -l -vv -p 5000

Sull'altro sistema, esegui il comando seguente per avviare una sessione di chat su un computer su cui è in esecuzione il server di messaggistica.

nc 192.168.56.1 5000

Creare un server Web di base

Con l'opzione -l del comando nc utilizzata per creare un server web di base e non sicuro per servire file web statici a scopo di apprendimento. Per dimostrarlo, crea 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 servi il file precedente su HTTP eseguendo il comando seguente, che consentirà l'esecuzione continua del server HTTP.


while : ; do ( echo -ne "HTTP/1.1 200 OK\r\n" ; cat index.html; ) | nc -l -p 8080 ; done

Quindi apri un browser web e puoi accedere al contenuto utilizzando il seguente indirizzo.

http://localhost:8080
OR
http://SERVER_IP:8080

Tieni presente che puoi interrompere il server HTTP Netcat premendo [Ctrl+ C].

Risolvere i problemi di connessione al server Linux

Un altro utilizzo utile di Netcat è risolvere i problemi di connessione al server. Qui puoi 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 scopi di risoluzione dei problemi.

Trova un servizio in esecuzione sul porto

Puoi anche utilizzare Netcat per ottenere banner di porta. In questo caso, ti dirà quale servizio è in esecuzione dietro una determinata porta. Ad esempio, per sapere quale tipo di servizio è in esecuzione dietro la porta 22 su un server specifico, esegui il seguente comando (sostituisci 192.168.56.110 con l'indirizzo IP del server di destinazione). Il flag -n significa disabilitare DNS o ricerche di servizi.

nc -v -n 192.168.56.110 80

Creare uno stream socket

Netcat supporta anche la creazione di socket di flusso del dominio UNIX. Il comando seguente creerà e resterà in ascolto su un socket del flusso del dominio UNIX.

nc -lU /var/tmp/mysocket &
ss -lpn | grep "/var/tmp/"

Crea una backdoor

Puoi anche eseguire Netcat come backdoor. Tuttavia, ciò richiede ulteriore lavoro. Se Netcat è installato su un server di destinazione, puoi utilizzarlo per creare una backdoor, per ottenere un prompt dei comandi remoto.

Per agire come backdoor è necessario che Netcat sia in ascolto su una porta scelta (ad esempio la porta 3001) sul server di destinazione e quindi puoi connetterti a questa porta dal tuo computer come segue.

Questo è il comando da eseguire sul server remoto dove 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, consultare la relativa pagina man.

man nc

In questo articolo abbiamo spiegato 8 esempi pratici di utilizzo dei comandi Netcat. Se conosci altri casi d'uso pratici, condividili con noi tramite il modulo di feedback riportato di seguito. Puoi anche fare una domanda.