Buscar este blog

domingo, 30 de diciembre de 2012

Limpiando un blog de WordPress infectado por el Pharma

 
Este artículo habla del modo en que un blog de WordPress es infectado por el Pharma, como lo detectó la persona y como buscar los códigos maliciosos y limpiar el sitio.

Hace unos días me comentaron por Twitter que Fedelosa.com estaba apareciendo en los resultados de Google como “Sitio comprometido”, ni bien terminé de putear me puse a revisar que era lo que estaba sucediendo, entré al blog y se veía bien, revisé el código fuente de varias páginas (posts) diferentes y de la página principal, y no había ningún código malicioso allí, por lo que lo dejé pasar.
Al otro día, no tengo idea de por qué, se me ocurrió buscar mi blog en Google, solo poniendo “fedelosa” aparece como primer resultado, y ahí fue la sorpresa al encontrarme con algo como esto:

fedelosa en google infectado 

Volví a revisar el sitio y seguía sin aparecer nada, ya mis nervios eran muchos ¿cómo podía aparecer eso en los resultados de búsqueda si no estaba en el código de mi sitio? Investigando un rato me encuentro con que existe la posibilidad de alterar los resultados sin modificar nada de lo que se ve en el blog, en este caso un blog de WordPress.
¿Cómo lo hacen?
Aunque pueden existir otras formas que desconozco, en mi caso el problema estaba alojado en un archivo .php de un viejo plugin que ya no utilizaba pero que nunca había borrado, ni siquiera desactivado, el código en ese php realizaba una llamada a la base de datos y esta, de alguna manera que no entiendo, lograba mostrar a los buscadores algo diferente de lo que en realidad había en el sitio.
¿Cómo solucionarlo?
El Pharma Hack, así se llama el BlackHat SEO SPAM que afectó mi sitio, reside tanto en algún archivo .php (o .js) como en la base de datos, muchos sitios recomiendan borrar toda la instalación de WordPress, incluso la base de datos y arrancar de cero, pero como pensé que era mucho trabajo, hice otra cosa, elimine el código oculto en un archivo y limpié la base de datos.
Para limpiar la base de datos hay que ingresar al phpMyAdmin, elegir en la columna de la izquierda la base de datos correspondiente con nuestro blog (si no supiéramos cual es, podemos fijarnos en el archivo wp-config.php), luego debemos elegir la tabla “wp-options” y luego ir a la pestaña “Buscar”, allí en la fila option_name.

limpiando base de datos con phpMyAdmin 

Buscamos lo siguiente:
  • wp_check_hash
  • class_generic_support
  • widget_generic_support
  • ftp_credentials
  • fwp
  • rss_% — En este caso, debemos tener cuidado de no borrar ni el rss_language, ni el rss_use_excerpt ni tampoco el rss_excerpt_lenght
Y borramos todo lo que coincida con esas búsquedas, ya con esto tendríamos limpia la base de datos, ahora hay que ir por los archivos .php, que claro, son muchísimos y más si tenemos varios plugins, entonces ¿cuál archivo debo revisar?
¡No tengo idea! En mi caso el Pharma Hack estaba alojado en un archivo diferente a los que leí en varios sitios, por lo que lo ideal entonces es hacer una búsqueda de texto para ver donde lo encontramos.
Si tenemos acceso SSH al servidor, podemos usar el comando grep para encontrar cadenas de texto de esta forma:
$ grep -r “wp_class_support” ./wp-content/plugins
Si encontramos cosas como:
if(!defined(‘wp_class_support’)) {
define(‘wp_class_support’,true);
Debemos asegurarnos de borrar esos archivos.
Restaría esperar a que Google nos quiera nuevamente, para acelerar este proceso, teniendo el sitio ya registrado y verificado en las Google Webmaster Tools, hay que pedir una reconsideración www.google.com/webmasters/tools/reconsideration
Una herramienta interesante para ver si nuestro sitio está “infectado” y para luego verificar que haya quedado limpio es, Explorar como Google, parte de las Webmaster Tools:

explorar como google 

Allí podemos fijarnos como “ve” Google nuestro sitio, así aparecía mi sitio para el motor de búsqueda hace unos días:

palabras claves agregadas por spammers 

Luego de eliminar el Pharma Hack de la base de datos y el plugin infectado, podemos volver a fijarnos y el código ya se debería ver limpio.
Solo queda tomar las precauciones necesarias para que esto no suceda, cambiar passwords, cambiar las claves SALT en el wp-config.php, desinstalar plugins y temas que no usemos, etcétera.

No hay comentarios:

Publicar un comentario