Volver al blog

Cómo saber si tu sitio fue hackeado (y qué hacer antes de que Google te castigue)

La mayoría de los sitios invadidos solo se entera cuando Google los marca como inseguros y el tráfico se desploma. Las señales aparecen antes — si sabes dónde mirar.

Carol seguridad ofensiva · escribe lo que vemos en las auditorías

La pregunta normalmente llega en pánico: "creo que mi sitio fue hackeado, ¿qué hago?". Y casi siempre la persona solo se dio cuenta porque pasó una de tres cosas:

  1. Google empezó a mostrar "Este sitio puede dañar tu computadora" en los resultados.
  2. El proveedor de hosting suspendió la cuenta por abuso.
  3. Un cliente se quejó de que el sitio abre cosas raras en el celular.

En los tres casos, la invasión ocurrió días o semanas antes. Las señales estaban ahí.

Las señales que aparecen primero

Antes de Google y antes del hosting, puedes notarlo solo — si miras.

1. Resultados de búsqueda con texto que no es tuyo

Busca en Google: site:tusitio.com (con site: pegado, sin espacio). Aparecen todas las páginas indexadas. Mira los títulos y descripciones. Si encuentras:

  • Páginas con nombres de medicamentos, casinos, réplicas, viagra, cialis
  • Títulos en japonés, chino, ruso sin motivo
  • URLs raras tipo /wp-content/uploads/2023/cheap-shoes.html

…tu sitio fue invadido. El atacante creó páginas escondidas para explotar el SEO de tu dominio — vender enlaces, vender producto falso, distribuir malware.

2. JavaScript que no reconoces

Abre el sitio en el navegador, View Source (Ctrl+U). Busca <script> y mira el contenido. Señales de problema:

  • eval(atob(...)) — código ofuscado en base64, casi siempre malicioso
  • String.fromCharCode(...) con decenas de números — otra forma de esconder código
  • Scripts cargados desde dominios que nunca oíste (*.ru, *.tk, IPs crudas)
  • document.write inyectando iframes

3. Redirección que solo ocurre en móvil o desde Google

Un clásico: el sitio abre normal cuando escribes la URL en Chrome desktop. Pero cuando haces clic en un resultado de Google desde el celular, va a una página de casino. Esto se llama cloaking — el malware comprueba el User-Agent y el Referer y solo ataca a usuarios específicos.

Para probar: toma el celular, busca tu sitio en Google, haz clic por el resultado. No escribas la URL directo.

4. Lentitud súbita y CPU alta en el panel

Tu panel de hosting muestra picos de CPU que nunca existieron. El sitio se puso lento. Probablemente tu servidor está siendo usado para minar cripto o enviar spam — dos de las cargas favoritas de quien invade.

5. Archivos que no creaste

Si tienes acceso SSH/FTP, lista los archivos modificados en los últimos 30 días. En WordPress:

find /ruta/wordpress -name "*.php" -mtime -30

Archivos sospechosos comunes:

  • wp-content/uploads/*.php — los uploads no deberían tener PHP
  • wp-content/plugins/<nombre-aleatorio>/ — un plugin que nadie instaló
  • wp-config.bak, info.php, shell.php, r57.php — webshells clásicos

6. Logins de admin que no hiciste

Panel de WordPress → Usuarios. ¿Hay algún admin con nombre raro? ¿Accedió recientemente desde una IP que no es la tuya? Ya estás comprometido.

Por qué tarda en descubrirse

La mayoría de estas señales son invisibles en uso normal. El atacante lo quiere así. Las páginas spam se crean en subdirectorios que nunca visitas. El malware solo se activa para visitantes que vienen de Google. El webshell se queda quieto hasta que alguien necesita usarlo.

Lo que te avisa primero del daño son:

  • Google Safe Browsing — cuando clasifica tu sitio como "Sitio engañoso más adelante". A partir de ahí, Chrome, Firefox y Safari bloquean el acceso.
  • URLhaus, OpenPhish, Spamhaus — listas públicas de dominios maliciosos. Si caes en ellas, los emails de tu dominio empiezan a ir a spam.
  • Wordfence / Sucuri / VirusTotal — bases propias de malware.

Cuando el nombre de tu dominio entra en una de estas listas, recuperarse es lento y doloroso: limpia el malware, pide revisión manual, espera días, perdiendo tráfico todo el tiempo.

Cómo monitorear antes del daño

Lo ideal es escanear el propio sitio periódicamente, desde fuera, como lo haría Google. Buscar:

  • Patrones de JavaScript ofuscado (eval/atob, fromCharCode en volumen)
  • Contenido oculto con palabras de pharma/spam (display:none, off-screen)
  • Iframes externos apuntando a dominios sospechosos
  • Formularios con action en dominio externo
  • Redirecciones automáticas en JS o meta refresh
  • Cloaking: lo que el sitio muestra a Googlebot vs. al usuario normal

Y cruzar el dominio con feeds públicos de threat intel — URLhaus, OpenPhish — para saber si ya caíste en alguna blacklist.

Qué hace Sentinela

El probe de Malware Scan de Sentinela hace exactamente esto, automáticamente, semana tras semana:

  • Crawl de la home + 10 enlaces internos
  • Detección de JS ofuscado (eval, atob, fromCharCode, packers)
  • Contenido oculto con vocabulario de pharma/spam
  • Iframes externos sospechosos
  • Forms con action externo
  • Redirects JS y meta refresh
  • Cloaking — compara lo que el sitio devuelve a Googlebot vs. a Chrome normal y alerta en diff ≥40%
  • Cruza tu dominio con URLhaus + OpenPhish sincronizados a diario

Y para quien usa WordPress: detecta versión, plugins instalados, temas, y cruza con el feed de Wordfence Intelligence para avisarte de un CVE conocido con exploit activo — antes de que el bot que hace drive-by te encuentre.

Corre automático desde el plan Pro (ver la auditoría), y te avisamos por email o Telegram el mismo día que algo aparece.

Si ya pasó

Si llegaste hasta aquí ya en pánico porque tu sitio está mostrando algo raro:

  1. No borres los archivos de inmediato. Saca el sitio de línea (Maintenance Mode, o devuelve 503), pero preserva los archivos unos días — los vas a necesitar para entender cómo entró el atacante.
  2. Cambia todas las contraseñas — admin del sitio, base de datos, FTP, panel de hosting, email vinculado.
  3. Actualiza todo — WordPress core, plugins, temas. La mayoría de las invasiones usa un plugin desactualizado.
  4. Restaurar un backup anterior a la invasión es el camino más limpio — si tienes backup.
  5. Pide revisión a Google Search Console después de limpiar.
  6. Configura el monitoreo para que la próxima vez seas el primero en saber, no el último.

La invasión no es el fin del mundo. Descubrirlo tres semanas después sí lo es.

Descubre en 30 segundos lo que tu dominio está mostrando.

Comprobación pasiva, sin tocar tu servidor. Sale una nota y una lista de hallazgos por gravedad — y tú decides si quieres seguirlo cada mes.