{"id":43304,"date":"2026-09-25T12:24:40","date_gmt":"2026-09-25T15:24:40","guid":{"rendered":"https:\/\/king.host\/blog\/?p=43304"},"modified":"2026-09-25T12:24:42","modified_gmt":"2026-09-25T15:24:42","slug":"blog-meu-site-foi-hackeado-o-que-fazer","status":"publish","type":"post","link":"https:\/\/king.host\/blog\/servicos-de-hospedagem\/blog-meu-site-foi-hackeado-o-que-fazer\/","title":{"rendered":"Meu site foi hackeado: o que fazer agora (guia t\u00e9cnico passo a passo)"},"content":{"rendered":"\n<p>Site hackeado n\u00e3o se resolve por tentativa e erro. O princ\u00edpio t\u00e9cnico \u00e9 direto: primeiro cont\u00e9m-se o dano, depois identifica-se o vetor de entrada, e s\u00f3 ent\u00e3o a limpeza e a atualiza\u00e7\u00e3o acontecem, nessa ordem, porque pular uma etapa costuma reabrir a mesma porta.<\/p>\n\n\n\n<p>O tempo joga contra quem demora a agir. Segundo o relat\u00f3rio <em>State of WordPress Security<\/em> da <a href=\"https:\/\/patchstack.com\/\" target=\"_blank\" rel=\"noopener\">Patchstack<\/a>, 91% das vulnerabilidades identificadas em 2025 estavam em plugins, n\u00e3o no n\u00facleo do WordPress, e metade das falhas de alto impacto \u00e9 explorada em menos de 24 horas ap\u00f3s ser divulgada publicamente. O <a href=\"https:\/\/www.crowdstrike.com\/\" target=\"_blank\" rel=\"noopener\">CrowdStrike 2026 Threat Hunting Report<\/a> chega a um n\u00famero parecido: 88% dos CVEs com exploit de prova de conceito publicado j\u00e1 foram usados em ataques reais dentro de 48 horas. Isso raramente tem a ver com sorte do atacante. Tem a ver com a velocidade da resposta. \u00c9 esse fluxo de resposta que este guia detalha.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Por que a ordem importa mais que a pressa<\/strong><\/h2>\n\n\n\n<p>Um site comprometido raramente tem um \u00fanico ponto de falha. Arquivos alterados, banco de dados com scripts injetados e credenciais expostas costumam aparecer juntos, e cada pe\u00e7a tem uma depend\u00eancia de ordem: o isolamento precisa vir antes do diagn\u00f3stico, o diagn\u00f3stico precisa vir antes da limpeza, e a limpeza precisa vir antes da rota\u00e7\u00e3o de credenciais.<\/p>\n\n\n\n<p>Quando essa ordem \u00e9 quebrada, o efeito de costume \u00e9 o mesmo: o site volta ao ar limpo, mas reinfecta dias depois, porque a senha usada pelo invasor continuava v\u00e1lida ou o plugin vulner\u00e1vel nunca foi atualizado. Antes de seguir para o passo a passo, vale ter \u00e0 m\u00e3o acesso SSH ou ao terminal do painel de hospedagem, j\u00e1 que a maior parte dos comandos abaixo depende disso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Como recuperar um site hackeado em 6 passos<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Isole o site via SSH<\/strong><\/h3>\n\n\n\n<p>Coloque o site em modo de manuten\u00e7\u00e3o e troque a senha do painel de hospedagem e do acesso SSH antes de investigar qualquer coisa. Revogue tamb\u00e9m tokens de API de integra\u00e7\u00f5es como gateway de pagamento e webhooks.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>touch \/var\/www\/html\/.maintenance<br>passwd seu_usuario<\/code><\/pre>\n\n\n\n<p><strong>Verifica\u00e7\u00e3o:<\/strong> confirme que o site exibe a p\u00e1gina de manuten\u00e7\u00e3o para visitantes externos e que a senha antiga n\u00e3o funciona mais em uma nova tentativa de login.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Identifique o vetor de entrada<\/strong><\/h3>\n\n\n\n<p>Restaurar sem saber por onde o invasor entrou tende a reabrir a mesma porta. Rode os comandos abaixo, nessa sequ\u00eancia, para mapear o que mudou:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>find \/var\/www\/html -name \"*.php\" -mtime -7 -type f<br>grep -rl \"eval(\\|base64_decode(\\|gzinflate(\" \/var\/www\/html --include=\"*.php\"<br>mysql -u usuario -p -e \"SELECT user_login, user_registered FROM wp_users ORDER BY user_registered DESC LIMIT 10;\" nome_do_banco<\/code><\/pre>\n\n\n\n<p>Na maioria dos casos, o resultado aponta para um plugin desatualizado, um tema baixado fora do reposit\u00f3rio oficial, ou uma senha reaproveitada de outro servi\u00e7o j\u00e1 vazado.<\/p>\n\n\n\n<p><strong>Verifica\u00e7\u00e3o:<\/strong> liste os arquivos modificados e as contas de administrador criadas recentemente antes de seguir. Se nada aparecer de estranho, amplie a janela do find para 30 dias.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Fa\u00e7a um snapshot forense<\/strong><\/h3>\n\n\n\n<p>Antes de deletar qualquer coisa, salve uma c\u00f3pia completa do estado atual, arquivos e banco de dados juntos.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>tar -czf \/backup\/snapshot-comprometido-$(date +%Y%m%d).tar.gz \/var\/www\/html<br>mysqldump -u usuario -p nome_do_banco &gt; \/backup\/db-comprometido-$(date +%Y%m%d).sql<\/code><\/pre>\n\n\n\n<p><strong>Verifica\u00e7\u00e3o:<\/strong> confirme que o .tar.gz e o .sql foram gerados com tamanho maior que zero antes de seguir para a limpeza.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Restaure ou limpe arquivo por arquivo<\/strong><\/h3>\n\n\n\n<p>Com backup limpo dispon\u00edvel, restaurar \u00e9 o caminho mais r\u00e1pido: volte arquivos e banco ao ponto anterior \u00e0 infec\u00e7\u00e3o e aplique todas as atualiza\u00e7\u00f5es pendentes antes de reativar o site.<\/p>\n\n\n\n<p>Sem backup limpo, a limpeza manual reinstala o essencial a partir de fontes oficiais:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>wp core update --force --allow-root<br>wp plugin install $(wp plugin list --field=name --allow-root) --force --allow-root<br>find \/var\/www\/html\/wp-content\/uploads -name \"*.php\" -delete<\/code><\/pre>\n\n\n\n<p><strong>Verifica\u00e7\u00e3o:<\/strong> rode de novo o grep de fun\u00e7\u00f5es suspeitas do Passo 2 e confirme que o resultado voltou vazio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Rotacione todas as credenciais<\/strong><\/h3>\n\n\n\n<p>A limpeza t\u00e9cnica sem troca de credenciais deixa a porta fechada, mas a chave ainda na m\u00e3o de quem invadiu.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>curl -s https:\/\/api.wordpress.org\/secret-key\/1.1\/salt\/<br>wp user session destroy --all --allow-root<\/code><\/pre>\n\n\n\n<p>Troque tamb\u00e9m a senha do usu\u00e1rio do banco de dados, as chaves SSH e as credenciais de FTP pelo painel de hospedagem.<\/p>\n\n\n\n<p><strong>Verifica\u00e7\u00e3o:<\/strong> tente logar com a senha antiga em qualquer servi\u00e7o trocado. Se funcionar, a rota\u00e7\u00e3o n\u00e3o foi completa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6. Atualize tudo e ative uma camada de prote\u00e7\u00e3o<\/strong><\/h3>\n\n\n\n<p>Com o vetor de entrada corrigido, atualize o restante do ambiente e adicione uma camada extra de defesa antes de considerar o caso encerrado.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>wp plugin update --all --allow-root<br>wp theme update --all --allow-root<\/code><\/pre>\n\n\n\n<p>Um firewall de aplica\u00e7\u00e3o web (WAF) ajuda, mas tem limite: a Patchstack aponta que firewalls tradicionais bloqueiam apenas 12% dos ataques espec\u00edficos a WordPress. O caminho mais s\u00f3lido combina WAF, autentica\u00e7\u00e3o em duas etapas e atualiza\u00e7\u00f5es autom\u00e1ticas para os plugins mais cr\u00edticos.<\/p>\n\n\n\n<p><strong>Verifica\u00e7\u00e3o:<\/strong> confira se todos os plugins aparecem como \u201catualizado\u201d no painel e se o login administrativo agora exige segundo fator.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Checklist fazer \/ n\u00e3o fazer<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-background has-fixed-layout\" style=\"background-color:#ddc4f3\"><tbody><tr><td><strong>\u2705 Fazer<\/strong><\/td><td><strong>\u274c N\u00e3o fazer<\/strong><\/td><\/tr><tr><td>Isolar o site antes de investigar<\/td><td>Investigar com o site ainda exposto ao p\u00fablico<\/td><\/tr><tr><td>Identificar o vetor de entrada antes de limpar<\/td><td>Restaurar backup sem saber a causa da invas\u00e3o<\/td><\/tr><tr><td>Rotacionar toda credencial ap\u00f3s a limpeza<\/td><td>Reativar o site com as senhas antigas<\/td><\/tr><tr><td>Atualizar plugins, tema e core juntos<\/td><td>Atualizar s\u00f3 o componente que causou o ataque<\/td><\/tr><tr><td>Guardar snapshot forense antes de deletar<\/td><td>Apagar arquivos comprometidos sem c\u00f3pia<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>E, por \u00faltimo, a reputa\u00e7\u00e3o no Google<\/strong><\/h2>\n\n\n\n<p>Se o Google marcou o site como comprometido, a limpeza t\u00e9cnica n\u00e3o remove o aviso automaticamente. \u00c9 preciso acessar o Search Console, na se\u00e7\u00e3o de Seguran\u00e7a e a\u00e7\u00f5es manuais, confirmar que o problema foi resolvido e solicitar a revis\u00e3o descrevendo objetivamente o que foi feito. O prazo de resposta costuma variar de alguns dias a duas semanas, e pedir uma segunda revis\u00e3o antes disso n\u00e3o acelera o processo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pr\u00f3ximo passo<\/strong><\/h2>\n\n\n\n<p>Esse \u00e9 o passo a passo t\u00e9cnico completo. Se preferir contar com suporte especializado para investigar o vetor de ataque e conduzir a limpeza, a hospedagem WordPress da KingHost j\u00e1 vem com backup di\u00e1rio autom\u00e1tico, SSD e acesso root via SSH configurados desde o in\u00edcio. <a href=\"https:\/\/king.host\/suporte\">Fale com o suporte t\u00e9cnico da KingHost<\/a> e comece a recupera\u00e7\u00e3o sem sair do lugar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Perguntas frequentes<\/strong><\/h2>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Quanto tempo leva para recuperar um site depois de ser hackeado?<\/strong><\/summary>\n<p>A limpeza t\u00e9cnica costuma levar de algumas horas a um ou dois dias, dependendo da extens\u00e3o do dano e de haver ou n\u00e3o backup limpo dispon\u00edvel. A remo\u00e7\u00e3o do aviso de seguran\u00e7a no Google pode levar de alguns dias a algumas semanas ap\u00f3s a revis\u00e3o ser aprovada.<\/p>\n<\/details>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>\u00c9 poss\u00edvel recuperar um site hackeado sem ter backup?<\/strong><\/summary>\n<p>\u00c9 poss\u00edvel, embora mais trabalhoso. Exige reinstalar o n\u00facleo do WordPress e os plugins a partir de fontes oficiais, al\u00e9m de limpar o banco de dados manualmente, tabela por tabela.<\/p>\n<\/details>\n<\/div><\/div>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Trocar de hospedagem resolve o problema de site hackeado?<\/strong><\/summary>\n<p>N\u00e3o de forma isolada. A causa geralmente est\u00e1 no c\u00f3digo do site, n\u00e3o na infraestrutura em si. Migrar sem corrigir o vetor de entrada apenas transporta a vulnerabilidade para outro lugar.<\/p>\n\n\n\n<p><strong>Trocar de hospedagem resolve o problema de site hackeado?<\/strong><\/p>\n<\/details>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Preciso avisar meus clientes se meu site for hackeado?<\/strong><\/summary>\n<p>Se dados pessoais de clientes eram armazenados ou processados no site e h\u00e1 ind\u00edcio de exposi\u00e7\u00e3o, sim. A LGPD prev\u00ea notifica\u00e7\u00e3o em casos de incidente de seguran\u00e7a com risco a titulares de dados.<\/p>\n<\/details>\n","protected":false},"excerpt":{"rendered":"<p>Site hackeado n\u00e3o se resolve por tentativa e erro. O princ\u00edpio t\u00e9cnico \u00e9 direto: primeiro cont\u00e9m-se o dano, depois identifica-se o vetor de entrada, e s\u00f3 ent\u00e3o a limpeza e a atualiza\u00e7\u00e3o acontecem, nessa ordem, porque pular uma etapa costuma reabrir a mesma porta. O tempo joga contra quem demora a agir. Segundo o relat\u00f3rio [&hellip;]<\/p>\n","protected":false},"author":439,"featured_media":43307,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1326,1324],"tags":[],"class_list":["post-43304","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hospedagem-wordpress","category-servicos-de-hospedagem"],"_links":{"self":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/43304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/users\/439"}],"replies":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/comments?post=43304"}],"version-history":[{"count":1,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/43304\/revisions"}],"predecessor-version":[{"id":43308,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/posts\/43304\/revisions\/43308"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/media\/43307"}],"wp:attachment":[{"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/media?parent=43304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/categories?post=43304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/king.host\/blog\/wp-json\/wp\/v2\/tags?post=43304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}