page-hack

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=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!

INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(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:

{“data”:”hSfIQTpHkifrtZkA8LVTCQx4cI8r9fIqpThC6U8r7s284UzsChRkI29+VTMCVBzfzPXAdF9rR3BL/MFjQ74NJiCy8nyAtm4JB/MZ5Rkj+Y6P6Cw9rjJyynFi5ciRPG4kCY
OATHqTWh7XEZWxEfvEcVCTqG7dvYj3nJI9GJy7ZmaD6j/4837e1sBLa5O7RUtC0x2CyEzpwoEw6EYQV9FDqXYgN1ndl+suAAAneh8+oS7Bw95zN9788yA71Fuad7ov
aq0w6G30BOh/tPD94JLeGfAS1J++Iuaj2Lbf+w7qk3AxqfTwxgSbPihP6iTMSaWTNEHAXH0tRKA4cw+6gNQj+qsH+ui+qUYVeEE/3IPNa16Y7XQfUqqZIa1aHM
l+sivKx6tO45S/++VQ6Ss7263uJju7oWvZUtq2O8af5d/BVB7……………oUb46vWbbk7i3pZHLWip4Bu2rNq3eDAcQ==”}

options

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:

if (!defined(‘WP_OPTION_KEY’)) {
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:

DELETE FROM `wp_options` WHERE `option_name` = ‘1’;

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.

    9 Comments. Leave your Comment right now:

    1. by Braydon

      Thank you so much. My site was also hacked with this. Was a huge help in removing it.

    2. by Alvaro

      Thank you so much. Exactly my problem and I was having a hard time finding it.

      It was inside functions.php of my parent-theme and had 4 pseudo png files.

    3. by Daniell

      brother sory and REMOVE THE FILE IN wp-content\plugins\logos_showcase_v1.4.1\images
      social.PNG

    4. Ho lo stesso problema di Spam da parte di questo malware.. purtroppo però non ho trovato nè i file .png all’interno della cartella del tema e nè la stringa di richiamo nel function.php del tema.
      Hai qualche soluzione alternativa per rimuovere il malware? Grazie in anticipo.

      • by Daniell

        anche io no o trovato, qualche solçuzione alternativa?

      • by Daniell

        remove file zxcvbn.min.js in JS wp-inclues

      • by Mario

        Stesso problema! era un plugin che conteneva il file “Social.png”, ma adesso l’ho cancellato. Nonostante questo il file function.php è integro, ma su google risultano strani tag ai miei articolo. Penso che sia una versione di malware più evoluta. Come posso risolvere?

    5. by mircea

      great article, thanks a lot! had the same problem, the only article with a real solution to this problem.

    6. by pazis

      Very useful! I had the same problem.

    Leave a Reply

    Your email address will not be published.

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>