1. 요약

분석 대상은 tigger.exe가 실행 된 후의 메모리이며 환경은WinXP SP2 x86이다. 전체적인 분석 내용은 이후에 좀더 상세히 다루며, 본인이 여기선 조사했던 내용을 간략히 요약하고자 한다.

      • Tigger.exe.pf, 329000.exe.pf, tmryqyrznr2.sys라는 의심스러운 MFT 흔적 발견
      • Svchost.exe(pid=936)이 tmryqyrznr2.sys라는 문자열을 포함
      • Svchost.exe(pid=936)과 관련된 파일에서 방화벽, 후킹에 대한 문자열과 함수 존재
      • 329000.exe는 특정 파일, 드라이버, 지속성 위한 레지스트리 관련 함수와 문자열 존재
      • 329000.exe는 Virustotal에서도 여러 엔진에서 악성코드가 판정

이와 같이 요약을 할 수가 있으며 이러한 내용에 대해 상세히 설명할 것이다. 순서는 위의 요약과는 다소 다를 수 있다.

  


2. 분석


분석 대상 환경은 WinXP SP2 x86이다. 분석 시작과 함께 Userassist를 통해 어떠한 프로그램이 실행되었는지 확인을 하여 대상을 좁혀보자. 결과는 아래의 그림과 같으며 tigger.exe가 2010년 8월 15일 19:25:52에 실행된 것을 확인할 수 있다.

Figure 1. Rekall - UserAssist

Pstree를 통해 메모리에서 실행 중이던 프로세스의 목록을 트리 형태로 확인해보자. 위에서 확인했던 tigger.exe가 보이지 않는 것을 확인할 수가 있다. 대신 비슷한 시간대에 실행된 wmiprvse.exe(pid=828)을 확인할 수가 있다. 그 부모프로세스와 그 상위 까지를 대상으로 진행하겠다.

* 추가 : svchost.exe (936)은 추후에 분석을 통해 의심되는 부분이라 생각되어 추가

Figure 2. Rekall - pstree

실행 중인 프로세스 외에 Volatility의 MFTparser Plugin을 통해 MFT 변화 또한 확인해보자. 아래의 그림은 시간대로 정렬하여 나타낸 결과이다.

Figure 3. MFT parser

Tigger.exe가 실행되고 10초 후 pf 파일이 생성되었으며 15초후 329000.exe와 329000.exe.pf가 생성되는 것을 확인할 수가 있다. 17초 후에는 Perfilb_Perfdata_33c.dat파일, 19초 후는 Netsh.exe의 pf파일이 마지막으로 tigger.exe를 실행하고 20초 후에는 tmryqyrznr2.sys가 MFT로 존재하는 것을 확인할 수가 있다.

Figure 4. MFT parser

Tigger.exe와 329000.exe, Netsh.exe는 위의 pstree에서 보았듯이 메모리에 같은 이름의 프로세스로 존재하지 않는 것을 확인할 수가 있다. sys파일의 경우 이름에서 나타나는 불규칙성에서 의심의 여지가 있다. 하지만 관련이 없을 수도 있으므로 추후에 확인을 해보자.

 

 

Figure 5. Rekall – unloaded_modules & modscan

우선 tmryqyrznr2.sys를 확인하기 위하여 메모리에 있는 모듈의 리스트를 modscan Plugin을 통해 확인을 하였지만 존재하지 않았다. 따라서 루트킷과 같은 악성코드의 경우 악성 행위를 하고 바로 언로드 시키는 경우도 있기에 언로드된 모듈을 unloaded_modules를 통해 확인했지만 보이지 않았다.

 

Figure 6. Volatility – yarascan

Volatility의 yarascan Plugin을 통해 해당 문자열(tmryqyrznr2)을 검색해보았다. 그 결과 pid 936인 svchost.exe에서 확인할 수가 있었다. 해당 프로세스를 추출하여 악의적인 행동을 하는지 확인해보자.

 

Figure 7. Rekall – procdump

Procdump를 통해 해당 프로세스를 추출하였다. 이제 이를 통해 VirusTotal의 백신 엔진들을 통해 악성코드로 의심되는 행위가 있는지를 확인해보자.

Figure 8. Virustotal – svchost.exe(936)

Virustotal을 통한 결과는 위의 그림과 같다. 56개의 엔진 중에서 한 곳에서만 악의적인 행위로 검출이 되었다. 별로 의심의 여지가 없어 보이지만 좀 더 살펴보고자 dumpfiles를 통해 pid 936에 해당하는 파일들을 추출해보았다.

Figure 9. Volatility – dumpfiles

여러 개의 파일이 추출된 것을 확인할 수가 있다. 이 파일들 중 .dat 파일을 위주로 살펴보았는데 의심스러운 문자열이 나타난 부분들을 뽑아 아래와 같이 정리하였다.



0x80fcb6c.dat의문자열은 Hookimports라는 문자열을 통해 후킹과 관련된 문자열들이 여러 부분 존재하는 것을 확인할 수가 있고 0xff3696b0.dat를 통해 Firewall과 관련된 문자열을 확인할 수가 있었다.

 

