Um website comprometido precisa de três coisas, por esta ordem: contê-lo, descobrir como entraram e depois reconstruí-lo limpo. Fazer estas coisas fora de ordem é a forma como os sites voltam a ser infetados no espaço de um dia.
Siga esta página a partir do início. Não parte de nenhum pressuposto sobre a forma como o ataque aconteceu.
Não se limite a eliminar os ficheiros suspeitos e a continuar. Quase todos os comprometimentos deixam mais do que uma forma de voltar a entrar: uma segunda porta das traseiras, uma conta de administrador ilegítima, uma tarefa agendada ou um ficheiro do núcleo modificado. Remover o sintoma visível e parar por aí é a razão mais comum para um site voltar a ser atacado na mesma semana.
Sinais de que foi realmente comprometido
- Os resultados de pesquisa mostram páginas de produtos farmacêuticos, de jogos de azar ou noutras línguas que nunca escreveu.
- Os visitantes são redirecionados para outro lado, muitas vezes só em dispositivos móveis ou só quando vêm de motores de busca.
- Um navegador ou motor de busca mostra um aviso para o seu domínio.
- Aparecem ficheiros com nomes ou datas de modificação que não consegue explicar.
- O seu site envia spam, ou o seu domínio começa a ser rejeitado pelos fornecedores de email.
- Existe uma conta de administrador que ninguém criou.
Nem todos estes sinais significam um ataque. Um site que está apenas lento ou a dar erros deve-se mais frequentemente a um conflito de plugins ou a um limite de recursos. Consulte primeiro O website não carrega se for só isso que observa.
Passo 1: Contenha o problema
Coloque o site offline antes de investigar. Cada minuto em que fica público causa mais danos à sua reputação, à sua posição nos motores de busca e aos seus visitantes.
A forma mais rápida de o fazer sem eliminar nada é a proteção por palavra-passe, que coloca um início de sessão à frente de todo o site, ao nível do servidor web:
- Vá a Websites e abra o site.
- Abra o separador Proteção por palavra-passe.
- Ative-a e defina um nome de utilizador e uma palavra-passe.
O site passa a mostrar um pedido de credenciais a todos os visitantes, incluindo o atacante, enquanto mantém acesso total através do painel, de SFTP e de SSH.

