Lodaer Img

Cómo Desinfectar un WordPress Hackeado

Cómo Desinfectar un WordPress Hackeado

Un sitio WordPress hackeado puede causar desde pérdida de posicionamiento SEO hasta el envío masivo de spam o incluso infectar a los visitantes. Como informático, probablemente ya sabes que no basta con instalar un plugin y cruzar los dedos. Esta guía está pensada para quienes necesitan limpiar un sitio WordPress de forma manual, segura y profesional.

Paso 1: Aísla el Sitio y Haz Backup

Antes de comenzar cualquier tarea de limpieza, lo primero es detener el daño. Un sitio comprometido puede estar enviando spam, propagando malware o afectando a otros recursos del servidor.

¿Qué hacer?

  • Activa un plugin de mantenimiento o crea una página temporal.
  • Si tienes acceso al servidor, considera restringir el acceso vía .htaccess o firewall.
  • Haz un backup completo, incluso si está infectado. Necesitarás una copia para investigar los vectores de ataque y restaurar partes limpias.

Paso 2: Diagnóstico del Malware

Una buena limpieza empieza con saber qué buscar y dónde. Los atacantes suelen esconder código en archivos aparentemente inocuos o en lugares poco vigilados como la carpeta /uploads/.

¿Dónde mirar primero?

  • Archivos críticos: wp-config.php, .htaccess, functions.php
  • Carpetas clave: /wp-content/, especialmente themes, plugins y uploads
  • Base de datos: tablas como wp_options, wp_posts y wp_users

Signos de infección comunes:

  • Código ofuscado (eval(), base64_decode(), gzinflate())
  • Archivos con nombres raros o recién modificados
  • Iframes o scripts inyectados en entradas, widgets o temas
  • Nuevos usuarios con rol de administrador

Herramientas útiles:

  • Wordfence (plugin con escáner de malware y firewall)
  • WPScan (CLI para detectar vulnerabilidades)
  • ClamAV o Maldet si tienes acceso SSH

Cómo Desinfectar un WordPress Hackeado

Paso 3: Limpieza Manual del Sitio

Una vez detectado el malware, llega el momento de eliminarlo manualmente. Esto implica reemplazar archivos del core, reinstalar plugins y temas, y limpiar la base de datos.

Limpieza de ficheros

1. Reemplaza el core de WordPress

Evita revisar archivo por archivo del core. La forma más rápida y segura de asegurar que el núcleo esté limpio es reinstalarlo:

wp core download --force

Si no tienes wp-cli, descarga WordPress desde wordpress.org y sobrescribe estas carpetas:

  • /wp-admin/
  • /wp-includes/

⚠️ Cuidado: No sobrescribas la carpeta /wp-content/. Aquí están tus temas, plugins y archivos multimedia. Vamos a revisarla por separado.

2. Audita /wp-content/

Esta carpeta no forma parte del core y por tanto es donde más suele esconderse malware. Aquí debes revisar:

/uploads/
  • No debería contener archivos PHP. Solo imágenes, PDF y archivos multimedia. Si encuentras .php, es casi seguro que son maliciosos.
  • Busca así:
    find wp-content/uploads -type f -name "*.php"
    

Acción recomendada: Elimina cualquier archivo .php en /uploads/, salvo que tengas una razón clara para mantenerlo (muy raro).

/themes/ y /plugins/
  • Verifica que todos los plugins y temas provengan del repositorio oficial o de fuentes confiables (como ThemeForest, Elegant Themes, etc.).
  • Reinstala los plugins y temas desde sus fuentes originales, especialmente si los archivos han sido modificados recientemente.
wp plugin reinstall nombre-plugin
wp theme reinstall nombre-tema

Consejo: Si un tema fue editado manualmente, haz una copia, compárala con la versión original y restaura solo el código legítimo.

3. Revisa .htaccess

Este archivo puede ser manipulado para redirigir tráfico a sitios maliciosos o bloquearte el acceso al panel. Borra su contenido y regenera uno limpio:

# .htaccess limpio para WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

4. Busca funciones maliciosas en los archivos PHP

Haz una búsqueda en todo el proyecto de funciones comúnmente usadas por malware:

grep -Ri --color 'eval(' *
grep -Ri 'base64_decode(' *
grep -Ri 'gzinflate(' *
grep -Ri 'shell_exec(' *

🔎 Estas funciones no son malas por sí mismas, pero si las ves en lugares inusuales (como un plugin que no debería ejecutarlas), podrían estar haciendo cosas sospechosas.

Consejo: Automatiza esto con herramientas como Maldet o escáneres específicos para PHP.

Limpieza de Base de Datos

Muchos atacantes insertan código malicioso en el contenido del sitio: en posts, widgets, menús o incluso en las opciones del sitio. Por eso es vital auditar la base de datos.

1. Busca inyecciones en contenido

Los hackers suelen insertar iframes ocultos, scripts, redirecciones JS, etc. Haz búsquedas como:

SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<script%';
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%iframe%';
SELECT * FROM wp_options WHERE option_value LIKE '%base64%';

📌 Si usas otro prefijo que no sea wp_, adáptalo.

2. Revisa wp_options

Los atacantes a veces inyectan código en opciones de tema o widgets:

SELECT * FROM wp_options WHERE autoload='yes' AND LENGTH(option_value) > 1000;

Busca también cadenas largas y ofuscadas en option_value, especialmente aquellas con eval, base64, etc.

Consejo: Si ves algo raro pero no estás seguro de qué es, copia la cadena y decódificala con herramientas como CyberChef.

3. Verifica los usuarios administradores

3. Verifica los usuarios administradores

Muchos ataques crean cuentas nuevas con rol de administrador. Asegúrate de que no haya usuarios desconocidos:

SELECT ID, user_login, user_email FROM wp_users;

Acción recomendada: Elimina cualquier usuario que no reconozcas. Si tienes dudas, cambia su rol a “suscriptor” temporalmente mientras investigas.

Paso 4: Reforzar la Seguridad

Una vez limpio tu WordPress, es momento de prevenir futuros ataques. Algunos pasos básicos:

  • Actualiza siempre WordPress, plugins y temas a la última versión.
  • Elimina todo lo que no uses: temas, plugins inactivos, instalaciones antiguas.
  • Utiliza contraseñas fuertes para todos los usuarios y cambia la del panel de hosting y FTP.
  • Instala un firewall como Wordfence o Sucuri.
  • Desactiva la edición de archivos desde el dashboard:
// Agrega esto en wp-config.php
define('DISALLOW_FILE_EDIT', true);

Paso 5: Monitorización Continua

La limpieza no es el final. Los atacantes podrían intentar regresar, o haber dejado puertas traseras. Mantén vigilancia activa:

  • Activa alertas de seguridad con plugins como Wordfence o iThemes Security.
  • Revisa los logs del servidor en busca de accesos sospechosos.
  • Considera servicios profesionales de monitorización si el sitio es crítico.

Conclusión

Limpiar un WordPress hackeado es un proceso delicado pero totalmente posible si se aborda con método y cuidado. Esta guía busca darte una ruta clara y segura para hacerlo tú mismo, sin depender únicamente de plugins milagrosos.

🔐 ¿Tu sitio fue comprometido y necesitas ayuda profesional? Contáctanos. Podemos ayudarte a desinfectar, asegurar y fortalecer tu WordPress.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *