이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:
















JohnG 입니다.
먼저 이번 블로그의 악성코드 샘플은 지난 5월 13~14일 2009 KISA 해킹방어대회 및 컨퍼런스때 "나도 정보보호 분석가"라는 이벤트로 사용되어진 문제입니다.

환경 :
Windows XP (32bit)
VMware 가상 컴퓨터

분석 대상:
Backdoor/W32.Prorat.525824 (nProtect)
Backdoor.Prorat.19.AC (BitDefender)
Backdoor.Win32.Prorat.19ac (Kaspersky)
BackDoor.ProRat.32 (바이러스 체이서)

사용 툴:
ProcessExplorerNt
IceSword122en
Filemon
Regmon
Autoruns
TcpView
RegScanner

 

   

프로세스 외형적 분석

Analysis by Process Explorer

 

Analysis by IceSword


설명: Process Explorer에서 확인한 service 프로세스는 두 개가 존재합니다.
service.exe (PID:484) , service.exe (PID:692) 시스템 파일인 service.exe는 한 프로세스만 존재하기 때문에 둘 중 하나는 가짜(악성코드)임을 알 수 있죠.
각 파일의 위치를 확인해 보면 PID가 692인 service.exe 가 가짜임을 확인합니다.
(정상적으로 \\WINDOWS\system32\service.exe 로 저장되어 있습니다.)
service.exe 파일이 어떤 행동을 하는지 확인해 보기 위해 Filemon.exe 툴을 이용하여 모니터링을 합니다.

먼저 Filemon툴을 실행하고 필터(Filter : Ctrl +L)에 service.exe를 입력하고 OK버튼을 눌러 줍니다.

   

1초 간격으로 service.exe(PID:692)는 fservice.exe과 sservice.exe를 생성시키고 있습니다. 

 

Regmon.exe 툴을 이용하여 service.exe(PID:692)프로세스가 Path하는 행동을 조사 해보면 fservice.exe와 sservice.exe를 등록하는 것을 확인할 수 있습니다.

먼저 fservice.exe를 등록하는 레지스트리를 확인해 본 결과 윈도우즈에서 기본적으로 제공하는 레지스트리 편집기로는 확인할 수 없습니다.
IceSword툴을 이용하여 해당 레지스트리로 확인해보면 DirectX For Microsoft?Windows에 fservice.exe의 주소가 저장되어 있음을 확인 할 수 있었습니다.
같은 방법으로 나머지 fservice.exe과 sservice.exe에 관한 레지스트리를 찾을 수 있습니다.
(IceSword의 왼쪽창을 확인해 보면 Funtions, Registry, File로 나누어져 있으며 Registry에서 마우스 오른클릭을 하여 Find...를 클릭하여 fservice.exe를 찾으면 차례대로 레지스트리를 찾을 수 있습니다.)


프로세스 내부 분석
 

services.exe 파일이 메모리에 적재된 이후 어떤 활동을 하는지를 분석합니다.
먼저 Process Explorer 툴을 이용하여 services.exe 프로세스가 불러들이는 파일 목록을 검색해 봅니다.

Process Explorer 툴의 View->Lower Pane View->DLLs (Ctrl+D)를 설정하면 위 그림과 같이 아래 패널에 services.exe 프로세스가 불러들인 dll파일 목록을 확인할 수 있으며, 먼저 dll파일의 기본 정보가 있지 않은 dll부터 분석합니다. 이유는 제작자가 프로그램을 제작하면서 함께 만들었을 가능성이 높기 때문입니다.


services.exe 프로세스에 연결된 winkey.dll 파일을 string분석을 해보면 아래 그림과 같습니다.

 

fsclose, fwrite, fprintf, fopen 문자열은 이 winkey.dll파일이 어떤 파일을 열어 입력하고 있음을 알 수 있고, 또한 아래 GeyKeydoardState부터 UnhookWindowsHookEx까지의 문자열은 이 dll파일이 어떤 함수를 사용하는지 확인할 수 있으므로 내부적인 행동을 분석할 수 있습니다.
아래는 winkey.dll파일에서 수행하는 함수 정보를 MSDN에서 검색한 링크 주소입니다. 

GetKeyboardState()
http://msdn.microsoft.com/en-us/library/ms646299.aspx 

GetWindowText()
http://msdn.microsoft.com/en-us/library/ms633520(VS.85).aspx 

GetActiveWindow()
http://msdn.microsoft.com/en-us/library/ms646292.aspx 