Figure 11. Rekall – filescan

이번에는 MFT를 통해 확인 했듯이 PF파일이 생성되었던 329000.exe를 분석해보자. 우선 filescan Plugin을 통해 해당 파일이 메모리에서 추출할 수 있는지를 확인해보았다. 그 결과 위와 같이 Offset이 나오는 걸 볼 수 있다.

Figure 12. Volatility – dumpfiles

Filescan을 통해 얻은 Physical Offset을 지정해주고 dumpfiles Plugin을 통해 추출해보자. 그 결과 2개의 파일이 추출에 성공하는 것을 확인할 수가 있다. 추출된 2개의 파일에 대한 정보는 아래의 표에 정리한 바와 같다.

32900.exe와 관련된 파일에 대해 추출을 성공하였으므로 이제 악의적인 행위를 하는지 확인을 해보자. 여기선 위에서와 같이 Virustotal을 통해 그 결과를 먼저 확인해보자.

Figure 14. Virustotal – 329000.exe

위의 결과와 같이 많은 부분에서 악성코드라 진단되는 것을 볼 수 있다. 어떠한 기능의 파일인지 확인하기 위해 간단하게 문자열과 포함하는 API에 대하여 확인해보자. 확인 결과 문자열과 API 모두 같은 것으로 나타났다.

위의 표를 보면 우선 API에서 파일을 찾기와 관련된 함수들과 읽고 쓰고 이동하는 것까지 확인할 수가 있다. 문자열을 보면 흥미로운 점이 있는데, 지속성을 유지하기 위한 레지스트리 키와 회사 이름이나 저작권에 있어 "Microsoft Corporation"이라는 것을 볼 수가 있다. 이는 윈도우의 일반적인 파일처럼 보이고자 Microsoft의 이름을 사용했다고 볼 수가 있다.

 

Figure 16. Rekall - filescan

이번에는 filescan을 통해 tmryqyrznr2.sys에 대해 Offset을 알아보자. 그 결과는 위와 같으며 이제 이 주소를 통해 해당 모듈을 추출하여 추가적인 분석을 진행해보자.

 

Figure 17. Volatility – dumpfiles

여기선 dumpfiles Plugin을 통해 추출을 시도하였다. 그 결과 화면은 위의 그림과 같지만 해당 파일이 생성되지 않는 현상이 나타났으며 그 이유 또한 알 수가 없었다. 따라서 추출이 불가능하므로 메모리에서 해당 파일의 흔적을 찾아보자.

Figure 18. Rekall – driverirp

위에 32900.exe 문자열에서 드라이버와 관련된 문자열이 존재하기도 하므로 driverscan을 통해 확인을 해보자. 그 결과 tmryqyrznr2.sys가 보이는 것을 확인할 수가 있다. 좀 더 상세히 확인하기 위하여 driverirp를 통해 확인한 결과는 아래와 같다.

Figure 19. Volatility – driverirp

출력된 결과를 보면 모든 부분이 0x00000000로 되어 있는 것을 확인할 수가 있다. 이는 해당 모듈이 메모리에 남아있지 않기에 사라진 것으로 보인다.

 

 

 

  3. 결론


위의 분석 작업을 통한 결과를 전체적으로 종합해보자. 우선 tigger.exe를 실행하고 MFT를 통해 근처 시간대를 확인한 결과 tigger.exe외에 329000.exe와 tmryqyrznr2.sys도 조사범위에 넣었고 분석 결과 329000.exe는 virustotal에서 본 것과 같이 악성코드라 판단할 수가 있다.

329000.exe는 어떠한 파일과 관련된 동작, 드라이버와 지속성을 위한 레지스트리 등과 관련된 함수와 문자열들을 포함하고 있다. tmryqyrznr2.sys는 메모리에 더 이상 존재하지 않기 때문에 추가적인 분석을 진행할 수가 없었다.

하지만 tmryqyrznr2이란 문자열을 yarascan을 통해 확인한 결과 svchost.exe(pid=936)에 해당 문자열이 존재함을 알 수가 있었고, 이를 토대로 해당 svchost.exe와 관련된 파일들을 dumpfiles를 통해 추출하였다. 그리고 몇 개의 파일에서 hookimports와 같은 후킹과 관련된 직접적인 문자열을 확인할 수가 있었다. 또한 Firewall과 관련된 문자열이나 함수 등을 통해 해당 프로세스가 방화벽과의 연관성을 가지는 것도 알 수가 있었다.



'Forensic > Analysis' 카테고리의 다른 글

NTFS & Python - $MFT Acquisition  (0) 2016.01.07
노트북 하드 컴퓨터 연결  (2) 2016.01.03
Black Energy 메모리 분석  (0) 2015.12.17
Memory Analysis - CoreFlood  (0) 2015.12.05
모의침해사고 분석 보고서-Yuri's_PC  (7) 2015.11.24