Como verificar se há malware no servidor Linux ou cPanel: ImunifyAV, Maldet e ClamAV, sinais de invasão e comandos para achar arquivos suspeitos.
Em servidor de hospedagem, o malware quase nunca é um vírus de sistema. É um arquivo PHP plantado num site: um painel de controle remoto (webshell), um script que manda spam, uma página falsa de banco, um código que injeta propaganda nas páginas. Ele entra por uma senha vazada do cPanel ou do FTP, ou por um plugin desatualizado. Este guia mostra como procurar com ferramentas e na mão.
Sinais de que algo está errado
- Fila de e-mail crescendo de repente ou o IP do servidor aparecendo em listas de bloqueio (veja como achar o script que envia spam).
- Processos de usuário com nome estranho consumindo CPU o tempo todo (mineração de criptomoeda).
- Sites redirecionando para outros endereços, mostrando propaganda ou aparecendo no Google com títulos em japonês.
- Avisos do Google Search Console, do navegador ("site perigoso") ou de clientes.
Antes de começar
- Acesso root pelo SSH.
- Um backup recente, de antes da suspeita. Se precisar restaurar, você vai querer uma cópia limpa.
- Não apague nada no primeiro momento. Mova para a quarentena e anote data e caminho: as datas dos arquivos ajudam a descobrir por onde o invasor entrou.
Ferramentas para procurar malware
| Ferramenta | Para que serve | Custo |
|---|---|---|
| ImunifyAV | Antivírus voltado para sites. Vem com o cPanel desde a versão 88 e varre as contas pelo WHM. | Gratuito (limpeza automática só na versão paga, ImunifyAV+) |
| Maldet (Linux Malware Detect) | Scanner por linha de comando, com assinaturas de malware de hospedagem compartilhada. Funciona com e sem cPanel. | Gratuito |
| ClamAV | Antivírus genérico. No cPanel, é instalado pelo plugin ClamAV for cPanel e o Maldet pode usá-lo como motor. | Gratuito |
| RKHunter | Procura rootkits e alterações em programas do sistema, não em sites. | Gratuito |
Como verificar com o ImunifyAV (servidor cPanel)
- Confira se está instalado. No WHM, procure ImunifyAV em Plugins. Se não estiver, instale em WHM » Security Center » Security Advisor, no alerta que oferece a instalação.
- Rode uma varredura pela tela do ImunifyAV, nas contas suspeitas ou em todas.
- Analise a lista de arquivos infectados. Cada item mostra a conta, o caminho e o tipo de ameaça.
Como verificar com o Maldet
Instale seguindo o guia do Maldet (Linux Malware Detect) e rode:
maldet -u
maldet -a /home/?/public_html
O primeiro comando atualiza as assinaturas. O segundo varre o public_html de todas as contas. Para uma conta só, troque o ? pelo usuário. Ao final, o Maldet mostra um número de relatório para usar com maldet --report.
Como procurar arquivos suspeitos na mão
Scanner nenhum pega tudo. Estes comandos ajudam a achar o que escapou. Troque usuario pelo usuário da conta:
- Arquivos PHP modificados nos últimos 7 dias:
Sites que não foram atualizados recentemente não deveriam ter PHP novo. Um arquivo novo dentro defind /home/usuario/public_html -name "*.php" -mtime -7 -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sortwp-content/uploadsé sinal forte de invasão. - PHP em pasta de upload, onde só deveria haver imagens:
find /home/*/public_html/wp-content/uploads -name "*.php" - Padrões comuns de código ofuscado:
Plugins legítimos às vezes usam essas funções. Abra o arquivo antes de concluir.grep -rlE --include="*.php" "eval\(base64_decode|eval\(gzinflate|eval\(str_rot13|assert\(\\\$_(POST|GET|REQUEST)" /home/usuario/public_html - Tarefas agendadas estranhas nas contas:
Umls -la /var/spool/cron/ crontab -l -u usuariocurlouwgetbaixando algo de um endereço desconhecido a cada minuto é típico de reinfecção. - Processos da conta e conexões abertas:
Desconfie de processosps -u usuario -o pid,etime,cmd ss -tnp state establishedphp,perlou de nome aleatório rodando há dias, e de conexões para portas incomuns (como 6667, de IRC, ou portas de pools de mineração).
Encontrei malware. E agora?
- Troque as senhas do cPanel, do FTP, dos e-mails e do painel do site (WordPress, por exemplo) da conta afetada.
- Atualize o site e todos os plugins e temas. Remova os que não usa.
- Remova ou coloque em quarentena os arquivos maliciosos e procure de novo. Invasores costumam deixar mais de uma porta de entrada.
- Corrija permissões (pastas 755, arquivos 644; veja como corrigir permissões de contas cPanel).
- Bloqueie os IPs que acessaram os arquivos maliciosos (descubra pelo log de acesso do site) com
csf -d IP "motivo". - Se o site estiver muito comprometido, restaure um backup anterior à invasão e aplique as atualizações em seguida.