Netcat fu orginariamente rilasciato nel 1996 ed conosciuto anche come il coltellino sivzzero delle reti, the "swiss army knife". Con netcat infatti è possibile eseguire prot-scanning, trasferire file, catturare banner (banner grabbing) e molto altro..
Netcat è una versione del programma UNIX cat che legge e scrive informazioni su file, Netcat a sua volta legge e scrive informazioni tra connessioni .
Alcune delle funzionalità di Nectat sono:
1)Stabilisce connessioni tpc o udp su o da qualsiasi porta (esegue anche connessioni in tunnel mode)
2)Port scanner
3)Trasferimento file
4)server/client HTTP
Per scaricare Netcat andate su netcat.sourceforge o http://nc110.sourceforge.net/.
Opzioni di Netcat:
Le opzioni di Netcat sono:
- -c shell commands come -e configura un comando /bin/sh da eseguire alla connessione
- -e filename configura un programma da eseguire alla connessione
- -b consente broadcasts
- -g gateway source-routing gateway
- -G num source-routing pointer: 4, 8, 12, ...
- -h apre l'help
- -i secs intervallo per l'invio di dato o lo scan di porte
- -k setta l'opzione keepalive sul socket
- -l modalità ascolto, per connessioni in entrata
- -n indirizzo IP numerico
- -o file output esadecimale del traffico
- -p port numero della porta locale
- -r randomizza porte locali e remote
- -q secs alla fine della trasmissione dei dati termina dopo i secondi impostati
- -s addr imposta l'indirizzo sorgente utilizzato nella creazione della connessione
- -T tos imposta il protocollo (predefinito TCP)
- -t comunicazione TELNET
- -u usa il protocollo UDP
- -v fornisce informazioni (due volte fornisce più informazioni)
- -w secs Imposta il tempo di inattività dopo il quale terminare
- -z Imposta a zero il flag di I/O. Appena la porta si sarà aperta sarà immediatamente spenta e chiusa. (per lo scan)
Ci sono alcune differenze tra la versione GNU/Linux ma in quest'articolo non verranno esaminate.
Per mettere Netcat in ascolto su una determinata porta (modalità server) digitate
nc -l (se volete eseguirlo in background aggiungete -d)
Uno dei comandi più potenti è sicuramente -e. Questa opzione che è disponibile solo in modalità server fa eseguire uno specifico programma quando un client si connette al server.
nc -l -p 12345 -e cmd.exe (Windows)nc -l -p 12345 -e /bin/bash (Linux)
I comandi sono uguali ma eseguiti su differenti sistemi operativi.Il primo mette Netcat in modalità server in ascolto sulla porta 12345 ed esegue cmd.exe appena un client vi si collega, il secondo esegue invece una bash shell in Linux alla prima connessione di un client.
TEST
Eseguiamo netcat in modalità server.
Poi apriamo una seconda finestra e lanciamo Necat in modalità client (figura 4) .
.
Ora premete Invio. Come potete vedere comparirà il banner Microsoft e un prompt dei comandi. Si è proprio così: state eseguendo il promt dei comandi via rete. Ok, ora digitate exit e il server netcat si chiuderà nella prima finestra..Ecco una limitazione di Necat, con la sola opzione -l infatti appena il client si scollegherà anche il server non starà più in ascolto.Per fare in modo che ad ogni disconnessioni riparta il server userete l'opzione -L
nc -l -p 12345 -c cmd.exe -L
Usare netcat come una semplice chat
In un terminale digitate
nc -l -p 12345
In una seconda finestra , connettetevi al server con il client
nc localhost 12345
Se invece volete collegarvi ad un altro computer sostituite localhost con l'indirizzo ip al quale volete collegarvi.
Quando inserirete del testo in una finestra comparirà anche nell'altra.
Port scanning con Netcat
Per effettuare port-scanning con Netcat dovrete usare la seguente sintassi
nc -[options] hostname [ports]
un esempio:
nc -v 192.168.1.4 21,80,443
nc -v 192.168.1.4 1-200
nc -v 192.168.1.4 http
Oppure
nc -v -z target port-range
[caption id="attachment_323" align="aligncenter" width="350" caption="tabella"][/caption]
Trasferire file con Netcat
Netcat può eseguire il pull e push dei file che si traduce nel trasferimento di un file. Guardate il seguente esempio per farvii un'idea:
nc -l -p 12345 < textfile
Netcat è avviato e in ascolto sulla porta 12345 e mette a disposizione il file textfile . il client si collegherà al server per ricevere il file
nc 192.168.1.4 12345 > textfile
Se invece volete che il file sia inviato dal client dovrete invertire il segno <
nc -l -p 12345 > textfile
nc 192.168.1.4 1245 < textfile
Più in generale:
per il computer che riceve
nc -l -p porta >file
per il computer che invia
nc indirizzo.computer.remoto porta <file
Banner grabbing
Finalmente, una delle principali funzioni di Netcat: il banner grabbing.
Il banner grabbing è una tecnica , rudimentale ma efficace, usata n per carpire il più possibile di una data applicazione come sistema operativo, marca, versione.
nc -v IP port
Collegarsi a un server IRC
Per collegarsi a un server IRC basta poco: è sufficiente cerare un batch file come il seguente:
@echo off
echo Ti sto collegando a IRC tramite irc.2600.net
nc -v 208.111.35.75 6667
USER Nc
Nick YourNickname
Mandare una Mail con Netcat
Creare un file di testo come quello che si vede in Lista 1. Successivamente seguire Lista 2 (che manda il file di testo al vostro server SMTP).
[caption id="attachment_321" align="aligncenter" width="354" caption="Lista 1"][/caption]
[caption id="attachment_322" align="aligncenter" width="352" caption="Lista 2"][/caption]
In attesa della seconda parte che parlerà di: tunneling con Netcat e la creazione di backdoor (anche con reverse) vi lascio un'utilissima cheatsheet con tutti i comandi principali di Netcat.
Fonti:
http://hakin9.org/how-to-use-netcat-mohsen-mostafa-jokar/
http://it.wikipedia.org/wiki/Netcat