Netcat (onc
) è un programma di utilità da riga di comando che legge e scrive i dati attraverso le connessioni di rete, utilizzando i protocolli TCP o UDP. Si tratta di uno degli strumenti più potenti nella rete e gli amministratori di sistema arsenale, ed è considerato come un coltellino svizzero di strumenti di rete.
Netcat è multipiattaforma ed è disponibile per Linux, macOS, Windows e BSD. È possibile utilizzare Netcat per eseguire il debug e monitorare le connessioni di rete, eseguire la scansione di porte aperte, trasferire dati, come proxy e altro ancora.,
Il pacchetto Netcat è preinstallato su macOS e distribuzioni Linux popolari come Ubuntu, Debian o CentOS.
Netcat Syntax #
La sintassi più semplice dell’utilità Netcat assume la seguente forma:
nc host port
Su Ubuntu, è possibile utilizzarenetcat
onc
. Sono entrambi collegamenti simbolici alla versione OpenBSD di Netcat.
Per impostazione predefinita, Netcat tenterà di avviare una connessione TCP all’host e alla porta specificati., Se si desidera stabilire una connessione UDP, utilizzare l’opzione-u
:
nc -u host port
Port Scanning #
La scansione delle porte è uno degli usi più comuni per Netcat. È possibile eseguire la scansione di una singola porta o di un intervallo di porte.,
Per esempio, per eseguire la scansione per aprire le porte nel range 20-80 utilizzare il seguente comando:
nc -z -v 10.10.8.8 20-80
-z
opzione dirà nc
per eseguire la scansione solo per aprire le porte, senza inviare i dati a loro e il -v
possibilità di fornire più dettagliate informazioni.
L’output sarà simile a questo:
Se si desidera stampare solo le linee con le porte aperte, è possibile filtrare i risultati con il comandogrep
.,
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded!Connection to 10.10.8.8 80 port succeeded!
È inoltre possibile utilizzare Netcat per trovare il software del server e la sua versione. Per esempio, se si invia un comando “EXIT” per il server di default la porta SSH 22 :
echo "EXIT" | nc 10.10.8.8 22
L’output sarà simile a questa:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4Protocol mismatch.
Per eseguire la scansione per le porte UDP semplicemente aggiungere il -u
opzione per il comando, come illustrato di seguito:
nc -z -v -u 10.10.8.8 20-80
in Genere, Nmap è uno strumento migliore di Netcat per il complesso di port scanning.,
Invio di file tramite Netcat #
Netcat può essere utilizzato per trasferire dati da un host a un altro creando un modello client / server di base.
Questo funziona impostando Netcat in ascolto su una porta specifica (usando l’opzione-l
) sull’host ricevente e quindi stabilendo una connessione TCP regolare dall’altro host e inviando il file su di esso.,
Sul lato di ricezione eseguire il seguente comando per aprire la porta 5555 per la connessione in entrata e reindirizzare l’output in un file:
nc -l 5555 > file_name
Dall’host di invio connettersi all’host ricevente e inviare il file:
nc receiving.host.com 5555 < file_name
Per il trasferimento di una directory, è possibile utilizzare tar
archivio per la directory host di origine e per estrarre l’archivio dell’host di destinazione.
Sull’host ricevente, impostare lo strumento Netcat in ascolto per una connessione in entrata sulla porta 5555., I dati in ingresso viene reindirizzato al tar
comando, che vi permetterà di estrarre l’archivio:
nc -l 5555 | tar xzvf -
l’host di invio pack directory e inviare i dati per la connessione all’ascolto nc
il processo di ricezione di host:
tar czvf - /path/to/dir | nc receiving.host.com 5555
È possibile guardare il processo di trasferimento su entrambe le estremità. Una volta completato, digitare CTRL+C
per chiudere la connessione.
Creazione di un semplice server di chat #
La procedura per creare una chat online tra due o più host è la stessa di quando si trasferiscono i file.,
il primo host avviare un Netcat processo per l’ascolto sulla porta 5555:
nc -l 5555
Dal secondo host, eseguire il comando seguente per collegare la porta di ascolto:
nc first.host.com 5555
Ora, se si digita un messaggio e premere ENTER
verrà visualizzato su entrambi gli host.
Per chiudere la connessione, digitare CTRL+C
.
Esecuzione di una richiesta HTTP #
Sebbene ci siano strumenti molto migliori per le richieste HTTP comecurl
, è anche possibile utilizzare Netcat per inviare varie richieste ai server remoti.,
Ad esempio, per recuperare la pagina man di Netcat dal sito web OpenBSD, digitare:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
La risposta completa, incluse le intestazioni HTTP e il codice HTML, verrà stampata nel terminale.
Conclusione #
In questo tutorial, hai imparato come utilizzare l’utilità Netcat per stabilire e testare le connessioni TCP e UDP.
Per ulteriori informazioni, visitare la pagina man di Netcat e leggere tutte le altre potenti opzioni del comando Netcat.
Leave a Reply