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

我经常遇到黑客攻击的网站的问题。 Usualy他们最终在不同的文件中插入脚本。 有没有一种方法,在Linux上,search这个内容,并自动删除它? Usualy这个内容从这个开始,结束于这样的事情。

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

是否有可能使用某种组合的grep来search包含这个内容的文件,然后将其传送给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. string,它标记病毒的开始string
  3. string,这标志着病毒的结束

    如果文件需要,不要忘记更改权限。 顺便说一句,我认为,它只适用于文本文件。

请使用前进行testing和备份。

以这种方式使用它:

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

我会将这些文件添加到subversion或git中,并自动将这些文件的正式版本与网站上的文件进行定期比较。 如果你看到有所不同,你就知道你被黑了,可以search泄漏。 同时,您可以从版本控制工具恢复原始文件。