가끔 악성코드의 감염 과정 중에 calc.exe 등 정상적인 윈도우 프로세스가 동작하는 경우가 있다.
어떤 이유로 정상적인 프로그램을 실행시키는지 궁금하여 분석을 해보았다.
샘플 악성코드의 경우 [그림 1]과 같이 calc.exe가 실행되며 감염동작이 진행되는 것을 확인할 수 있다.
[그림 1]
먼저 샘플 악성코드가 calc.exe 프로세스를 생성할 때를 확인해 보면 [그림 2]와 같이 CreateProcessA를 호출하여 calc.exe를 생성한다. 이 때 파라미터를 확인해 보면 dwCreationFlags로 4를 넘기게 된다.
[그림 2]
어떤 이유로 정상적인 프로그램을 실행시키는지 궁금하여 분석을 해보았다.
샘플 악성코드의 경우 [그림 1]과 같이 calc.exe가 실행되며 감염동작이 진행되는 것을 확인할 수 있다.
먼저 샘플 악성코드가 calc.exe 프로세스를 생성할 때를 확인해 보면 [그림 2]와 같이 CreateProcessA를 호출하여 calc.exe를 생성한다. 이 때 파라미터를 확인해 보면 dwCreationFlags로 4를 넘기게 된다.
dwCreationFlags로 4를 넘기게 되면 [그림 3]과 같이 suspend 상태로 프로세스를 실행하며 ResumeThread를 호출해야 프로세스가 다시 실행됨을 알 수 있다.
[그림 3]
이후에 [그림 4]와 같이 생성된 calc.exe 프로세스에 VirtualAllocEX 함수를 통하여 메모리 영역을 할당한다.
[그림 4]
hProcess 파라미터를 확인해 보면 CreateProcessA를 이용하여 생성된 calc.exe 프로세스의 핸들(0x104)를 넘기는 것을 확인할 수 있다.
calc.exe에 메모리 영역을 할당한 이후에는 [그림 5]와 같이 WriteProcessMemory 함수를 통하여 특정 값을 calc.exe 프로세스에 기록하는 것을 확인할 수 있다.
[그림 5]
calc.exe 프로세스 영역에 원하는 코드를 모두 쓴 뒤에는 [그림 6]과 같이 ResumeThread를 호출하여 calc.exe의 쓰레드(0x108)를 실행하는 것을 확인할 수 있다.
[그림 6]
악성코드 분석시 쉽게 지나치기 쉬운 부분이지만 속을 들여다 보면 악성코드 제작자들의 이런 노력(?)을 볼 수 있었다. 아무래도 정상 프로그램을 이용해서 백신에 의해 진단되는 것을 조금이나마 우회하려는 속셈인 듯 하다.
+---------------------------------+
| Infinite Flow.. |
| mail : geekspark@gmail.com |
| Blog : http://sinun.tistory.com |
| twitter : @unpacker |
| CISSP |
+----------------------------------+
calc.exe에 메모리 영역을 할당한 이후에는 [그림 5]와 같이 WriteProcessMemory 함수를 통하여 특정 값을 calc.exe 프로세스에 기록하는 것을 확인할 수 있다.
calc.exe 프로세스 영역에 원하는 코드를 모두 쓴 뒤에는 [그림 6]과 같이 ResumeThread를 호출하여 calc.exe의 쓰레드(0x108)를 실행하는 것을 확인할 수 있다.
악성코드 분석시 쉽게 지나치기 쉬운 부분이지만 속을 들여다 보면 악성코드 제작자들의 이런 노력(?)을 볼 수 있었다. 아무래도 정상 프로그램을 이용해서 백신에 의해 진단되는 것을 조금이나마 우회하려는 속셈인 듯 하다.
+---------------------------------+
| Infinite Flow.. |
| mail : geekspark@gmail.com |
| Blog : http://sinun.tistory.com |
| twitter : @unpacker |
| CISSP |
+----------------------------------+
'0x04 Malware > Malware Analysis' 카테고리의 다른 글
[Malware Analysis] 64bit 시스템을 타겟으로한 온라인뱅킹 정보 유출 악성코드 분석 (0) | 2011.06.02 |
---|---|
[Malware Analysis] 난독화된 PDF 파일 분석(CVE-2009-4324) (0) | 2011.03.14 |
[Malware Analysis] 악성코드 동작 중 calc.exe(계산기)가 동작하는 이유 (0) | 2011.02.14 |
[Malware Analysis] 난독화된 VBS 분석 (0) | 2011.01.25 |
[Malware Analysis] 지난주 발견된 트위터 웜 (0) | 2011.01.23 |
[Malware Analysis] ComRes.dll 교체 및 imm32.dll 패치 악성코드 분석 (4) | 2011.01.10 |