
Detecta injeção de processo e manipulação de memória usadas por malware. Encontra regiões RWX, padrões de shellcode, hooks de API, sequestro de threads e process hollowing. Construído em Rust para velocidade. Inclui interfaces CLI e TUI.
O Ghost é uma ferramenta de detecção de injeção de processo escrita em Rust. Ele monitora os processos em execução e tenta detectar coisas suspeitas, como injeção de código, manipulação de memória e outros truques que malwares usam para se esconder.
A ideia principal é simples: escanear processos e procurar por padrões de memória estranhos, funções com hooks, shellcode e outros sinais de que algo foi adulterado. Funciona no Windows, Linux e macOS (embora o suporte ao Windows seja o mais completo no momento).
Algumas das coisas que ele pode detectar:
Ele também mapeia os comportamentos detectados para o framework MITRE ATT&CK, o que é útil se você estiver documentando ameaças ou escrevendo relatórios.



Você precisará ter o Rust instalado (1.70 ou mais recente). Depois:
cargo build --release
No Windows, você também precisará das ferramentas de build do MSVC. No Linux, são necessárias ferramentas básicas de desenvolvimento (gcc, etc.). No macOS, são necessárias as ferramentas de linha de comando do Xcode.
Existem duas interfaces: uma ferramenta de linha de comando e uma interface de terminal interativa.
CLI:
# Scan all processes
cargo run --bin ghost-cli --release
# Target one process
cargo run --bin ghost-cli --release -- --pid 1234
# Output results as JSON
cargo run --bin ghost-cli --release -- --format json
# Use a config file
cargo run --bin ghost-cli --release -- --config ghost.toml
# Continuous monitoring mode
cargo run --bin ghost-cli --release -- --watch
# Watch with custom interval (10 seconds)
cargo run --bin ghost-cli --release -- --watch --interval 10
TUI:
cargo run --bin ghost-tui --release
A TUI oferece um painel com estatísticas ao vivo, histórico de detecções, e você pode navegar com atalhos de teclado (Tab para alternar visualizações, Q para sair).
O Ghost suporta tab completion para Bash, Zsh, Fish, PowerShell e Elvish.
# Generate completions for your shell
ghost completions bash > /etc/bash_completion.d/ghost
ghost completions zsh > ~/.zfunc/_ghost
ghost completions fish > ~/.config/fish/completions/ghost.fish
# Or use the install script
./completions/install.sh
Consulte completions/README.md para instruções detalhadas de instalação.
O Ghost oferece suporte a recursos opcionais que podem ser habilitados durante a compilação:
# YARA rule scanning (requires libyara)
cargo build --features yara-scanning
# Neural ML integration (requires Python and trained models)
cargo build --features neural-ml
# eBPF detection (Linux only, currently stub implementation)
cargo build --features ebpf-detection
Nota: os recursos de ML exigem modelos treinados para funcionar. Consulte ghost_ml/README.md para instruções de treinamento.
Você pode ajustar o comportamento com um arquivo de configuração TOML. Veja examples/ghost.toml como ponto de partida. Você pode habilitar/desabilitar métodos de detecção específicos, definir limites de confiança, ignorar processos do sistema e controlar a frequência das varreduras.
Exemplo de trecho de configuração:
shellcode_detection = true
hollowing_detection = true
hook_detection = true
confidence_threshold = 0.3
skip_system_processes = true
scan_interval_ms = 2000
Por padrão, o Ghost limita a saída a 10 indicadores por detecção e deduplica descobertas semelhantes. Para varreduras grandes, você pode reduzir ainda mais a saída:
Opções de linha de comando:
# Summary mode - outputs statistics instead of full details
ghost-cli --summary
# Limit indicators per detection
ghost-cli --max-indicators 5
# Only report malicious detections
ghost-cli --min-threat-level malicious
# Combine for minimal output
ghost-cli --summary --quiet
Arquivo de configuração:
[output]
verbosity = "minimal" # minimal, normal, or verbose
max_indicators_per_detection = 5
min_threat_level = "suspicious"
deduplicate_indicators = true
summary_mode = true
Isso é útil ao escanear muitos processos ou ao executar monitoramento contínuo, quando os arquivos de saída cresceriam demais.
O Modo Watch permite monitorar seu sistema continuamente sem precisar executar varreduras manualmente. É útil para detectar tentativas de injeção no momento em que ocorrem.
# Start watching (default: 5 second interval)
ghost-cli --watch
# Custom interval
ghost-cli --watch --interval 10
# Watch specific process
ghost-cli --watch --pid 1234
# Quiet mode - only alerts on new detections
ghost-cli --watch --quiet
Quando executado no modo watch, o Ghost:
Exemplo de saída:
[14:32:15] Scan #1: clean (142 processes, 89ms)
[14:32:20] Scan #2: 2 NEW detections! (2 total, 142 processes, 91ms)
[MALICIOUS] suspicious.exe (PID: 4521) - 87% confidence
[SUSPICIOUS] helper.dll (PID: 2201) - 54% confidence
[14:32:25] Scan #3: 2 known threats (142 processes, 88ms)
O Modo Baseline captura um instantâneo do estado atual do seu sistema. Varreduras posteriores podem comparar com essa linha de base para detectar mudanças - útil para encontrar novas ameaças sem ter que lidar com problemas conhecidos.
# Save current state as baseline
ghost-cli --save-baseline baseline.json
# Later: compare against baseline
ghost-cli --baseline baseline.json
# Combine with watch mode
ghost-cli --watch --baseline baseline.json
Ao comparar com uma linha de base, o Ghost relata:
Exemplo de saída:
3 changes from baseline:
New threats (1):
injector.exe (PID: 8821) - Malicious
Escalated threats (1):
helper.dll (PID: 2201): Suspicious -> Malicious
New indicators (1):
svchost.exe (PID: 1024):
- RWX memory region detected
- Shellcode pattern match
O código de saída é 1 se houver mudanças detectadas e 0 se estiver limpo.