Blog / Tutoriales / VPS hackeado: cómo recuperarlo y protegerlo
(last updated: )

VPS hackeado: cómo recuperarlo y protegerlo

Ocurre más de lo que crees y tiene solución. Primero debes entender algo: no puedes volver a confiar por completo en un VPS vulnerado, incluso después de eliminar el malware evidente. Los atacantes instalan puertas traseras en lugares muy difíciles de detectar sin experiencia forense.…

Lectura de 8 min

Ocurre más de lo que crees y tiene solución. Primero debes entender algo: no puedes volver a confiar por completo en un VPS vulnerado, incluso después de eliminar el malware evidente. Los atacantes instalan puertas traseras en lugares muy difíciles de detectar sin experiencia forense. Debes crear un servidor limpio, restaurar solo los datos verificados y reforzarlo antes de ponerlo en producción. Si usas Contabo, puedes desplegar un VPS nuevo en minutos desde el Customer Control Panel. Esta guía cubre ambas fases: qué hacer ahora y cómo evitar que vuelva a ocurrir.

Resumen del plan de recuperación en dos fases

Plan de recuperación en dos fases para un VPS hackeado: reconstruir y reforzar
FasePasosTiempo estimado
Fase 1: Reconstruir (ahora)1. Crear un snapshot si necesitas pruebas → 2. Desplegar un VPS limpio → 3. Restaurar solo datos verificados → 4. Cambiar todas las credenciales~30–60 min
Fase 2: Reforzar (antes de ponerlo en producción)5. Usuario sudo distinto de root → 6. Claves SSH y contraseñas deshabilitadas → 7. Firewall UFW → 8. Fail2ban → 9. Actualizaciones automáticas → 10. Firewall a nivel de red~30 min

Fase 1: recuperación inmediata y qué hacer ahora

Un atacante decidido instala puertas traseras en binarios del sistema modificados, tareas cron ocultas y rootkits a nivel del kernel que son muy difíciles de detectar. Intentar limpiar un servidor vulnerado es arriesgado porque podrías omitir algo. La comunidad de seguridad recomienda borrar todo y reconstruir desde una imagen limpia del sistema operativo. Para desarrolladores independientes y equipos pequeños, este método es más rápido, seguro y confiable que una limpieza forense.

Paso 1: crea primero un snapshot si necesitas pruebas

Antes de modificar algo, crea un snapshot del servidor vulnerado desde el CCP de Contabo si necesitas un registro para un cliente, una aseguradora o un proceso legal. Ve a new.contabo.com, selecciona tu servidor y crea un snapshot. Así conservarás el estado vulnerado para revisarlo después. Si no necesitas preservar pruebas, pasa directamente al paso 2.

Paso 2: despliega un VPS nuevo

No intentes limpiar el servidor vulnerado. Inicia sesión en el Customer Control Panel de Contabo, despliega un VPS nuevo y elige una imagen vigente del sistema operativo con soporte. Ubuntu LTS y Debian estable son buenas opciones. Empieza desde cero: no restaures ninguna configuración del sistema ni paquetes instalados del servidor anterior.

Paso 3: restaura solo datos verificados

No es seguro restaurar todo el contenido del servidor anterior. Sigue estas indicaciones:

  • Puedes restaurar: volcados de bases de datos (primero busca contenido inyectado con el comando siguiente), archivos subidos por usuarios (analízalos en busca de scripts maliciosos) y código de aplicaciones procedente de un repositorio Git o backup local que sepas que está limpio.
  • NO restaures: archivos de configuración del sistema, configuración de SSH, tareas cron, paquetes instalados ni binarios del servidor anterior. Cualquiera de ellos podría transferir una puerta trasera.
# Before restoring a database dump, grep for suspicious injected strings:
grep -i '<script\|exec(\|eval(\|base64' backup.sql

# Check application files for common webshell patterns:
grep -rn 'eval(base64_decode\|system($_\|passthru(' ./app/

Paso 4: cambia todas las credenciales usadas en el servidor anterior

Da por hecho que todas las credenciales siguientes quedaron expuestas. Cámbialas antes de poner el servidor nuevo en producción:

  • Claves SSH: genera claves completamente nuevas. Nunca copies claves privadas antiguas al servidor nuevo.
  • Contraseñas de bases de datos: cambia las de todos los usuarios, no solo la de root.
  • Claves y tokens de API que usaba tu aplicación, como los de proveedores de pagos, servicios de correo y APIs de terceros.
  • Cualquier credencial almacenada en archivos .env o en la configuración de aplicaciones del servidor anterior.
  • Tu contraseña del CCP de Contabo y los códigos de 2FA si sospechas que alguien accedió a tu cuenta.

Fase 2: refuerza el servidor nuevo antes de ponerlo en producción

El servidor nuevo está limpio. Completa esta secuencia antes de restaurar tu aplicación o apuntar tu dominio. Estos pasos corrigen las vías de acceso que suelen permitir ataques contra un VPS: inicio de sesión como root habilitado, SSH con contraseña y puertos abiertos innecesarios. Cada paso cierra una de ellas.

