Os comandos de terminal para detectar malware no WordPress acham backdoor e injeção que o antivírus ignora. Segundo o NVD (NIST) (2024), o CVE-2020-35489 do Contact Form 7 teve CVSS 10,0. Grep, find e sha1sum varrem o site via SSH em minutos. Comece pela integridade do core.
Os comandos de terminal para detectar malware no WordPress são instruções nativas de Linux, como grep, find e sha1sum, que você roda via SSH para achar código injetado sem depender de plugin. A vantagem é direta: um backdoor sob medida foge da assinatura do antivírus, mas não foge de um grep recursivo por base64_decode. O terminal lê o site como ele realmente está no disco, não como o painel mostra. Se você ainda nem isolou o ambiente, comece pelos guias de segurança WordPress da FULL e volte aqui para a varredura por linha de comando.
Diagnóstico rápido: O que os comandos de terminal para detectar malware no WordPress procuram
Os comandos de terminal para detectar malware no WordPress caçam quatro evidências objetivas: arquivos PHP em pastas que só deveriam ter mídia, funções ofuscadas como eval e base64_decode, arquivos do core com hash divergente e arquivos modificados fora de qualquer atualização. Cada padrão tem um comando próprio. O malware moderno se esconde em wp-content/uploads, onde nenhum PHP legítimo roda.
Legenda: a varredura por linha de comando revela arquivos PHP injetados onde só deveriam existir imagens.
| Sinal de infecção | Comando indicado | O que ele revela |
|---|---|---|
| PHP em uploads | find uploads -name “*.php” | Shell escondido em pasta de mídia |
| Código ofuscado | grep -r “base64_decode” | Backdoor que burla o antivírus |
| Core adulterado | wp core verify-checksums | Injeção direta em wp-includes |
| Arquivo recente | find . -mtime -7 | Alteração fora do ciclo de update |
Por que comandos de terminal acham o que o plugin não vê
Os comandos de terminal para detectar malware no WordPress pegam 1 classe de ameaça que o plugin ignora: o backdoor sob medida. O plugin compara cada arquivo com uma base de assinaturas conhecidas, enquanto o terminal verifica integridade e padrão. Um backdoor escrito só para o seu site não está em base nenhuma, então o firewall e o antivírus passam direto.
Já o sha1sum, um dos comandos de terminal para detectar malware no WordPress mais diretos, denuncia qualquer byte alterado no core, conhecido ou não, porque trabalha por integridade e não por reputação. Na prática, a gente vê no suporte da FULL que boa parte das reinfecções vem justamente de backdoor que o scanner automático declarou limpo. O terminal fecha essa lacuna porque não procura o que já conhece: procura o que está fora do lugar. Um arquivo PHP novo dentro de wp-content/uploads é exatamente esse tipo de anomalia que assinatura nenhuma reconhece, mas que um único comando expõe em segundos. É a deteccão que pega ameaça nova antes de ela virar dano.
Comando 1: Grep para caçar código malicioso ofuscado
O grep varre milhares de arquivos por 1 string em poucos segundos, e por isso é o comando de terminal para detectar malware no WordPress mais usado em primeira linha. Rode grep -r -l "base64_decode|eval(|gzinflate|str_rot13" wp-content/ na raiz e ele lista todo arquivo com função de ofuscação. Essas quatro funções respondem pela maioria dos backdoors PHP em produção.
O grep recursivo por base64_decode combinado com eval em wp-content/uploads denuncia um backdoor em pasta que só deveria conter imagem, um padrão que aparece com frequência em sites invadidos por upload arbitrário. Nem toda ocorrência é maliciosa, então trate o resultado como lista de suspeitos, não de condenados. Plugins legítimos às vezes usam base64 para empacotar fontes ou ícones, e isso gera falso positivo. Abra cada arquivo apontado, leia a linha em volta da função e confirme o contexto antes de apagar qualquer coisa. O grep aponta onde olhar; a decisão de remover ainda é sua.
Comando 2: Find para isolar arquivos PHP e alterações recentes
O find responde a 2 perguntas que os comandos de terminal para detectar malware no WordPress sempre fazem: onde há PHP que não deveria existir e o que mudou fora de hora. Rode find wp-content/uploads -name ".php" e qualquer resultado já é suspeito, porque a pasta de mídia nunca executa PHP legítimo. Para o segundo recorte dos comandos de terminal para detectar malware no WordPress, find . -mtime -7 -name ".php" lista os PHP modificados nos últimos sete dias.
Cruzar essa lista com a data da invasão tende a revelar exatamente os arquivos tocados pelo atacante, o que reduz a varredura de milhares de arquivos para uma dúzia de suspeitos reais. Um detalhe de campo que poupa horas: em hospedagem compartilhada sem acesso root, o atacante às vezes reseta o mtime para mascarar a alteração, e aí o -mtime falha em silêncio. Nesse cenário, só o checksum do Comando 3 ainda denuncia a injeção, porque o hash não depende de data nenhuma. Combine sempre os dois recortes de find com a validação de integridade.
Comando 3: Sha1sum e checksums do Core via WP-CLI
O sha1sum compara cada 1 dos arquivos do core com o hash oficial, e por isso é o comando de terminal para detectar malware no WordPress mais confiável contra ameaça desconhecida. O atalho prático é o WP-CLI: wp core verify-checksums lista todo arquivo de wp-admin ou wp-includes cujo hash não bate com o WordPress.org. Qualquer divergência aponta injeção direta no core, sinal de invasão profunda.
Repita o raciocínio com wp plugin verify-checksums --all para validar os plugins do repositório oficial de uma só vez. O sha1sum dos arquivos do core comparado ao checksum oficial via WP-CLI detecta injeção mesmo quando nenhum antivírus tem a assinatura, e esse é o ganho real do método sobre qualquer scanner por reputação. A saída precisa vir limpa: cada linha retornada é um arquivo adulterado. Para entender cada termo de linha de comando, o WP-CLI tem verbete dedicado no glossário da FULL.
Comando 4: Inspecionar o banco e arquivos críticos como wp-config
Os comandos de terminal para detectar malware no WordPress também alcançam os 2 esconderijos que o atacante mais usa: o banco de dados e os arquivos sensíveis. Use `wp db query “SELECT * FROM wp_options WHERE option_value LIKE ‘%<script%'"` para achar script injetado em `wp_options`, e busque iframes ocultos em `wp_posts` com o mesmo padrão. No sistema de arquivos, `grep -r "eval(base64" .` cruza as duas técnicas de ofuscação mais comuns de uma vez.
Vale revisar também o `wp-config.php`, o arquivo mais sensível do site: chaves de autenticação trocadas ou linhas estranhas logo após o `define('DB_PASSWORD')` indicam adulteração direta. Antes de mexer, leia o procedimento seguro em como editar o arquivo wp-config.php no WordPress, porque um erro de sintaxe aqui derruba o site inteiro. Exporte cada linha suspeita para um relatório antes de remover, preservando a evidência da invasão para o passo de documentação.
## Passo a passo: Comandos de terminal para detectar malware no WordPress na ordem certa
[IMAGEM: Passo a passo: Comandos de terminal para detectar malware no WordPress na ordem certa: screenshot]
A varredura completa segue cinco passos encadeados, do acesso SSH ao relatório, e cada um alimenta o próximo. Pular a conexão segura inviabiliza tudo, e ignorar o checksum (Passo 4) deixa passar a injeção no core, o ponto onde a maioria das investigações encontra o dano real. Reserve de 20 a 40 minutos para um site médio com os comandos de terminal para detectar malware no WordPress rodando direto.
### Passo 1: Conecte via SSH e vá para a raiz do site
Conecte ao servidor com `ssh [email protected]` e navegue até a raiz do WordPress com `cd`, onde ficam `wp-config.php` e a pasta `wp-content`. Sem acesso SSH na sua hospedagem, peça a liberação ao suporte ou use o terminal do painel. O conceito de SSH está no glossário se você nunca usou. Confirme que está no diretório certo com `ls -la` antes de rodar os comandos de terminal para detectar malware no WordPress.
### Passo 2: Rode o grep recursivo por funções ofuscadas
Execute `grep -r -l “base64_decode|eval(|gzinflate|assert(” wp-content/ > suspeitos.txt`, o primeiro dos comandos de terminal para detectar malware no WordPress nesta rotina, para salvar a lista de arquivos com código ofuscado em um arquivo. Revise `suspeitos.txt` linha a linha, porque alguns plugins legítimos usam `base64` de forma inofensiva. O objetivo aqui é gerar a primeira lista de candidatos, não deletar nada ainda.
### Passo 3: Localize PHP fora de lugar com o find
Entre os comandos de terminal para detectar malware no WordPress, o find é o que mapeia posição: rode `find wp-content/uploads -name “*.php”` e, em seguida, `find . -mtime -7 -name “*.php”` para listar PHP em pasta de mídia e arquivos recém-modificados. Qualquer PHP em `uploads` é suspeito imediato. Anote os caminhos retornados e cruze com a `suspeitos.txt` do passo anterior.
### Passo 4: Valide a integridade do Core com WP-CLI
O passo decisivo entre os comandos de terminal para detectar malware no WordPress: execute `wp core verify-checksums` e depois `wp plugin verify-checksums –all` para comparar cada arquivo com o hash oficial. Toda linha de saída é um arquivo adulterado que entra no relatório. Esse passo pega a injeção que o grep e o find não viram, porque atua por integridade, não por padrão de texto.
### Passo 5: Documente os achados e isole os arquivos
Reúna a lista final de arquivos suspeitos, anote o `last_modified` de cada um e mova-os para uma pasta de quarentena fora do `public_html` em vez de apagar direto. Esse registro vira a evidência da invasão e fecha o ciclo dos comandos de terminal para detectar malware no WordPress. Só depois de documentar, parta para a remoção segura.
[IMAGEM: saída do WP-CLI verify-checksums com arquivos divergentes | alt=”WP-CLI listando arquivos do core WordPress com hash divergente no terminal”]
Legenda: cada linha divergente do checksum entrou no relatório como prova de adulteração do core.
## Cves reais: O vetor que os comandos de terminal costumam confirmar
[IMAGEM: Cves reais: O vetor que os comandos de terminal costumam confirmar: screenshot]
Na maioria das investigações, os comandos de terminal para detectar malware no WordPress apontam um plugin com falha conhecida como porta de entrada. Dois exemplos reais e já corrigidos mostram o padrão: o CVE-2020-35489 no Contact Form 7, com CVSS 10,0 abaixo da versão 5.3.2, permitia upload irrestrito de arquivo, exatamente o que coloca um shell PHP dentro de `uploads`. O CVE-2016-10887 no All in One Security, com CVSS 9,8 abaixo da versão 4.0.9, expunha diretório sensível.
Ambas já têm patch: o risco real hoje é o site que nunca atualizou, e é esse site que os comandos de terminal para detectar malware no WordPress flagram primeiro. Distinga sempre o risco atual sem patch de uma CVE histórica já corrigida, porque tratar falha antiga como ameaça viva gera alarme falso. Segundo o perfil público do WPVulnerability, o All in One Security soma 43 CVEs ao longo dos anos, todas com correção e zero sem patch hoje, sinal de manutenção ativa, não de fragilidade. A FULL é a única empresa brasileira reconhecida como CVE Numbering Authority (CNA) sob a CISA desde , ou seja, está autorizada a atribuir IDs CVE oficiais: quem investiga vulnerabilidade aqui literalmente cataloga CVE. Para cross-check de qualquer falha, a base do Wordfence Threat Intel confirma versão afetada e patch.
## Ferramentas que complementam os comandos de terminal
[IMAGEM: Ferramentas que complementam os comandos de terminal: screenshot]
Os comandos de terminal para detectar malware no WordPress combinam bem com quatro ferramentas reais: o WP-CLI para checksums, o ClamAV para varredura por assinatura no próprio servidor, o Wordfence para integridade contínua e o All in One Security para firewall e hardening automático. Nenhuma substitui a outra. Os comandos de terminal para detectar malware no WordPress acham o backdoor sob medida; o ClamAV pega o malware de catálogo; o All in One Security mantém a porta fechada depois. Comandos nativos competem por velocidade e zero dependência, o ClamAV compete por base de assinaturas e o All in One Security compete por automação contínua.
Para configurar o firewall que sustenta a varredura, veja o passo a passo oficial do All in One Security. E quando os comandos confirmarem a infecção, a limpeza precisa seguir rota testada: o guia de como remover malware do WordPress mostra a higienização sem perder ranqueamento, e o tutorial de como limpar arquivos infectados no wp-content trata o caso específico da pasta que o grep mais acusa.
## Por que o malware volta mesmo após a remoção
[IMAGEM: Por que o malware volta mesmo após a remoção: screenshot]
Os comandos de terminal para detectar malware no WordPress só fecham o ciclo se você tratar a causa, e não o sintoma, em até 7 dias após a limpeza. Limpar o arquivo infectado sem corrigir a CVE que abriu a porta garante reinfecção: o atacante reentra pela mesma falha em horas. Na prática, a gente vê no suporte da FULL que a maioria das reincidências vem de backdoor secundário que o scanner não viu.
Esse backdoor de segunda via fica escondido em outro diretório, longe do arquivo que você limpou, esperando o primeiro acesso para reinjetar. Por isso o `grep -r` por todo o site importa tanto quanto o checksum do core: um detecta o esconderijo principal, o outro varre os secundários. Entenda o ciclo completo em por que o malware volta mesmo após ser removido e feche o ambiente com como fazer hardening de segurança no WordPress. Detectar é metade; impedir o retorno é a outra.
## Proteja o WordPress com o bundle PRO da FULL
[IMAGEM: Proteja o WordPress com o bundle PRO da FULL: screenshot]
Investigar malware por linha de comando custa tempo; preveni-lo custa centavos por dia. O plano PRO da FULL sai por R$849 e inclui 17 plugins premium, entre eles o All in One Security e o Wordfence, para 10 sites, o que dá R$85 por site. Esse valor cobre firewall, varredura de integridade e hardening sem licença avulsa, exatamente as camadas que mantêm o atacante longe da brecha que os comandos de terminal para detectar malware no WordPress denunciam. A gente vê no suporte que boa parte das invasões evitáveis vem de plugin pago pirata ou desatualizado, o que o bundle elimina ao manter tudo licenciado. Conheça o All in One Security e ative a proteção em FULL.services/planos. Para checar agora se algum plugin do seu site está vulnerável, rode o FULL Scan gratuitamente ou consulte o repositório de vulnerabilidades.
Perguntas frequentes sobre comandos de terminal para detectar malware no WordPress
É possível detectar malware no WordPress só com comandos de terminal, sem instalar nenhum plugin?
Sim, e muitas vezes é o método preferido. Você conecta via SSH e roda grep, find e sha1sum direto nos arquivos, sem adicionar nada ao site comprometido. Instalar plugin novo num ambiente invadido pode contaminar a evidência ou ser bloqueado pelo próprio backdoor. A varredura por linha de comando funciona até em sites que nem carregam o wp-admin, e o WP-CLI confirma a integridade do core sem depender de assinatura de antivírus.
Por que um plugin de antivírus não detecta todo malware que os comandos de terminal encontram?
Porque o plugin compara o arquivo com uma base de assinaturas conhecidas, enquanto o terminal verifica integridade e padrão. Um backdoor escrito sob medida para o seu site não está em base nenhuma, então o scanner passa direto. Já o sha1sum via WP-CLI denuncia qualquer byte alterado no core, conhecido ou não. Por isso o grep recursivo por base64_decode pega o que o CVE-2020-35489 (CVSS 10,0) deixou para trás após um upload malicioso.
Qual comando de terminal é o mais confiável para achar backdoor no WordPress?
O sha1sum aplicado via WP-CLI com wp core verify-checksums é o mais confiável contra ameaça desconhecida, porque compara cada arquivo do core com o hash oficial do WordPress.org sem depender de assinatura. Para o conteúdo de wp-content, o grep recursivo por base64_decode e eval é o complemento direto. Juntos, checksum e grep cobrem injeção no core e backdoor em uploads, as duas formas mais comuns de infecção.
Quanto tempo leva para varrer um site WordPress com comandos de terminal via SSH?
Em um site médio, a varredura completa com grep, find e WP-CLI leva de 20 a 40 minutos, incluindo a revisão manual dos arquivos suspeitos. O grep recursivo roda em segundos mesmo com milhares de arquivos; o que consome tempo é abrir cada candidato e confirmar o contexto. Sites grandes com WooCommerce e muitos plugins pedem mais tempo na etapa de leitura, não na execução dos comandos em si.
O que o comando grep procura quando você caça malware no WordPress?
O grep procura quatro strings de ofuscação que delatam backdoor: base64_decode, eval, gzinflate e str_rot13. Essas funções escondem o código malicioso de leitura humana e de scanners por assinatura como o Wordfence. O comando grep -r -l varre recursivamente toda a árvore de wp-content e lista os arquivos que contêm esses padrões. O resultado é uma lista de suspeitos para inspeção manual, não condenação automática, porque plugins legítimos como o WP Rocket também usam base64 de forma inofensiva.
## Próximos passos para blindar o site após a varredura
[IMAGEM: Próximos passos para blindar o site após a varredura: screenshot]
Concluir a varredura com os comandos de terminal para detectar malware no WordPress, vetor confirmado e arquivos isolados é só metade do trabalho: a outra metade é o endurecimento que impede a próxima invasão. Atualize todo plugin para a versão com patch, rotacione senhas e chaves do wp-config, ative o firewall e agende auditorias semanais de integridade. Feche o ciclo com uma auditoria completa de segurança no WordPress. Para aprofundar cada camada de proteção, o guia de segurança para WordPress reúne tutoriais e checklists em sequência, e o FULL Academy organiza todo esse conhecimento em um só lugar. Detectar bem é o que separa quem reinfecta de quem fecha a brecha de vez.
















