ハッキングされたサイトでよく問題が起きます。たいていは、別のファイルにスクリプトが挿入されてしまいます。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)
以下を与える必要があります:
- ウイルスに感染したファイル名
- 文字列、これはウイルスが始まる弦
文字列、これはウイルス終焉
ファイルに権限が必要な場合は、権限を元に戻すことを忘れないでください。ちなみに、これはテキスト ファイルにのみ適用できると思います。
使用する前にテストしてバックアップしてください。
次のように使用します:
python cleaner.py index.html js/jquery.js
答え2
私はこれらのファイルを Subversion または Git に追加し、これらのファイルの公式バージョンを定期的にサイト上のファイルと自動的に比較します。違いが見られればハッキングされたことがわかり、漏洩箇所を検索できます。その間に、バージョン管理ツールから元のファイルを復元できます。