Tutto ha inizio quando per caso controllando l’indicizzazione su google (site:www.XYZ.com) trovo una pagina estranea al mio sito che punta ad una pagina di casino online:
www.XYZ.com/?p=play-blackjack-online
E in effetti entrando nella pagina appare una pagina di Casino Online sul mio dominio.
Allora entro nel wp-admin per cancellarla ma mi accorgo che non vi è alcuna traccia della pagina.
Così faccio un dump del database e cerco “play-blackjack-online” e lo trovo in questa riga del wp_options, BINGO!
(8389, ‘client_data_run’, ‘{“stat”:”success”,”pages”:[{“slug”:”best-casino-bonus”,”article”:”<!DOCTYPE html>n<html><head><title>How to find the Best Casino Bonus</title>n<meta name=”robots” content=”noarchive”/>n<meta content=”text/html;charset=UTF-8″ http-equiv=”Content-Type”>n<meta name=”description” content=”Play at the best Online Casino accepting US players! Find the best no deposit bonuses, and $8,000 for the Slots at Grand Parker. ” />n</head>n<body topmargin=”0″ leftmargin=”0″ rightmargin=”0″ bottommargin=”0″ marginheight=”0″ marginwidth=”0″ style=”background-color:white;”>n<table border=”0″ width=”100%” cellspacing=”0″ cellpadding=”0″ bgcolor=”#999966″>n<tbody><tr><td width=”100%”><font face=”Arial Black” size=”6″ ……….ECC ECC ECC…………..t></td>n</tr></tbody></table></body></html>”,”title”:”Casino offers of the season $8000 bonus no deposit bonus codes”,”keywords”:[“no deposit bonus codes”,”no deposit bonus codes”,”eu casino bonus code”]}],”redirects”:[]}’, ‘yes’);
Mi accorgo che se cancello quella riga dal DB
DELETE FROM `wp_options` WHERE `option_name` = 'client_data_run';
le pagine fake scompaiono … ma ricompaiono magicamente il giorno dopo.
Quindi capisco che quella riga sul DB viene generato da un PHP.
Cerco ovunque nel codice cercando un eventuale file php che contenga il codice malevolo ma nulla.
Disattivo e aggiorno tutti i plugin ma nulla.
Andando dentro /wp-admin/options.php (pagina dove sono visibili alcune opzioni avanzate) mi accorgo che esiste un altra riga nella tabella wp_options con key = “1” e che contiene un’altro codice malevolo che cambia ogni volta che faccio refresh sulla pagina:
OATHqTWh7XEZWxEfvEcVCTqG7dvYj3nJI9GJy7ZmaD6j/4837e1sBLa5O7RUtC0x2CyEzpwoEw6EYQV9FDqXYgN1ndl+suAAAneh8+oS7Bw95zN9788yA71Fuad7ov
aq0w6G30BOh/tPD94JLeGfAS1J++Iuaj2Lbf+w7qk3AxqfTwxgSbPihP6iTMSaWTNEHAXH0tRKA4cw+6gNQj+qsH+ui+qUYVeEE/3IPNa16Y7XQfUqqZIa1aHM
l+sivKx6tO45S/++VQ6Ss7263uJju7oWvZUtq2O8af5d/BVB7……………oUb46vWbbk7i3pZHLWip4Bu2rNq3eDAcQ==”}
Cancellando la riga dalla wp_options un attimo dopo ricompare in modo sempre diverso, come se fosse generato randomicamente.
Quindi dopo aver cancellato tutti i plugin e notando che la riga continuava a cambiare ho pensato che forse il codice malevolo era conservato in uno dei temi.
Non so in quale modo possa essere successo ma all’interno della cartella del tema corrente ho trovato 5 file PNG:
social.png
social1.png
social2.png
social3.png
social4.png
(apparentemente immagini) ma con all’interno un codice che scriveva la descrizione di spam su google e la riga che creava le pagine del casino.
Il codice all’interno dei file era criptato in Base64 e ROT13, praticamente impossibile da trovare facendo una semplice grep in unix.
Per far sì che questo codice venisse eseguito è stato inserito il richiamo all’interno del function.php del tema in uso, in modo tale da richiamare le PNG:
include_once ‘social.png’;
}
if (!defined(‘WP_OPTION_KEY’)) {
include_once ‘social0.png’;
}
if (!defined(‘WP_OPTION_KEY’)) {
include_once ‘social1.png’;
}
if (!defined(‘WP_OPTION_KEY’)) {
include_once ‘social2.png’;
}
if (!defined(‘WP_OPTION_KEY’)) {
include_once ‘social3.png’;
}
Dopo aver rimosso le righe dal function.php e le 5 PNG ho cancellato la riga dal wp_options:
Dopo aver ripulito la vostra installazione di WordPress ricordatevi di aggiornare tutti i Plugin, cancellare quelli inutilizzati e cancellare anche i temi non utilizzati.
Per ripristinare le descrizioni del vostro sito iscrivetevi e collegate il sito a Google Webmaster e fate richiesta di refresh della index.