
Detecta inyección de procesos y manipulación de memoria utilizada por malware. Encuentra regiones RWX, patrones de shellcode, enganches de API, secuestro de hilos y vaciado de procesos. Construido en Rust para velocidad. Incluye interfaces CLI y TUI.
Fantasma es una herramienta de detección de inyección de procesos escrita en Rust. Vigila los procesos en ejecución e intenta detectar cosas sospechosas como inyección de código, manipulación de memoria y otros trucos que el malware utiliza para ocultarse.
La idea principal es simple: escanear procesos y buscar patrones de memoria extraños, funciones enganchadas, shellcode y otros signos de que algo ha sido manipulado. Funciona en Windows, Linux y macOS (aunque el soporte para Windows es el más completo por ahora).
Algunas de las cosas que puede detectar:
También mapea los comportamientos detectados al marco MITRE ATT&CK, lo cual es útil si estás documentando amenazas o escribiendo informes.



Necesitarás tener Rust instalado (1.70 o más reciente). Luego:
cargo build --release
En Windows, también necesitarás las herramientas de compilación de MSVC. Linux necesita herramientas de desarrollo básicas (gcc, etc.). macOS necesita las herramientas de línea de comandos de Xcode.
Hay dos interfaces: una herramienta de línea de comandos y una interfaz de terminal interactiva.
CLI:
# Escanear todos los procesos
cargo run --bin ghost-cli --release
# Apuntar a un proceso
cargo run --bin ghost-cli --release -- --pid 1234
# Mostrar resultados como JSON
cargo run --bin ghost-cli --release -- --format json
# Usar un archivo de configuración
cargo run --bin ghost-cli --release -- --config ghost.toml
# Modo de monitoreo continuo
cargo run --bin ghost-cli --release -- --watch
# Monitorear con intervalo personalizado (10 segundos)
cargo run --bin ghost-cli --release -- --watch --interval 10
TUI:
cargo run --bin ghost-tui --release
La TUI te ofrece un panel con estadísticas en vivo, historial de detección, y puedes navegar con atajos de teclado (Tab para cambiar vistas, Q para salir).
Fantasma soporta completado con tabulador para Bash, Zsh, Fish, PowerShell y Elvish.
# Generar completados para tu shell
ghost completions bash > /etc/bash_completion.d/ghost
ghost completions zsh > ~/.zfunc/_ghost
ghost completions fish > ~/.config/fish/completions/ghost.fish
# O usar el script de instalación
./completions/install.sh
Consulta completions/README.md para instrucciones detalladas de instalación.
Fantasma soporta características opcionales que se pueden habilitar durante la compilación:
# Escaneo de reglas YARA (requiere libyara)
cargo build --features yara-scanning
# Integración ML neuronal (requiere Python y modelos entrenados)
cargo build --features neural-ml
# Detección eBPF (solo Linux, implementación actualmente esqueleto)
cargo build --features ebpf-detection
Nota: Las características ML requieren modelos entrenados para funcionar. Consulta ghost_ml/README.md para instrucciones de entrenamiento.
Puedes ajustar el comportamiento con un archivo de configuración TOML. Revisa examples/ghost.toml como punto de partida. Puedes habilitar/deshabilitar métodos de detección específicos, establecer umbrales de confianza, omitir procesos del sistema y controlar la frecuencia de escaneo.
Ejemplo de fragmento de configuración:
shellcode_detection = true
hollowing_detection = true
hook_detection = true
confidence_threshold = 0.3
skip_system_processes = true
scan_interval_ms = 2000
Por defecto, Fantasma limita la salida a 10 indicadores por detección y elimina duplicados de hallazgos similares. Para escaneos grandes, puedes reducir aún más la salida:
Opciones de línea de comandos:
# Modo resumen - muestra estadísticas en lugar de detalles completos
ghost-cli --summary
# Limitar indicadores por detección
ghost-cli --max-indicators 5
# Solo informar detecciones maliciosas
ghost-cli --min-threat-level malicious
# Combinar para salida mínima
ghost-cli --summary --quiet
Archivo de configuración:
[output]
verbosity = "minimal" # minimal, normal o verbose
max_indicators_per_detection = 5
min_threat_level = "suspicious"
deduplicate_indicators = true
summary_mode = true
Esto es útil al escanear muchos procesos o al ejecutar monitoreo continuo donde los archivos de salida crecerían demasiado.
El modo de vigilancia te permite monitorear tu sistema continuamente sin tener que ejecutar escaneos manualmente. Es útil para detectar intentos de inyección en el momento en que ocurren.
# Empezar a vigilar (por defecto: intervalo de 5 segundos)
ghost-cli --watch
# Intervalo personalizado
ghost-cli --watch --interval 10
# Vigilar un proceso específico
ghost-cli --watch --pid 1234
# Modo silencioso - solo alerta sobre nuevas detecciones
ghost-cli --watch --quiet
Cuando se ejecuta en modo vigilancia, Fantasma:
Ejemplo de salida:
[14:32:15] Escaneo #1: limpio (142 procesos, 89ms)
[14:32:20] Escaneo #2: ¡2 NUEVAS detecciones! (2 totales, 142 procesos, 91ms)
[MALICIOSO] suspicious.exe (PID: 4521) - 87% de confianza
[SOSPECHOSO] helper.dll (PID: 2201) - 54% de confianza
[14:32:25] Escaneo #3: 2 amenazas conocidas (142 procesos, 88ms)
El modo de línea base captura una instantánea del estado actual de tu sistema. Escaneos posteriores pueden compararse contra esta línea base para detectar cambios - útil para encontrar nuevas amenazas sin tener que revisar problemas conocidos.
# Guardar el estado actual como línea base
ghost-cli --save-baseline baseline.json
# Después: comparar contra la línea base
ghost-cli --baseline baseline.json
# Combinar con modo vigilancia
ghost-cli --watch --baseline baseline.json
Al comparar contra una línea base, Fantasma informa:
Ejemplo de salida:
3 cambios desde la línea base:
Nuevas amenazas (1):
injector.exe (PID: 8821) - Malicioso
Amenazas escaladas (1):
helper.dll (PID: 2201): Sospechoso -> Malicioso