Seguridad y SSL

Me han hackeado la web o el hosting: cómo pasó y cómo solucionarlo

Revisado el 10 min de lectura intrusiones malware

Los ataques a webs son mucho más habituales de lo que parece, y no hace falta ser una gran marca para sufrirlos. Casi todos son automáticos: robots que recorren internet buscando webs con fallos conocidos. Lo que buscan es usar tu web para alojar malware o páginas de phishing, enviar spam o redirigir tus visitas a otros sitios.

Cómo entraron

En la gran mayoría de los casos, por una aplicación sin actualizar: WordPress, Joomla, PrestaShop, Drupal o, sobre todo, alguno de sus plugins, temas o módulos. Las actualizaciones corrigen fallos de seguridad; cuando se publica una, el fallo pasa a ser público y los robots empiezan a buscar webs que no la hayan aplicado.

Otras causas frecuentes:

  • Plugins o temas abandonados por su desarrollador, que nunca recibirán el arreglo de un fallo descubierto.
  • Plugins o temas «nulled» (versiones de pago descargadas gratis de webs no oficiales), que suelen venir ya con una puerta trasera.
  • Contraseñas robadas de cPanel, FTP o del administrador de la web, normalmente por un virus en el ordenador desde el que te conectas. Lo explicamos en infección de ficheros por un acceso FTP vulnerado.
  • Fallos en código propio, como formularios o subidas de archivos sin validar.

Cada cuenta de hosting está aislada de las demás: un atacante que entra en tu cuenta no puede llegar a la de otro cliente. Además, los servidores tienen firewall, Imunify360 analizando archivos y procesos en tiempo real y reglas que filtran ataques web. Puedes ver estas medidas de seguridad, pero ninguna sustituye a tener tu aplicación actualizada.

Qué efectos tiene

  • Todas las webs de la cuenta afectadas. Si tienes varias webs en el mismo hosting, basta un fallo en una para que el atacante pueda modificar todas: comparten usuario y archivos.
  • Envío de spam. El atacante sube scripts que envían correo masivo. Tu dominio acaba en listas negras y tus correos legítimos empiezan a ser rechazados.
  • Contenido ilegal alojado: páginas de phishing que imitan a bancos o empresas, o archivos con virus.
  • Fallos en la web: páginas en blanco, errores, contenido extraño o redirecciones a otras webs (a veces solo cuando se llega desde Google o desde el móvil).
  • Bloqueo de Google. Google detecta las webs infectadas y las marca. Con Safe Browsing, Chrome, Firefox y Safari muestran un aviso rojo de «sitio peligroso» a quien intenta entrar.

Cómo solucionarlo

1. Analiza la cuenta

En cPanel, abre Imunify360: verás los archivos que ha detectado como maliciosos y podrás limpiarlos. Tienes los detalles en Imunify360. También puedes usar el escáner de virus de cPanel.

Si la infección es grave o no sabes por dónde empezar, contáctanos: tenemos herramientas para detectar y eliminar malware, puertas traseras e inyecciones de código, y cada caso es distinto.

2. Busca archivos modificados recientemente

Desde la terminal de cPanel, lista los archivos PHP que han cambiado en los últimos 7 días:

find ~/public_html -name "*.php" -mtime -7 -ls

Cambia -7 por los días que han pasado desde que empezó el problema. Fíjate sobre todo en archivos PHP dentro de carpetas de imágenes o subidas (en WordPress, wp-content/uploads no debería tener ningún .php):

find ~/public_html/wp-content/uploads -name "*.php"

3. Revisa los administradores

Los atacantes suelen crear un usuario administrador para volver a entrar. En WordPress, desde phpMyAdmin (pestaña SQL), esta consulta lista los administradores, del más reciente al más antiguo:

SELECT u.ID, u.user_login, u.user_email, u.user_registered
FROM wp_users u
JOIN wp_usermeta m ON m.user_id = u.ID
WHERE m.meta_key = 'wp_capabilities'
  AND m.meta_value LIKE '%administrator%'
ORDER BY u.user_registered DESC;

Si tu instalación usa otro prefijo, cambia wp_ en los tres sitios. Borra los que no reconozcas desde Usuarios en el escritorio de WordPress.

Revisa también en cPanel las Tareas Cron: un cron que no has creado tú, que descarga o ejecuta un archivo, es una forma habitual de reinfectar la web. Lo tienes en tareas cron.

4. Restaura una copia si no se puede limpiar

Si la infección es muy extensa, lo más rápido y seguro es restaurar una copia de seguridad de una fecha anterior al ataque. Ten en cuenta que perderás lo que se haya añadido después (pedidos, comentarios, entradas). Después de restaurar, aplica igualmente los pasos de abajo: la copia tiene el mismo fallo por el que entraron.

Si usas WordPress, sigue la guía de limpiar WordPress tras un ataque.

5. Cierra la puerta

Aunque hayas limpiado o restaurado, haz siempre esto:

  1. Actualiza la aplicación, todos los plugins, temas y módulos.
  2. Borra las aplicaciones, plugins y temas que no uses, incluidos los desactivados.
  3. Cambia las contraseñas de cPanel, FTP, base de datos y de todos los administradores de la web, por otras largas y únicas. En cPanel lo tienes en cambiar la contraseña de cPanel y FTP.
  4. Pasa un antivirus en los ordenadores desde los que accedes al hosting.

6. Pide a Google que retire el aviso

Si Google ha marcado tu web:

  1. Da de alta tu web en Search Console si no lo está: cómo dar de alta tu dominio en Search Console.
  2. Entra en Seguridad y acciones manuales > Problemas de seguridad. Ahí verás las URL afectadas y el tipo de problema.
  3. Cuando esté todo limpio, pulsa Solicitar revisión y explica brevemente qué has hecho.

Google suele tardar unos días en revisarlo. Tienes la explicación oficial en el informe de problemas de seguridad.

Si vuelven a hackearte

Que el problema reaparezca después de limpiar es muy habitual: un ataque puede modificar cientos de archivos en segundos y dejar una puerta trasera escondida que pase desapercibida. Lo mejor es partir de una copia completamente limpia, pero si el ataque lleva meses sin detectarse puede que no la tengas. En ese caso:

  • Elimina todo plugin, tema y usuario administrador que no sea imprescindible, incluidos los desactivados.
  • Elimina los plugins y temas sin actualizaciones de su desarrollador desde hace más de un año, y busca alternativas mantenidas.
  • Reinstala los plugins y temas desde sus fuentes oficiales (para WordPress, wordpress.org o la web del desarrollador).
  • Reinstala la propia aplicación sobrescribiendo sus archivos con los originales de la misma versión. En WordPress, desde Escritorio > Actualizaciones, con el botón de reinstalar la versión actual, o con wp core download --force --skip-content.
  • Borra cualquier archivo o aplicación que no necesites: copias antiguas, instalaciones de prueba, carpetas old o backup dentro de public_html.
  • Si tienes varias webs en la misma cuenta, sepáralas en planes de hosting distintos para que un fallo en una no afecte a las demás. Antes de moverla, limpia la web: trasladarla infectada solo traslada el problema.

Si tu web está en otro proveedor

Si la web hackeada está alojada fuera de Hostsuar, podemos traerla y limpiarla sin coste al contratar cualquier plan. Lo que incluye y cómo se pide está en rescate de webs hackeadas.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.