Gli attacchi a “forza bruta” per individuare username e password di amministrazione, di un sistema o di una normale applicazione Web, non sono ancora passati di moda.
Questa volta ad essere interessate dal problema sono potenzialmente le tante installazioni di WordPress sparse in giro per il Web.
Nella giornata di lunedì 30 novembre infatti sul blog del SANS Internet Storm Center è comparsa una notizia alquanto allarmante dal titolo “Distributed WordPress admin account cracking“.
La scoperta di uno dei lettori del sito è che all’interno di un virtual private server (VPS) ha individuato uno script PHP che esegue un attacco di tipo brute-force ai danni degli account di amministrazione WordPress.
Sul sito del SANS sono presenti degli snippet di codice che danno un’idea di massima di come funzioni e di quanto possa essere efficace pur nella sua semplicità.
In particolare la funzione “wp_brute_attempt()” sfruttando il tool da linea di comando cURL (usato per effettuare richieste HTTP) tenta di connettersi ad un particolare sito usando l’account di default “admin” e la password indicata come parametro.
Qualora le credenziali siano valide, viene recuperata una pagina che contiene la parola “Logout” e lo script segnala il successo dell’operazione (col classico “return true”).
La cosa interessante è che il codice si appoggia ad un database MySQL per effettuare il cracking in modo da poter tenere traccia dello status delle operazioni.
Le password vengono recuperate da una classica “wordlist” e nel caso lo script venga interrotto, viene salvato l’eventuale stato, così da poter riprendere successivamente i tentativi.
Nella sua semplicità lo script consente di effettuare quindi un attacco distribuito su più siti contemporaneamente e tentando più password.
I consigli per evitare questo tipo di problemi sono piuttosto semplici:
- scegliere una buona password alfanumerica e caratteri speciali;
- cambiare se possibile l’account di amministrazione (dal default admin);
- limitare l’accesso alla cartella wp-admin proteggendo la directory (esempio mediante file.htaccess);
- installare un plugin come Login Lockdown o User Locker.
Soluzioni più drastiche come il modificare il nome della cartella di amministrazione, anche se possibili, non è detto siano così efficaci e non fanno altro che introdurre un maggior sforzo nel mantenere aggiornata la propria installazione.