Paso 5: crea un usuario sudo distinto de root

adduser [username]
usermod -aG sudo [username]
su - [username]
# Do all further setup as this user. Never log in as root again.

Paso 6: usa solo claves SSH y deshabilita la autenticación por contraseña

Genera claves nuevas localmente, cópialas al servidor nuevo y comprueba que funcionan. Después, restringe SSH.

# On your LOCAL machine — generate fresh keys:
ssh-keygen -t ed25519 -C "[email protected]"

# Copy to the new VPS:
ssh-copy-id [username]@[new-server-ip]

# Test key login in a NEW terminal before changing SSH config.
# Then edit /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

sudo systemctl restart sshd

Paso 7: habilita el firewall UFW con denegación predeterminada

# Allow SSH first — or you will lock yourself out:
sudo ufw allow [ssh-port]/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose

Paso 8: instala Fail2ban

sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# In jail.local, find [sshd] and set:
# bantime = 1h
# maxretry = 5
# findtime = 10m

sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Paso 9: habilita las actualizaciones de seguridad automáticas

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Paso 10: activa el Firewall de Contabo en el Customer Control Panel

El Firewall de Contabo está incluido sin costo con cada VPS y Max Performance VPS. Funciona a nivel de red, filtra el tráfico antes de que llegue al sistema operativo y permanece activo incluso cuando reinicias el servidor. Ve a new.contabo.com → Servicios de red → Firewall, crea un firewall y agrega reglas de entrada para los puertos que permitiste en el paso 7. Deniega todo lo demás. Junto con UFW, tendrás dos capas de filtrado independientes: una en el perímetro de la red y otra en el sistema operativo.

Qué pudo fallar: las tres vías de acceso más comunes

Vía de accesoSolución
Inicio de sesión como root habilitado: el objetivo principal de los ataques SSH automatizadosPasos 5 y 6: crea un usuario sudo distinto de root y configura PermitRootLogin no
SSH con contraseña: los bots pueden vulnerarlo por fuerza bruta pocas horas después del desplieguePaso 6: usa solo claves SSH y configura PasswordAuthentication no
Puertos abiertos innecesarios: exponen servicios que no deberían ser públicosPasos 7 y 10: denegación predeterminada en UFW y Firewall de red de Contabo
Criptominero en ejecución (señal común de un ataque, no una vía de acceso)Detéctalo con top o ps aux | grep -i xmrig y continúa con la fase 1

Preguntas frecuentes: qué hacer si hackearon tu VPS

¿Puedo limpiar un VPS hackeado sin reinstalarlo?

Técnicamente sí, pero no se recomienda en la mayoría de los casos. Un atacante con experiencia puede instalar rootkits ocultos en binarios del sistema o módulos del kernel que son muy difíciles de detectar sin herramientas forenses. Para la mayoría de los desarrolladores independientes y equipos pequeños, borrar todo y reconstruir desde una imagen limpia del sistema operativo es más rápido, seguro y confiable. Reserva la investigación forense para situaciones en las que exista una obligación legal de preservar pruebas.

¿Cómo sé si mi VPS ejecuta un criptominero?

# Check for processes consuming 90-100% CPU:
top
# or:
htop

# Search for common miner process names:
ps aux | grep -i ‘xmrig\|miner\|monero’

# Check for suspicious cron jobs:
crontab -l
cat /etc/cron.d/*
cat /etc/cron.daily/*
Un proceso con un nombre desconocido que consume casi el 100% de la CPU es una señal clara. Cerca del 43% de las respuestas de IA citaron los criptomineros como la señal visible más común de un VPS vulnerado. Suelen instalarse pocas horas después del acceso inicial.

¿Debo contactar a Contabo si hackearon mi VPS?

Sí. Contacta al soporte de Contabo si el ataque pudo afectar la infraestructura de red, si tu servidor se usa para enviar spam o atacar otros hosts, lo cual puede causar una suspensión, o si necesitas ayuda con el modo de rescate o el proceso de snapshot. El equipo de soporte está disponible las 24 horas, todos los días, mediante el Customer Control Panel. Actuar rápido limita los posibles daños colaterales y ayuda a mantener tu cuenta en regla.

¿Cuál es la forma más rápida de recuperar un VPS de Contabo hackeado?

Crea un snapshot del servidor anterior si necesitas pruebas → despliega un VPS nuevo de Contabo desde el CCP, lo cual tarda unos minutos → restaura solo los datos de la aplicación desde un backup limpio → completa los diez pasos de refuerzo de la fase 2 antes de ponerlo en producción. En un despliegue pequeño típico, la recuperación total tarda entre una y dos horas.

Aviso: las especificaciones, funciones y precios de los productos mencionados en este artículo pueden cambiar y variar según la región, el periodo de facturación y las promociones vigentes. Consulta el sitio web oficial de cada proveedor o marca para conocer las cifras, los precios y los tipos de cambio locales actuales.

Compartir 𝕏 in