删除Linux服务器上多个文件中插入的内容

删除Linux服务器上多个文件中插入的内容

我经常遇到网站被黑客入侵的问题。通常,这些网站会在不同的文件中插入脚本。在 Linux 上,有没有办法搜索这些内容并自动删除?这些内容通常以类似这样的内容开头和结尾。

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

是否可以使用某种组合的 grep 来搜索包含此内容的文件,然后将其通过管道传输到 sed 以删除从到

的所有内容

答案1

我写了这样的脚本,它可能会有用。

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

答案2

我会将这些文件添加到 subversion 或 git 中,并定期自动将这些文件的官方版本与网站上的文件进行比较。如果您发现差异,您就知道您已被黑客入侵,并且可以搜索泄漏。同时,您可以从版本控制工具中恢复原始文件。

相关内容