Excluindo o conteúdo inserido em vários arquivos no servidor linux

1

Muitas vezes tenho problemas com sites que são invadidos. Geralmente eles acabam com o script inserido em arquivos diferentes. Existe uma maneira, no linux, de procurar por esse conteúdo e automaticamente deleta-lo? Geralmente esse conteúdo começa com e termina com algo assim.

<!--2d3965--><script type="text/javascript" language="javascript">
</script><!--/2d3965-->

Seria possível usar algum tipo de combinação de grep para procurar por arquivos que contenham esse conteúdo e, em seguida, canalizá-lo para sed para excluir tudo do que é necessário.

para a

    
por Pracovek 10.09.2013 / 11:28

2 respostas

2

Eu escrevi esse script, pode ser útil.

#!/usr/bin/env python
import os
import sys


for infile in sys.argv[1:]:
    print infile
    filetmp=infile+'.tmp'
    BEGIN='<!--2d3965-->'
    END='<!--/2d3965-->'
    f = open(infile, 'r')
    ftmp = open(filetmp, 'w')
    skip=False


    for line in f:
        if BEGIN in line:
            #print line.partition(BEGIN)[0]
            ftmp.write(line.partition(BEGIN)[0])
            skip=True
        if END in line:
           #print line.partition(END)[2]
            ftmp.write(line.partition(END)[2])
            skip=False
        else:
            if not skip:
                ftmp.write(line)
    #you can add save restrictions here
    os.rename(filetmp, infile)

Você deve dar:

  1. nome do arquivo com vírus
  2. string, que marca o início do vírus string
  3. string, que marca o fim do vírus

    Não se esqueça de alterar as permissões novamente, se o arquivo exigir isso. btw Eu acho, é appliable apenas para arquivos de texto.

Por favor, teste e faça backup antes de usar.

Use da seguinte maneira:

python cleaner.py index.html js/jquery.js
    
por 11.09.2013 / 13:50
1

Eu adicionaria esses arquivos ao subversion ou git e compararia automaticamente a versão oficial desses arquivos com os arquivos nos sites regularmente. Se você notar a diferença, sabe que foi hackeado e pode procurar o vazamento. Enquanto isso, você pode restaurar o arquivo original da ferramenta de controle de versão.

    
por 10.09.2013 / 11:38