domenica 8 marzo 2009

Trasferire files in rete con netcat

Quante volte ci è capitato di dover trasferire dei files attraverso macchine in rete tra diverse piattaforme?
Possiamo fare ciò mediante un tool molto semplice, leggerissimo e multipiattaforma, dunque a dir poco fantastico.
Netcat (soprannominato i coltellino svizzero delle reti) è un tool molto utile in grado di scrivere e leggere dati attraverso protocolli di rete TCP e UDP.
Per gli amministratori di rete è sicuramente uno strumento insostituibile dato che ha delle potenzialità
straordinarie. Netcat può essere utilizzato come client/server per il trasferimento dei file in rete,
scanner di porte, backdoor ecc...
Vediamo dunque come trasferire files attraverso questo ottimo tool. La prima cosa da fare è impostare la
nostra macchina che fungerà da server e che quindi deve stare in ascolto su una data porta che noi decideremmo
a nostro piacimento. Iniziamo con un esempio molto semplice:
-nc -l -p 9999 >
"filetrasferito"
Questo comando è molto semplice, forse addirittura banale.
Dunque:
'nc' invoca semplicemente il tool netcat
'-l' è il comando che permette al tool di stare in ascolto
'-p 9999' istruisce il tool di utilizzare la porta 9999 per ascoltare
'>' questo simbolo indica la direzione dei dati in input
"filetrasferito'
' questo è semplicemente il file in cui verranno indirizzati tutti i dati in entrata, è dunque il
file che desideravamo trasferire; come vedete ho tralasciato l'estensione ma potete mettercela, è uguale.


Fatto questo dobbiamo impostare la nostra macchina che fungerà da client: utilizzo il comando più
semplice possibile per evitare confusioni:
-nc 192.168.0.1 9999 < "miofile"

Altrettanto semplice il comando:
nc come sopra
'192.168.0.1' è il comando che specifica l'indirizzo di rete su cui dirigere l'output
'9999' è la porta in uscita che viene utilizzata per il trasferimento del file
'<' simbolo di direzione dell'output (in senso contrario a quello che abbiamo visto prima) '
'miofile" è il file che trasferiremo



Come è facile immaginare bisogna necessariamente settare precedentemente la macchina server perchè è la macchina in
ascolto.
Purtroppo non è possibile sapere in che momento preciso è terminato il trasferimento ma bensì bisognerà controllarlo
manualmente cioè quando la dimensione del file in entrata sarà uguale a quella in output allora potremmo fermare il nostro
netcat con ctrl+c.
Per ottenere info riguardanti la sintassi e il significato di ciascuna opzione basta che scriviate da linea di comando
-nc -h, infatti vi sono altre opzioni che potrebbero tornare utili come ad esempio l'impostazione del timeout.
Il sito ufficiale è il seguente:
http://netcat.sourceforge.net/
Alla prossima.