Se souber o endereço IP do atacante, adicione-o também à Lista de bloqueio de IP no separador Segurança do site.
Não elimine o site e não restaure nada para já. O estado atual é a sua única prova de como o ataque funcionou. Faça agora uma cópia de segurança do site comprometido, identifique-a claramente como infetada e guarde-a num local separado. Poderá precisar dela.
Passo 2: Descubra como entraram
Há apenas algumas respostas realistas, e cada uma muda o que faz a seguir.
Verifique o registo de auditoria do painel. Vá a Definições, depois Conta, depois Ver registo. Ações atribuídas à sua equipa a partir de um endereço IP que nenhum de vós usa significam que a sua própria conta KapsuleHost foi alcançada. Trata-se de um incidente muito maior: consulte Segurança da conta e trate também a conta como comprometida. O separador Atividade do site abrange as alterações feitas através do painel.
Verifique os seus registos de erros e de acessos no separador Registos do site. Pedidos repetidos a um único caminho de plugin, ou uma rajada de POSTs para um endpoint de carregamento, normalmente indicam por onde entraram. Consulte Ler os registos de erros.
Execute uma análise de malware no separador Segurança do site. Consulte Procurar e remover malware para saber como interpretar o resultado.
Verifique o que estava desatualizado. Um plugin, tema ou versão do núcleo desatualizados são, de longe, o ponto de entrada mais comum. Consulte Manter o WordPress atualizado.
Passo 3: Reconstrua o site limpo
Há duas formas de ficar com um site limpo, e só uma delas é fiável.
A forma fiável: restaurar a partir de uma cópia de segurança anterior ao comprometimento
Determine, a partir dos seus registos, quando é que o comprometimento começou, aproximadamente, e depois restaure a partir de uma cópia de segurança feita com uma boa margem antes dessa data.
- Vá à página Cópias de segurança do site.
- Escolha uma cópia de segurança anterior à infeção.
- Restaure-a primeiro para staging. A caixa de diálogo de restauro usa staging como predefinição propositadamente.
- Verifique a cópia de staging: nenhum ficheiro desconhecido, nenhum utilizador administrador desconhecido, nenhum redirecionamento.
- Quando estiver satisfeito, restaure para produção. Restaurar para produção exige que escreva o nome do domínio para confirmar.
Consulte Restaurar a partir de uma cópia de segurança para mais detalhes, incluindo como restaurar os ficheiros e a base de dados em separado.
Em sites WordPress e WooCommerce com bases de dados geridas, a recuperação em tempo no separador PITR do site pode restaurar a base de dados para um minuto específico, em vez de para a última cópia de segurança noturna. Isso é importante quando, de outra forma, perderia um dia de encomendas.
Um restauro reverte tudo, incluindo conteúdo legítimo e encomendas criadas depois de essa cópia de segurança ter sido feita. Antes de restaurar, exporte do site atual todos os dados que precisa de manter, e tenha em conta que o conteúdo exportado de um site comprometido pode, ele próprio, conter código injetado. Inspecione-o antes de o importar.
A forma pouco fiável: limpar no local
Se não tiver uma cópia de segurança limpa, terá de limpar o site à mão. Seja honesto consigo próprio sobre o quão minucioso isto tem de ser.
- Coloque em quarentena todos os ficheiros assinalados pela análise de malware. Consulte Procurar e remover malware.
- Substitua o núcleo do WordPress, todos os plugins e todos os temas por cópias novas obtidas da origem, em vez de os atualizar no local.
- Elimine todos os plugins ou temas que não usa ativamente. O código inativo continua a ser executado quando está acessível.
- Inspecione os ficheiros que a análise não abrange:
.htaccess,wp-config.phpe tudo o que não seja uma imagem na sua pasta de ficheiros carregados. - Verifique as tarefas agendadas no separador Tarefas cron do site, à procura de tarefas que não criou.
- Verifique se a base de dados tem conteúdo injetado, sobretudo nas opções e no conteúdo das publicações.
Passo 4: Altere todas as credenciais
Parta do princípio de que tudo aquilo a que o site tinha acesso foi roubado.
- Palavras-passe de administrador do WordPress. Reponha todas a partir do separador WordPress do site, termine a sessão de todos os utilizadores para que os cookies de sessão roubados deixem de funcionar, e elimine todas as palavras-passe de aplicação que não criou. Consulte Repor a palavra-passe do WordPress.
- Contas de administrador desconhecidas. Elimine-as, e retire os privilégios de administrador a qualquer conta que não precise deles.
- Credenciais da base de dados, no separador Base de dados do site.
- Contas SFTP, no separador SFTP do site. Eliminar uma conta termina as suas sessões abertas.
- Chaves SSH, no separador Acesso SSH do site. Remova todas as chaves que não reconheça.
- A sua palavra-passe KapsuleHost, e revogue todas as chaves de API que não criou. Consulte Chaves de API e acesso para programadores.
Passo 5: Reponha o site e reforce a segurança
Quando tiver a certeza de que o site está limpo, desative a proteção por palavra-passe e deixe o mundo voltar a entrar.
Depois, feche a porta que estava aberta:
- Mantenha tudo atualizado. Consulte Manter o WordPress atualizado e Gerir plugins.
- Ative as proteções de segurança no separador Segurança do site: proteção contra ataques de força bruta, filtragem por país e a lista de bloqueio de IP.
- Ative a autenticação de dois fatores na sua conta KapsuleHost e nas contas de administrador do próprio site.
- Faça uma nova cópia de segurança do site em bom estado. Consulte Fazer uma cópia de segurança.
- Considere a retenção alargada de cópias de segurança, para que um comprometimento que só note semanas depois continue a ser recuperável.
Quando envolver o suporte
Abra um pedido de suporte se alguma destas situações se aplicar:
- O comprometimento ocorreu através da sua conta KapsuleHost e não do site.
- O seu site está a enviar spam, ou a sua reputação de envio foi afetada.
- Não tem nenhuma cópia de segurança utilizável e não consegue limpar o site.
- A sua conta ou o seu site foram suspensos. Consulte Porque é que a sua conta foi suspensa.
- Acredita que o site de outro cliente está a atacar o seu. Consulte Denunciar abusos.
Inclua o que encontrou, quando reparou pela primeira vez e o que já alterou. Quanto mais da sua própria investigação puder partilhar, mais rápida será a resposta.
Resolução de problemas
Os motores de busca continuam a mostrar avisos sobre o site. Peça uma revisão através das ferramentas para webmasters desses motores de busca quando o site estiver realmente limpo. Isso está fora do nosso controlo.
Voltou a acontecer depois de o limpar. Escapou-lhe uma porta das traseiras, ou uma credencial que não alterou continua válida. Em vez disso, restaure a partir de uma cópia de segurança limpa e altere todas as credenciais indicadas no Passo 4.
A análise diz que está limpo, mas o site está claramente comprometido. A análise de ficheiros deteta código malicioso conhecido, não registos injetados na base de dados. Compare com uma cópia de segurança e verifique a base de dados.
Não consigo entrar para corrigir o problema. Use SFTP ou SSH em vez do início de sessão da própria aplicação, que o atacante pode ter alterado. Consulte Acesso SFTP e Gestor de ficheiros.