Il File Transfer Protocol – FTP è uno dei primi protocolli di rete per il trasferimento di dati definiti dalle specifiche Internet. Nonostante nel corso degli anni abbia subito diverse variazioni, la sua affidabilità l’ha reso uno dei metodi più popolari per lo stoccaggio e la condivisione di file tra host.
La sua popolarità non lo esime da alcune vulnerabilità di sicurezza: i dati che vengono scambiati tramite porte TCP non presentano alcun livello di cifratura, quindi username e password per l’accesso sono trasmessi in chiaro, facili da sniffare, soprattutto se l’attaccante si trova sotto la stessa rete della vittima. Questo problema viene risolto mediante l’utilizzo del protocollo FTPS che aggiunge all’FTP originario un livello di cifratura dati basato su SSL, oppure di SFTP che svolge le stesse funzioni di FTP connettendosi però tramite SSH.
In questa guida vi illustrerò tre differenti tool per portare a termine con successo un attacco a dizionario nei confronti di un server FTP: Ncrack, Hydra e Metasploit.
Tutti e tre i software sono installati di default su Kali Linux. Ncrack e Hydra sono disponibili per l’installazione su altre distribuzioni Linux, su Windows e su OS X, mentre Metasploit è disponibile solo per Linux e Windows.
Ho testato i comandi che vi elencherò su un server creato appositamente per lo scopo. Vi ricordo che l’accesso a sistemi dei quali non siamo proprietari o per i quali non abbiamo ricevuto un’autorizzazione esplicita è illegale e punibile penalmente. Utilizzate questa guida con responsabilità!
Ho creato una wordlist molto breve chiamata utest, che contiene una lista di nomi utente fittizi tra i quali è nascosto quello reale del server FTP di test, così ho fatto per le password chiamando la lista ptest.
Ncrack
Il comando da utilizzare per l’attacco a dizionario con Ncrack è il seguente:
ncrack -v -T5 -U [percorso_wordlist_username] -P [percorso_wordlist_password] [ip_server]:21
dove -v indica al tool di produrre un output verboso, -T5 accelera al massimo l’attacco, -U indica il percorso al dizionario che contiene i nomi utente e -P il percorso al dizionario che contiene le password. 21 è la porta di default per lo scambio dati FTP.
Hydra
Hydra permette attacchi ad una varietà notevole di protocolli di rete, oltre 50. Il comando varierà leggermente rispetto ad Ncrack:
hydra -L [percorso_wordlist_username] -P [percorso_wordlist_password] [ip_server] ftp
anche qui -L indica il percorso del dizionario degli username, -P quello delle password, mentre ftp indica il tipo di servizio che stiamo provando a forzare.
Metasploit
Sicuramente il più complesso dei tre strumenti elencati, Metasploit Framework permette una quantità di operazioni veramente vasta, tra le quali, come potrete immaginare, anche l’attacco a dizionario di un server FTP. Il numero esorbitante di opzioni di configurazione di questo tool, lo rende appena più difficile nell’utilizzo rispetto ai due presentati in precedenza. Per questa guida ho scelto di usarlo tramite la sua interfaccia a linea di comando: msfconsole. Iniziamo lanciando il servizio postgresql, il database che serve per il suo funzionamento e la console stessa
service postgresql start msfconsole
cerchiamo il modulo di attacco ad FTP
search ftp_login
scegliamo il modulo, ne impostiamo le opzioni e lo lanciamo
use auxiliary/scanner/ftp/ftp_login set rhosts [ip_server] set user_file [percorso_wordlist_username] set pass_file [percorso_wordlist_password] run
la console inizierà a lavorare mostrando i tentativi di accesso uno ad uno ed indicandoci quelli funzionanti
Vi ho mostrato tre valide alternative per il brute forcing di un servizio diffuso come FTP. Va notato che tutti e tre i software sono utilizzabili per altri fini rispetto a quello descritto. A voi la scelta del migliore!