SetWindowsHookEx()
http://msdn.microsoft.com/en-us/library/ms644990(VS.85).aspx

또한 여기서 의심할 만한 문자열로 [Windows title: "%s"] 와 \ktd32.atm 이라는 문자열 입니다.
문자열 [Windows title: "%s"]는 파일 입력부분에 해당되는 문자열로 추측되며 \ktd32.atm은 파일임을 짐작할 수 있었습니다. 

실제 파일을 검색해보면 아래 그림과 같이 C:\WINDOWS 디렉토리에 존재 하는 것을 확인 할 수 있습니다.

 

C:\WINDOWS\ktd32.atm

ktd32.atm파일을 notepad로 열어보면 지금껏 사용자가 키보드 입력한 내역과 윈도우즈 창을 열어본 목록을 볼 수 있습니다.

 
services.exe 프로세스에 연결된 reginv.dll 파일을 string분석을 해보면 아래 그림과 같습니다.

 파일의 이름에 의해 레지스트리를 조작하는 파일임을 짐작할 수 있습니다.
내부 string을 확인해 본 결과 RegEnumKeyW함수와 policies, Winlogon,
{5Y99AE78-58TT-11dW-BE53-Y67078979Y}를 확인할 수 있습니다. 

RegEnumKeyw는 레지스트리 관련 함수임을 짐작됩니다.
http://msdn.microsoft.com/en-us/library/ms724861(VS.85).aspx

 

이전에 3개의 레지스트리를 다시 한번 확인 해보면 각각 fservice.exe와 sservice.exe에 관한 레지스트리 주소임을 확인할 수 있습니다. 

HKLM\SOFTWARE\Microsoft\Windows\CurrenVersion\Policies\Explorer\Run\
fservice.exe 

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\
fservice.exe

 

HKLM\SOFTWARE\Microsoft\Active Setup\Installed Conponents\{5Y99AE78-58TT-11dW-BE53-Y67078979Y}

sservice.exe

나머지 아래 파일들을 분석해 본 결과 별다른게 이상한 점을 발견하지 못하였습니다.

악성코드:

C:\WINDOWS\services.exe
C:\WINDOWS\system\sservice.exe
C:\WINDOWS\system32\fservice.exe
C:\WINDOWS\system32\winkey.dll
C:\WINDOWS\system32\reginv.dll

결과물:
C:\WINDOWS\ktd32.atm

해결방법:
프로세스인 services.exe를 강제로 지운다 해도 fservice.exe와 sservice.exe에 의해 다시 파일이 생성되고 실행되어지므로  결국 프로세스 services.exe를 강제로 지우면서 즉시 파일 services.exe , fservice.exe , sservice.exe를 한꺼번에 지워줘야 합니다.
또한 dll파일인 winkey.dll 과 reginv.dll 파일 그리고 생성된 파일인 ktd32.atm을 삭제 합니다.
마지막으로 레지스트리 값을 정리해주면서 마무리 해주면 됩니다.



****************************************************************************************************

본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..

****************************************************************************************************

Posted by John_G

