El siguiente artículo es una colaboración de mi amigo @fedelosa escrita especialmente para SpamLoco. Su blog se vio infectado con una técnica de cloaking y nos cuenta de primera mano 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 :P 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:
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.
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:
Allí podemos fijarnos como “ve” Google nuestro sitio, así aparecía mi sitio para el motor de búsqueda hace unos días:
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.
Más información:
Understanding and cleaning the Pharma hack on WordPress
http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html
How to Diagnose and Remove the WordPress Pharma Hack
http://www.pearsonified.com/2010/04/wordpress-pharma-hack.php
Autor: Federico Lorenzo (@fedelosa)
El blog ya aparece limpio en los resultados de Google, creo que desde anoche, 48h tardó como máximo :)
Será la venganza del Flaco De Los Santos? :)
Jaja, es posible, con la diferencia que ellos siguen teniendo el sitio infectado :)
Probando…
Bueno, no aparece absolutamente nada, y he creado la cuenta en gravatar.
De igual forma, gracias.
Ahora sí, yo veo la imagen :)
Saludos hombre spammer, jejeje.
Me gusto el articulo, bien hecho e informativo, pero debo preguntarte algo que me aqueja.
¿Como uso un avatar en spam loco?
Lo intente con gravatar pero nada. De igual forma, gracias.
Pues funciona con Gravatar, es como viene por defecto en todos los blogs con WordPress.
En teoría cuando te haces una cuenta en http://es.gravatar.com y subes un avatar al servicio, la imagen queda asociada a tu e-mail y cuando usas ese e-mail al comentar, de forma automática aparece el avatar.
Muy buen artículo lo guardare por que uno nunca sabe cuando le pueda ocurrir ya que esto se esta volviendo muy común en wordpress a causa de tantos plugins que no se actualizan.
Gracias Fede
Saludos
Gracias, espero que no lo precises :)