
verificações de segurança do Linux
Kit de detecção, remoção e fortalecimento de criptomineradores para servidores Linux.
Construído a partir de resposta a incidentes reais — detecta mineradores que se escondem de
ps,top,htopebtopusando técnicas de rootkit.
git clone https://gitlab.com/abdom.seada/security-checks.git
cd security-checks
sudo bash setup.sh
🔀 Branch:
master— Este kit está na branchmaster. Outros scripts de segurança podem ser adicionados em branches separadas no futuro.
⚠️ Execute
setup.shuma vez logo após clonar — pular isso é a causa nº 1 de erros.
sudo bash setup.sh
setup.sh cuida de tudo automaticamente:
| Etapa | O que faz |
|---|---|
| ✅ Permissões | chmod +x no miner-hunter e em todos os scripts lib/*.sh |
| ✅ Diretórios | Cria /var/log/miner_hunter/ e /var/lib/miner_hunter/ (apenas root, 700) |
| ✅ Dependências | Verifica perf, mpstat, iptables, fail2ban, bc, strings — instala automaticamente os que faltam |
| ✅ Autoteste | Executa ./miner-hunter --version para confirmar que tudo está configurado corretamente |
Saída esperada quando a configuração é bem-sucedida:
✅ Configuração concluída — todas as verificações passaram!
Próximos passos:
sudo ./miner-hunter scan # Escaneamento seguro somente leitura
sudo ./miner-hunter full # Escaneamento → Matar → Fortalecer
💡 Por que isso é necessário? O Linux não executa um arquivo a menos que ele tenha a flag
+x. Git e transferências SCP removem isso.setup.shcorrige todos os arquivos de uma só vez — incluindo os móduloslib/dos quais o script principal depende.
sudo ./miner-hunter scan # ✅ Seguro — somente leitura, zero alterações
sudo ./miner-hunter full # ⚠️ Pipeline completo: Escanear → Matar → Fortalecer
sudo ./miner-hunter scan --dry-run # 👁️ Modo pré-visualização — mostra o que aconteceria
| Comando | Descrição | Altera o sistema? |
|---|---|---|
scan | Escaneamento completo de detecção — processos ocultos, CPU, rede, persistência | ✅ Não |
kill | Mata mineradores identificados, bloqueia IPs dos pools, remove artefatos | ⚠️ Sim |
harden | Fortalecimento pós-incidente — SSH, firewall, watchdog, linha de base de integridade | ⚠️ Sim |
full | Executa escaneamento → matar → fortalecer com prompts de confirmação entre as fases | ⚠️ Sim |
report | Exibe o relatório de escaneamento mais recente | ✅ Não |
| Opção | Descrição |
|---|---|
-d, --dry-run | Pré-visualiza todas as ações sem fazer nenhuma alteração |
-e, --evidence DIR | Salva evidências em um diretório personalizado em vez de /root/miner_evidence_* |
-h, --help | Mostra ajuda |
-v, --version | Mostra versão |
Situações do mundo real e exatamente o que executar em cada uma.
top não mostra nada"Este é o sintoma clássico de rootkit. O minerador está se escondendo das ferramentas do espaço do usuário, mas não pode se esconder dos contadores de desempenho do hardware.
# Passo 1: Execute um escaneamento seguro primeiro — confirme o que está lá antes de tocar em algo
sudo ./miner-hunter scan
O que você verá se um minerador estiver presente:
🚨 [CRÍTICO] Anomalia de CPU: 97% de CPU de usuário, mas top mostra no máximo 2% por processo
🚨 [CRÍTICO] perf detectou 4 threads ocultas consumindo ~94% do total da CPU
🚨 [CRÍTICO] Conexão ativa para 185.x.x.x:9200 (porta de mineração conhecida)
🚨 [CRÍTICO] Thread de kernel falsa PID=3421 NOME=[kworker/0:1] EXE=/tmp/.x/miner
# Passo 2: Mate o minerador e bloqueie seu pool
sudo ./miner-hunter kill
# Passo 3: Fortaleça o servidor para que ele não possa voltar
sudo ./miner-hunter harden
Você notou algo suspeito — tráfego de saída incomum, um cron job que você não criou, um processo com nome estranho — mas não tem certeza.
# Execute um escaneamento completo — totalmente seguro, somente leitura, zero alterações
sudo ./miner-hunter scan
# Em seguida, leia o relatório estruturado
sudo ./miner-hunter report
O relatório em /root/miner_evidence_*/report.txt categoriza cada descoberta por gravidade:
[CRÍTICO] → prossiga para kill imediatamente[AVISO] → revise manualmente antes de agirO minerador possui um mecanismo de persistência — um cron job, serviço systemd, entrada PM2 ou backdoor no profile do shell que o reanima depois que você o mata.
sudo ./miner-hunter scan
Procure por estes na saída:
⚠️ [AVISO] Entrada cron suspeita: * * * * * /tmp/.x/update
🚨 [CRÍTICO] Serviço systemd malicioso: /etc/systemd/system/update-check.service
🚨 [CRÍTICO] Processo PM2 'app-worker' tem 8432 reinicializações — provavelmente loop de reanimação do minerador
🚨 [CRÍTICO] Backdoor no profile do shell detectado em /root/.bashrc
# kill remove TODOS os artefatos de persistência — não apenas o processo em execução
sudo ./miner-hunter kill
# Em seguida, fortaleça para instalar o watchdog e ser alertado se algo reanimar
sudo ./miner-hunter harden
💡 Após
kill, o watchdog cron é executado a cada 5 minutos e registra em/var/log/miner_hunter/watchdog_alerts.log— você saberá imediatamente se algo voltar.
Fortalecimento proativo antes de implantar — sem minerador, sem incidente, apenas bloqueando tudo.
# Execute harden de forma independente — sem necessidade de scan ou kill
sudo ./miner-hunter harden
Isso irá:
sshd/usr/bin (checksums MD5 — para que você possa detectar binários adulterados posteriormente)Após kill, a etapa de verificação relata que o minerador pode ainda estar em execução:
⚠️ MINERADOR PODE TER REANIMADO
CPU: 89% | Conns de mineração: 1
Bloqueios de firewall estão em vigor — minerador não consegue alcançar o pool
Considere uma REINICIALIZAÇÃO ou REINSTALAÇÃO DO SO
# 1. Os bloqueios de firewall já estão em vigor — o minerador NÃO PODE alcançar seu pool
# Confirme que os bloqueios estão ativos:
iptables -L OUTPUT -n | grep DROP
# 2. Execute um segundo escaneamento para ver o que sobreviveu
sudo ./miner-hunter scan
# 3. Verifique a existência de um rootkit de módulo de kernel escondendo o processo
lsmod | grep -iE 'diamorphine|reptile|kovid|rootkit'
# 4. Taint diferente de zero = módulos de kernel fora da árvore carregados (indicador de rootkit)
cat /proc/sys/kernel/tainted
Se o valor de taint do kernel for diferente de zero ou um módulo rootkit conhecido aparecer — o minerador tem controle em nível de kernel. O caminho mais seguro neste ponto é uma reinstalação completa do SO a partir de um snapshot conhecidamente limpo.
Após harden, o watchdog cron já está instalado. Veja como trabalhar com ele:
# Acompanhe o log de alertas em tempo real
tail -f /var/log/miner_hunter/watchdog_alerts.log