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에 추가하고 정기적으로 이 파일의 공식 버전을 사이트의 파일과 자동으로 비교합니다. 차이점이 발견되면 해킹을 당했다는 사실을 알고 유출을 검색할 수 있습니다. 그 사이에 버전 관리 도구에서 원본 파일을 복원할 수 있습니다.

관련 정보