刪除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 中,並定期自動將此文件的正式版本與網站上的文件進行比較。如果您看到差異,您就知道您已被駭客攻擊,並且可以搜尋洩漏資訊。同時您可以從版本控制工具還原原始檔案。

相關內容