Stanco ormai dei numerasissimi attacchi bruteforce basati su dizionario e diretti al mio server FTP, ho deciso di realizzare un piccolo honeypot utilizzando vsftpd e PAM.
Per prima cosa ho installato tutte le librerie necessarie per compilare una versione modificata di pam_storepw.so, il cui sorgente potete scaricarlo da qui.
I comandi che ho lanciato sono i seguenti:
nightfly@nightbox:~$ sudo apt-get install libpam0g-dev
Successivamente ho compilato e linkato il sorgente, digitando:
nightfly@nightbox:~$ gcc -c -fpic chng-pam_storepw.c
nightfly@nightbox:~$ gcc -shared -lc -o pam_logpw.so chng-pam_storepw.o
nightfly@nightbox:~$ sudo mv pam_logpw.so /lib/security/
Adesso che il modulo pam_logpw.so è finalmente pronto per l'uso, non mi resta che modificare il file /etc/pam.d/vsftpd, il cui contenuto dovrà essere il seguente:
@include common-password
auth required pam_unix.so obscure sha512
auth optional pam_logpw.so
Riavviamo vsftpd per rendere effettive le modifiche appena apportate:
nightfly@nightbox:~$ sudo service vsftpd restart
In particolare, le credenziali digitate dall'attaccante per accedere allo spazio FTP verranno salvate nel file /var/log/passwords, il cui contenuto sarà simile al seguente:
host = 88.11.22.33 : username = guest : password = sdinna
ATTENZIONE
questo file registrerà in chiaro anche le credenziali di accesso corrette (ovvero le vostre e quelle degli utenti leggittimi). Per questa ragione vi sconsiglio di utilizzare vsftpd per il trasferimento di file e di ripiegare quindi su SCP (a tal proposito un ottimo tool è rappresentato da WinSCP).
Una volta ottenuto il giusto numero di credenziali utilizzate per i login attempt, potrete ad esempio ricavare delle statistiche (username e password più utilizzate) che vi consentiranno eventualmente di risalire ai tipi di dizionario impiegati durante i tentativi di cracking.
Enjoy.