Trasferire File con Netcat

Quinto appuntamento della serie “Le 7 Vite di Netcat“. In questo articolo presento come usare netcat per trasferire file tra due computer tramite una rete Tcp/Ip.

Questa caratteristica di netcat può essere utile in diversi casi. Può essere il modo più semplice e veloce per passare file tra due computer senza dover attivare condivisioni o installare servizi. Oppure durante un penetration test o durante un’intrusione può essere molto utile portare velocemente sul computer sotto attacco  trojan, rootkit o altri strumenti; oppure può essere necessario esfiltrare file senza lasciare tracce nei log. Un altro punto forte di questa tecnica è la diffusione di netcat sulle macchine Unix/Linux. Se si deve portare dei file su un Linux in rete senza troppi problemi si può utilizzare netcat.

La tecnica è abbastanza semplice: si usano due netcat, uno sulla macchina sorgente e uno sulla macchina di destinazione. Quest’ultimo avrà la funzione di server.

Netcat può agire come server. Questo significa che può mettersi “in ascolto” su di una porta Tcp e attendere una connessione. Per attivare questa funzione bisogna specificare sulla riga di comando il parametro -l (listen) e specificare la porta (-p):

nc -l -p 9999 -vv > miofile

Questo comando mette netcat in ascolto sulla porta 9999; l’output viene reindirizzato al file miofile tramite il simbolo >.

Questo significa che tutto quello che netcat riceverà sulla rete attraverso la porta 9999 verra memorizzato in un file di nome miofile. Sia il valore della porta (in questo caso  9999), sia il nome del file (miofile), sono arbitrari, possono essere qualsiasi cosa.

Mentre sul server netcat “ascolta”, sulla macchina sorgente, ovvero sulla macchina sulla quale è memorizzato il file da trasmettere al server, dovremo usare unnetcat in modalità client per inviare i dati del file da trasferire:

nc 127.0.0.1 9999 -vv < miofile

Con questo comando invio il file “miofile” tramite la redirezione dell’input ottenuta con il simbolo < all’host 127.0.0.1, ovvero il computer sul quale netcat è in “ascolto”, sulla porta 9999. In questo esempio ho utilizzato l’indirizzo del computer locale (127.0.0.1), ma nella realtà naturalmente l’indirizzo dovrà coincidere con l’Ip reale del computer server. Ovvero se il computer sul quale netcat è in ascolto in modalità server è 192.168.0.1, nel netcat in modalità client dovrò indicare proprio questo indirizzo.

Un’ultima considerazione: netcat non fornisce un indicatore di progresso del trasferimento in corso; per sapere quando il trasferimento stesso è terminato occorre controllare con il comando dir ols le dimensioni crescenti del file.

Questo articolo fa parte della serie “Le 7 Vite di Netcat“. Potrai trovare altre informazioni su Netcat negli altri articoli della serie:

  • Trasferire file con Netcat

3 commenti

5 Trackback / Pingback

  1. Netcat Come Scanner | PillolHacking.Net
  2. Leggere gli header HTTP e le pagine Web con Netcat | PillolHacking.Net
  3. Le Sette Vite di Netcat | PillolHacking.Net
  4. Leggere la posta elettronica con Netcat | PillolHacking.Net
  5. Inviare Email con Netcat | PillolHacking.Net

I commenti sono chiusi.