댓글을 달아 주세요

  1. Favicon of http://hisjournal.net/blog BlogIcon 아리새의펜촉 2009.05.22 13:47  댓글주소  수정/삭제  댓글쓰기

    컨퍼런스에서 저도 해볼려고 이미지를 받았었는데 인코딩 때문에 리눅스의 VMWare에선 이미지를 읽을 수 없더라구요. 그 때문에 무지 답답했었어요. (리눅스 사용자를 배려하지 않는 행사 주최측의 실수... 이에 대해 예기했더니 미처 생각 못했다고 하던...)

    좋은글 정말 고맙습니다.

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2009.05.22 15:53 신고  댓글주소  수정/삭제

      분석용 PC 4대가 있긴 했지만 참여자가 생각보다 많은 관계로 저도 VM이미지를 받았습니다 ^^
      OPEN CTF하면서도 분석해보긴 했지만. 역시 처음 접한일이라..
      결국 컨퍼런스때 해결못해서 끝나고 나서야 해결했다는 ^^;

      이번 블로그도 기왕 문제 풀어본김에 문서작성해보자는 심보로 블로깅한거죠 ^^

  2. Favicon of http://blog.naver.com/jjysrh BlogIcon Sun2Day 2009.05.22 18:07  댓글주소  수정/삭제  댓글쓰기

    오.. 이게 그 컨퍼런스에 나왔다는 문제군요 =_=ㅋ;

    귀차니즘이 강림하사.. 가보질 못해서 궁금했는데

    이렇게 접할 수 있게해주셔서 감사합니다 ㅇ_ㅇ/

    가능하시면 샘플 좀 얻었으면 하는데.. 가능하신가요? ㅇ_ㅇ;;

  3. 컴센스 2009.05.25 09:11  댓글주소  수정/삭제  댓글쓰기

    네 저도 그날가서 이미지 받아서 풀고 4G Usb 받앗습니다

    저는 대충 분석했었는데 갈끔하게 분석해주셨네요

    수고하셨습니다.

  4. Favicon of http://blog.naver.com/4leef BlogIcon Fourleaf 2009.05.30 20:56  댓글주소  수정/삭제  댓글쓰기

    늦게나마 블로그를 찾아 좋은 글 많이 읽고 있습니다.

    올해 해킹방어대회 마지막 게임 문제 못푼.. 15개 팀중 하나라..

    컨퍼런스 신청해두고.. 본선도 못 올라가서..회사 눈치보여 못갔는데..

    이렇게 포스팅해주셔서 감사합니다^^;;

    늦게 찾은 블로그니 만큼.. 그동안 올라온 글만 읽는데도 시간가는 줄 모르겠네요.

    은근히 다음 포스팅이 기대된다는... 두근~~

    이번 대회에서 분석된 바이러스...

    offensive 에서 Win32.Prorat.19ac 찾아봤는데.. 없네여ㅠㅠ

    샘플 가지고 계시면 얻을 수 있을까요?

  5. magic77th@naver.com 2009.12.12 08:45  댓글주소  수정/삭제  댓글쓰기

    magic77th@naver.com
    으로 샘플 부탁드릴게여 ㅠㅠ~ ㅎㅎ

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2009.12.16 19:40 신고  댓글주소  수정/삭제

      공개 블로그인 만큼 실명이나 본인 확인 가능하신 분들에 한해서 보내드리고 있습니다.
      기존 보내드련던 분들은 개인적으로 보안 관련 블로거이시나 보안인닷컴에서 활발하게 활동하시는 분들입니다.

      악성코드 취급에 무작정 공유해 드리기 힘든점을 이해해주셨으면 좋겠습니다.

  6. 제발저도 2009.12.14 03:26  댓글주소  수정/삭제  댓글쓰기

    daumjwj@naver.com 으로 샘플좀 부탁드립니다. ㅠㅠ

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2009.12.16 19:40 신고  댓글주소  수정/삭제

      공개 블로그인 만큼 실명이나 본인 확인 가능하신 분들에 한해서 보내드리고 있습니다.
      기존 보내드련던 분들은 개인적으로 보안 관련 블로거이시나 보안인닷컴에서 활발하게 활동하시는 분들입니다.

      악성코드 취급에 무작정 공유해 드리기 힘든점을 이해해주셨으면 좋겠습니다.

  7. 저기요~ 2010.01.06 08:55  댓글주소  수정/삭제  댓글쓰기

    C:\WINDOWS\system\sservice.exe

    삭제하고싶어요 ㅠ 어떻게해야하나요 ㅠ

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2010.01.11 18:04 신고  댓글주소  수정/삭제

      본문 내용을 좀더 확인 해 보시길 바랍니다.
      좀더 간략히 설명하자면
      프로세스를 죽이고 관련 실행파일과 레지스트리들을 동시에 삭제 해주셔야 합니다.
      우선적으로 프로세스를 죽이고 실행파일 3개를 지우시고 나머지 천천히 레지스트리를 제거 해주세요.
      반대로 관련 레지스트리들을 먼저 제거 해주셔도 됩니다.

      프로세스가 1초마다 파생 파일들과 레지스트리를 갱신하고 있기 때문에 프로세스가 살아 있는한 파생 파일들과 레지스트리들은 지워도 다시 생성될 것입니다.

      제가 프로그래밍 실력이 뛰어나질 않아 치료 프로그램을 만들 수 없네요.

  8. needs 2010.04.03 16:41  댓글주소  수정/삭제  댓글쓰기

    뭔가 정적분석을 해보셨으면 하는 바램이 있네요.. ^_^

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2010.04.04 02:49 신고  댓글주소  수정/삭제

      포스팅 내용에 상황 설명이 부족했네요. ^^
      2009년 "나도 정보보호 분석가" 이벤트에서는 분석 결과를 동적 분석만을 하도록 했습니다.
      문제 풀이 보고서와 같이 상세 분석 결과를 제출하는 방식이 아니라 당시 악성코드를 중지하고 치료하는 내용을 설명만 하더라도 경품을 주는 형식이였지요.
      저 역시 동적 분석으로 충분히 설명 가능한 분석이 될것이라 판단하여 동적 분석 결과로 포스팅 하였습니다.
      기회가 된다면 정적 분석 포스팅도 올리고 싶지만 여건상 힘들군요. ^^

  9. rodec 2010.04.06 17:38  댓글주소  수정/삭제  댓글쓰기

    지금 이바이러스에 시달리고있는데.. 해결법 .. 이해하기 너무힘드네여 ..ㄷ

  10. dg 2010.05.05 07:45  댓글주소  수정/삭제  댓글쓰기

    service.exe 프로세스가 중대한 시스템 프로세스라 하여 종료가 안되네요 ' ㅅ'..
    파일도 C:\Windows\system32 에서 service.exe 밖에 없구요 ㅠ

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2010.05.05 19:04 신고  댓글주소  수정/삭제

      바이러스 관련 파일들은 정상 파일들과 "유사한" 이름을 가지는 경우가 많습니다.
      자세히 확인하지 않으면 사용자가 정상 파일인것으로 넘어가도록 하죠.

      위 포스팅의 관련 파일들은 아래와 같습니다.
      C:\\WINDOWS\\services.exe
      (마지막에 's'가 붙어있습니다.)
      C:\\WINDOWS\\system\\sservice.exe
      C:\\WINDOWS\\system32\\fservice.exe
      (fservice.exe 파일입니다. )
      C:\\WINDOWS\\system32\\winkey.dll
      C:\\WINDOWS\\system32\\reginv.dll

      또한 윈도우의 작업관리자는 시스템에서 중요하다고 판단되는 조건의 프로세스는 강제종료 하지 못하도록 되어 있습니다.

      (그리고 WINDOWS\\system32\\services.exe 는 정상적인 시스템 파일 이름입니다.)

  11. dg 2010.05.05 08:26  댓글주소  수정/삭제  댓글쓰기

    허,, 허,, 갑자기 재부팅 되면서 바탕아이콘도 안뜨고 작업표시줄도 안뜨고 시작하자마자

    Program files 만 덩그러니 뜨네요 ㅠ;

    저는 그냥 Regscanner에서 Service에 관련된 레지스트는 거의 지웠구요.(service.exe와 관련된것,,)

    그리고 Unlocker 로 service.exe가 안지워지길레 지워버렸죠.
    (그때부터 Filemon에서 service.exe가 실행이 안된다고 나오더라구요)

    그러더니 몇초후에 재부팅되고,, 작업관리자보니

    이미지 이름 사용자 이름
    services.exe SYSTEM

    이런놈있는데 사용자 이름이 SYSTEM 인데 관련이 있으려나,,
    이거 어쩌지요 ㅠㅠ

  12. dg 2010.05.05 20:17  댓글주소  수정/삭제  댓글쓰기

    윈도우 복구를 했는데 컴퓨터가 상당히 느려져버렸네요 킁 ㅠㅠ

    컴퓨터가 꺼지지 않고 강종해야 꺼져버리니 --;; 뭘 지운겐지

    아, 어쨋든 감사드립니다 ㅎㅎ

    잘보고 갑니다.~ 레지스트는 함부로 건드리지 말아야겠습니다 ' ㅅ';

  13. ㅠ.ㅠ 2010.05.13 16:02  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.. 저도 바이러스파일을 다운받은지모르겠지만 윗분처럼 재부팅하고나니 바탕아이콘도안뜨고작업표시줄 아무것두 안뜨구 완전하얀바탕만 뜨네용 ㅠ.ㅠ 어떻게하죠?

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2010.05.14 08:16 신고  댓글주소  수정/삭제

      explorer 실행이 부팅시 안된것 같군요.
      비슷한 증상이라도 모두 같은 악성코드는 아닙니다.
      치료가 우선적으로 진행되어야 하니 보유하신 백신 프로그램 실행을 해 보시길 바랍니다.
      :바탕화면 아이콘이나 작업표시줄은 explorer.exe로부터 생성됩니다. 키보드 윈도우키와 'R'키를 함께 누르시면 실행(열기) 창이 뜹니다. 여기에 explorer 라고 써 주시면 임시적으로나마 작업이 수월할 지도 모르겠군요.
      :한가지 더 알려드릴점은. explorer를 실행할때 악성코드가 함께 실행되지 않으리라는 보장은 없습니다...