WP-CLI

Comandos do WP-CLI para ajudar a limpar um site infectado

Limpar um site WordPress infectado por algum malware pode ser bem trabalhoso, mas há comandos do WP-CLI que podem ajudar e agilizar algumas tarefas.

Limpar um site WordPress infectado por algum malware pode ser bem trabalhoso, mas há comandos do WP-CLI que podem ajudar e agilizar algumas tarefas.

Reinstalar plugins

Como códigos maliciosos são comumente injetados em plugins válidos, é altamente recomendado reinstalar todos os plugins diretamente do repositório de plugins do WordPress.

Para verificar se o código de algum plugin está diferente do código disponível no repositório de plugins do WordPress, use o comando wp plugin verifiy-checksums:

$ wp plugin verify-checksums --all

Caso esse comando informe que arquivos e códigos dos plugins instalados em seu site são diferentes da versão no repositório de plugins do WordPress, será necessário reinstalá-los. Em sites com dezenas de plugins, essa tarefa pode ser bem demorada caso feita manualmente mas o WP-CLI pode fazer isso com apenas um comando (dois comandos aninhados para ser mais sincero):

$ wp plugin install $(wp plugin list --field=name) --force

Essa linha é a junção de dois comandos disponíveis em wp plugin (install e list). Em resumo, o comando mandará o WordPress instalar os plugins listados pelo comando entre $(), no caso, todos os plugins. Atenção para o parâmetros --field=name que retornará apenas o nome do plugin (única informação necessária nesse momento) ao invés de todos seus detalhes e --force para remover os arquivos durante a instalação.

Se você quiser instalar apenas um único plugin, use este comando substituindo slug-do-plugin pelo slug real:

$ wp plugin install slug-do-plugin --force

Infelizmente, o comando wp plugin install não consegue instalar plugins que não estejam disponíveis no repositório de plugins do WordPress (normalmente plugins pagos) sendo necessário instalá-los manualmente.

Reinstalar temas

Reinstalar temas também é recomendado para garantir que a versão instalada esteja livre de códigos que possam ter sido adicionados por malwares. Infelizmente, o comando wp theme não possui um verify-checksums para chamar de seu, nesse caso o mais seguro é reinstalar os temas:

$ wp theme install $(wp theme list --field=name) --force

Essa linha também é uma junção de dois comandos assim como o exemplo anterior, porém, agora para temas. wp theme (install e list).

Assim como o comando plugin install, esse comando só consegue instalar temas disponíveis no repositório de temas do WordPress.

Como o WordPress precisa de um único tema para funcionar, eu acho mais interessante revisar os temas instalados no site e remover todos os temas desnecessários deixando apenas o tema ativo nele. Caso queira remover todos os temas inativos do site, use este outro comando:

$ wp theme delete $(wp theme list --field=name --status=inactive)

Esse comando usa o já citado theme list (com um novo parâmetro para listar apenas temas inativos) e o theme delete.

Redefinir a senha de todos os usuários

Após remover manualmente usuários que possam ter sido criados indevidamente durante uma infecção, também aconselho redefinir a senha dos demais usuários para garantir que as contas continuem seguras. Isso pode ser feito com esta linha:

$ wp user reset-password $(wp user list --field=ID)

O comando wp user reset-password redefinirá a senha de todos os usuários retornados pelo comando wp user list.

Caso você queira redefinir a senha de usuários com uma função específica no WordPress, você pode adicionar o parâmetro --role ao list assim:

$ wp user reset-password $(wp user list --field=ID --role=administrator)

Gerar novos Salts

A cereja do bolo na hora de limpar um site é gerar novas chaves únicas e Salts para seu arquivo wp-config.php com o comando wp config shuffle-salts:

$ wp config shuffle-salts

O Salts do WordPress é composto por um conjunto de chaves de segurança única salvas no wp-config.php que ajudam a fortalecer ainda mais as senhas geradas criptografando-as. Além disso, criar novos Salts fará com que todos os usuários logados no site sejam desconectados, ajudando a remover sessões indesejadas.

Dica bônus

Se você quiser adicionar uma camada de segurança ao seu site WordPress.org, recomendo fortemente o Jetpack Security que oferece recursos como:

Caso você esteja estudando uma nova hospedagem para seu site, os planos Negócios e eCommerce do WordPress.com incluem os recursos do Jetpack, além de uma estrutura otimizada para o WordPress e acesso SSH necessário para usar o WP-CLI.


Apesar de ainda ser necessário analisar manualmente as demais pastas de sua instalação WordPress (algo que o Jetpack Security faz por você), reinstalar plugins e temas, redefinir senha dos usuários e criar novos Salts de uma forma quase automática ajuda bastante no processo de limpeza do site.

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Descubra mais sobre Rafael Funchal

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading