ncat o nc è un'utilità di rete con funzionalità simili al comando cat ma per la rete. È uno strumento CLI generico per leggere, scrivere e reindirizzare i dati attraverso una rete. È progettato per essere uno strumento di back-end affidabile che può essere utilizzato con script o altri programmi. È anche un ottimo strumento per il debug di rete, poiché può creare qualsiasi tipo di connessione di cui uno possa aver bisogno.
ncat/nc può essere uno strumento di scansione delle porte o uno strumento di sicurezza o strumento di monitoraggio ed è anche un semplice proxy TCP . Dal momento che ha così tante caratteristiche, è conosciuto come un coltellino svizzero di rete. È uno di quegli strumenti che ogni amministratore di sistema dovrebbe conoscere e padroneggiare.
Nella maggior parte delle distribuzioni Debian 'nc' è disponibile e il suo pacchetto viene installato automaticamente durante l'installazione. Ma nell'installazione minima di CentOS 7 / RHEL 7 non troverai nc come pacchetto predefinito. Devi installare usando il seguente comando.
[[email protected] ~]# yum install nmap-ncat -y
Gli amministratori di sistema possono usarlo per controllare la sicurezza del loro sistema, possono usarlo per trovare le porte aperte e quindi proteggerle. Gli amministratori possono anche usarlo come client per l'auditing di server web, server telnet, server di posta ecc., con "nc" possiamo controllare ogni carattere inviato e possiamo anche visualizzare le risposte alle domande inviate.
Possiamo anche fare in modo che acquisisca i dati inviati dal cliente per capire cosa stanno facendo.
In questo tutorial impareremo come usare il comando 'nc' con 10 esempi,
Esempio:1) Ascolta le connessioni in entrata
Ncat può funzionare in modalità di ascolto e possiamo ascoltare le connessioni in entrata sul numero di porta con l'opzione "l". Il comando completo è,
$ ncat -l numero_porta
Ad esempio,
$ ncat -l 8080
Il server ora inizierà ad ascoltare la porta 8080 per le connessioni in entrata.
Esempio:2) Connessione a un sistema remoto
Per connetterci a un sistema remoto con nc, possiamo usare il seguente comando,
$ ncat indirizzo_IP numero_porta
Facciamo un esempio,
$ ncat 192.168.1.100 80
Ora verrà stabilita una connessione al server con indirizzo IP 192.168.1.100 alla porta 80 e ora possiamo inviare istruzioni al server. Come possiamo ottenere il contenuto completo della pagina con
OTTIENI / HTTP/1.1
o ottieni il nome della pagina,
OTTIENI / HTTP/1.1
oppure possiamo ottenere un banner per l'impronta digitale del sistema operativo con quanto segue,
TESTA / HTTP/1.1
Questo indicherà quale software viene utilizzato per eseguire il server web.
Esempio:3) Connessione a porte UDP
Per impostazione predefinita, l'utilità nc effettua connessioni solo alle porte TCP. Ma possiamo anche effettuare connessioni alle porte UDP, per questo possiamo usare l'opzione 'u',
$ ncat -l -u 1234
Ora il nostro sistema inizierà ad ascoltare una porta udp '1234', possiamo verificarlo usando il comando netstat di seguito,
$ netstat -tunlp | grep 1234 udp 0 0 0.0.0.0:1234 0.0.0.0:* 17341/nc udp6 0 0 :::1234 :::* 17341/nc
Supponiamo di voler inviare o testare la connettività della porta UDP a un host remoto specifico, quindi utilizzare il comando seguente,
$ ncat -v -u {ip-host} {porta-udp}
esempio:
[[email protected] ~]# ncat -v -u 192.168.105.150 53 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 192.168.105.150:53.
Esempio:4) NC come strumento di chat
NC può anche essere utilizzato come strumento di chat, possiamo configurare il server per ascoltare una porta e quindi effettuare la connessione al server da una macchina remota sulla stessa porta e iniziare a inviare messaggi. Sul lato server, esegui
$ ncat -l 8080
Sul computer client remoto, esegui
$ ncat 192.168.1.100 8080
Quindi inizia a inviare messaggi e verranno visualizzati sul terminale del server.
Esempio:5) NC come proxy
NC può essere utilizzato anche come proxy con un semplice comando. Facciamo un esempio,
$ ncat -l 8080 | ncat 192.168.1.200 80
Ora tutte le connessioni in arrivo al nostro server sulla porta 8080 verranno automaticamente reindirizzate al server 192.168.1.200 sulla porta 80. Ma poiché stiamo usando una pipe, i dati possono essere trasferiti solo e per poter ricevere i dati indietro, dobbiamo creare un tubo a due vie. Usa i seguenti comandi per farlo,
$ mkfifo 2way $ ncat -l 8080 0<2way | ncat 192.168.1.200 80 1>2way
Ora sarai in grado di inviare e ricevere dati tramite proxy nc.
Esempio:6) Copia di file utilizzando nc/ncat
NC può anche essere utilizzato per copiare i file da un sistema all'altro, anche se non è raccomandato e per lo più tutti i sistemi hanno ssh/scp installato per impostazione predefinita. Tuttavia, se ti sei imbattuto in un sistema senza ssh/scp, puoi anche usare nc come ultimo sforzo.
Inizia con la macchina su cui devono essere ricevuti i dati e avvia nc in modalità listener,
$ ncat -l 8080 > file.txt
Ora sulla macchina da cui devono essere copiati i dati, esegui il comando seguente,
$ ncat 192.168.1.100 8080 --send-only < data.txt
Qui data.txt è il file che deve essere inviato. L'opzione –send-only chiuderà la connessione una volta che il file è stato copiato. Se non si utilizza questa opzione, dovremo premere ctrl+c per chiudere manualmente la connessione.
Possiamo anche copiare intere partizioni del disco usando questo metodo, ma dovrebbe essere fatto con cautela.
Esempio:7) Crea una backdoor tramite nc/nact
Il comando NC può anche essere utilizzato per creare backdoor per i tuoi sistemi e questa tecnica è in realtà molto utilizzata dagli hacker. Dovremmo sapere come funziona per proteggere il nostro sistema. Per creare una backdoor, il comando è,
$ ncat -l 10000 -e /bin/bash
'e ' flag allega un bash alla porta 10000. Ora un client può connettersi alla porta 10000 sul server e avrà accesso completo al nostro sistema tramite bash,
$ ncat 192.168.1.100 1000
Esempio:8) Port forwarding tramite nc/ncat
Possiamo anche utilizzare NC per il port forwarding con l'aiuto dell'opzione 'c' , la sintassi per eseguire il port forwarding è,
$ ncat -u -l 80 -c 'ncat -u -l 8080'
Ora tutte le connessioni per la porta 80 verranno inoltrate alla porta 8080.
Esempio:9) Imposta i timeout di connessione
La modalità Listener in ncat continuerà a funzionare e dovrebbe essere terminata manualmente. Ma possiamo configurare i timeout con l'opzione 'w',
$ ncat -w 10 192.168.1.100 8080
Ciò causerà l'interruzione della connessione in 10 secondi, ma può essere utilizzata solo sul lato client e non sul lato server.
Esempio:10) Forza il server a rimanere attivo usando l'opzione -k in ncat
Quando il client si disconnette dal server, dopo qualche tempo anche il server smette di essere in ascolto. Ma possiamo forzare il server a rimanere connesso e continuare l'ascolto della porta con l'opzione "k". Esegui il comando seguente,
$ ncat -l -k 8080
Ora il server rimarrà attivo, anche se una connessione dal client è interrotta.
Con questo concludiamo il nostro tutorial, non esitare a porre qualsiasi domanda relativa a questo articolo utilizzando la casella dei commenti qui sotto.