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 に追加し、これらのファイルの公式バージョンを定期的にサイト上のファイルと自動的に比較します。違いが見られればハッキングされたことがわかり、漏洩箇所を検索できます。その間に、バージョン管理ツールから元のファイルを復元できます。

関連情報