Назад | Перейти на главную страницу

Удаление вставленного содержимого в нескольких файлах на сервере linux

У меня часто возникают проблемы с сайтами, которые взламывают. Обычно они заканчиваются вставкой скрипта в разные файлы. Есть ли в Linux способ найти этот контент и автоматически удалить его? Обычно этот контент начинается и заканчивается примерно так.

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

Можно ли использовать какую-то комбинацию grep для поиска файлов, содержащих этот контент, а затем передать его в sed, чтобы удалить все из

к

Я написал такой скрипт, может пригодиться.

#!/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)

Вы должны дать:

  1. имя файла с вирусом
  2. строка, которая отмечает вирус начинается строка
  3. строка, которая отмечает конец вируса

    Не забудьте вернуть права доступа, если этого требует файл. кстати, думаю, это применимо только для текстовых файлов.

Пожалуйста, проверьте его и сделайте резервную копию перед использованием.

Используйте это так:

python cleaner.py index.html js/jquery.js

Я бы добавил эти файлы в subversion или git и автоматически сравнивал официальную версию этих файлов с файлами на сайтах на регулярной основе. Если вы видите разницу, значит, вы были взломаны, и можете искать утечку. Тем временем вы можете восстановить исходный файл с помощью средства управления версиями.