comprobaciones de seguridad en linux
Kit de herramientas de detección, eliminación y endurecimiento de criptomineros para servidores Linux.
Construido a partir de respuesta a incidentes del mundo real: detecta mineros que se ocultan de
ps,top,htopybtopusando técnicas de rootkit.
git clone https://gitlab.com/abdom.seada/security-checks.git
cd security-checks
sudo bash setup.sh
🔀 Rama:
master— Este kit de herramientas reside en la ramamaster. Se pueden agregar otros scripts de seguridad en ramas separadas en el futuro.
⚠️ Ejecuta
setup.shuna vez justo después de clonar — saltarse esto es la causa #1 de errores.
sudo bash setup.sh
setup.sh maneja todo automáticamente:
| Paso | Qué hace |
|---|---|
| ✅ Permisos | chmod +x en miner-hunter y todos los scripts lib/*.sh |
| ✅ Directorios | Crea /var/log/miner_hunter/ y /var/lib/miner_hunter/ (solo root, 700) |
| ✅ Dependencias | Verifica perf, mpstat, iptables, fail2ban, bc, strings — instala automáticamente las faltantes |
| ✅ Autocomprobación | Ejecuta ./miner-hunter --version para confirmar que todo está correctamente enlazado |
Salida esperada cuando la configuración tiene éxito:
✅ Configuración completa — todas las comprobaciones exitosas.
Próximos pasos:
sudo ./miner-hunter scan # Escaneo seguro de solo lectura
sudo ./miner-hunter full # Escanear → Matar → Endurecer
💡 ¿Por qué es necesario? Linux no ejecutará un archivo a menos que tenga el flag
+x. Git y transferencias SCP eliminan esto.setup.sharregla todos los archivos de una sola vez — incluyendo los móduloslib/de los que depende el script principal.
sudo ./miner-hunter scan # ✅ Seguro — solo lectura, cero cambios
sudo ./miner-hunter full # ⚠️ Pipeline completo: Escanear → Matar → Endurecer
sudo ./miner-hunter scan --dry-run # 👁️ Modo vista previa — muestra lo que sucedería
| Comando | Descripción | ¿Cambia el sistema? |
|---|---|---|
scan | Escaneo completo de detección — procesos ocultos, CPU, red, persistencia | ✅ No |
kill | Matar mineros identificados, bloquear IPs de pool, eliminar artefactos | ⚠️ Sí |
harden | Endurecimiento post-incidente — SSH, firewall, watchdog, línea base de integridad | ⚠️ Sí |
full | Ejecuta escanear → matar → endurecer con avisos de confirmación entre fases | ⚠️ Sí |
report | Mostrar el informe de escaneo más reciente | ✅ No |
| Opción | Descripción |
|---|---|
-d, --dry-run | Previsualizar todas las acciones sin realizar cambios |
-e, --evidence DIR | Guardar evidencia en un directorio personalizado en lugar de /root/miner_evidence_* |
-h, --help | Mostrar ayuda |
-v, --version | Mostrar versión |
Situaciones del mundo real y exactamente qué ejecutar en cada una.
top no muestra nada"Este es el síntoma clásico de un rootkit. El minero se oculta de las herramientas de espacio de usuario pero no puede ocultarse de los contadores de rendimiento del hardware.
# Paso 1: Ejecuta un escaneo seguro primero — confirma lo que hay antes de tocar nada
sudo ./miner-hunter scan
Lo que verás si hay un minero presente:
🚨 [CRÍTICO] Anomalía de CPU: 97% CPU de usuario pero top muestra máximo 2% por proceso
🚨 [CRÍTICO] perf detectó 4 hilos ocultos consumiendo ~94% de CPU total
🚨 [CRÍTICO] Conexión activa a 185.x.x.x:9200 (puerto de minería conocido)
🚨 [CRÍTICO] Hilo falso del kernel PID=3421 NOMBRE=[kworker/0:1] EXE=/tmp/.x/miner
# Paso 2: Mata al minero y bloquea su pool
sudo ./miner-hunter kill
# Paso 3: Endurece el servidor para que no pueda regresar
sudo ./miner-hunter harden
Notaste algo sospechoso — tráfico saliente inusual, una tarea cron que no creaste, un proceso con nombre raro — pero no estás seguro.
# Ejecuta un escaneo completo — completamente seguro, solo lectura, cero cambios
sudo ./miner-hunter scan
# Luego lee el informe estructurado
sudo ./miner-hunter report
El informe en /root/miner_evidence_*/report.txt categoriza cada hallazgo por severidad:
[CRÍTICO] entradas → proceder a kill inmediatamente[ADVERTENCIA] entradas → revisar manualmente antes de actuarEl minero tiene un mecanismo de persistencia — una tarea cron, servicio systemd, entrada PM2, o puerta trasera en perfil de shell que lo revive después de matarlo.
sudo ./miner-hunter scan
Busca estos en la salida:
⚠️ [ADVERTENCIA] Entrada cron sospechosa: * * * * * /tmp/.x/update
🚨 [CRÍTICO] Servicio systemd malicioso: /etc/systemd/system/update-check.service
🚨 [CRÍTICO] Proceso PM2 'app-worker' tiene 8432 reinicios — probablemente bucle de reaparición de minero
🚨 [CRÍTICO] Puerta trasera en perfil de shell detectada en /root/.bashrc
# kill elimina TODOS los artefactos de persistencia — no solo el proceso en ejecución
sudo ./miner-hunter kill
# Luego endurece para instalar el watchdog y ser alertado si algo reaparece
sudo ./miner-hunter harden
💡 Después de
kill, el watchdog cron se ejecuta cada 5 minutos y registra en/var/log/miner_hunter/watchdog_alerts.log— sabrás de inmediato si algo regresa.
Endurecimiento proactivo antes de implementar — sin minero, sin incidente, solo asegurando.
# Ejecuta harden solo — no necesita escaneo ni kill
sudo ./miner-hunter harden
Esto hará:
sshd/usr/bin (checksums MD5 — para que puedas detectar binarios alterados después)Después de kill, el paso de verificación reporta que el minero podría seguir ejecutándose:
⚠️ EL MINERO PUEDE HABER REAPARECIDO
CPU: 89% | Conexiones mineras: 1
Los bloqueos de firewall están en su lugar — el minero no puede alcanzar el pool
Considera un REINICIO o REINSTALACIÓN DEL SISTEMA OPERATIVO
# 1. Los bloqueos de firewall ya están en su lugar — el minero NO PUEDE alcanzar su pool
# Confirma que los bloqueos están activos:
iptables -L OUTPUT -n | grep DROP
# 2. Ejecuta un segundo escaneo para ver qué sobrevivió
sudo ./miner-hunter scan
# 3. Verifica si hay un rootkit de módulo del kernel ocultando el proceso
lsmod | grep -iE 'diamorphine|reptile|kovid|rootkit'
# 4. Valor de tainted distinto de cero = módulos del kernel fuera de árbol cargados (indicador de rootkit)
cat /proc/sys/kernel/tainted
Si el valor de tainted del kernel es distinto de cero o aparece un módulo rootkit conocido — el minero tiene control a nivel de kernel. El camino más seguro en este punto es una reinstalación completa del sistema operativo desde una instantánea limpia conocida.
Después de harden, el watchdog cron ya está instalado. Aquí te mostramos cómo trabajar con él:
# Ve el registro de alertas en tiempo real
tail -f /var/log/miner_hunter/watchdog_alerts.log