실습 1-3

실습 환경 : Vmware (Windows 7 32bit)

사용한 툴 : IDA free 5.0, PEiD, PE View, Ollydbg 2.01, String

[01] http://www.VirusTotal.com/에 Lab01-03.exe 파일을 업로드하자. 기존 안티바이러스에 정의된 것과 일치하는가?

lab1-3 1

해당 파일을 업로드한 결과 68개의 안티바이러스 엔진 중에서 57개의 엔진이 해당 파일을 악성코드로 진단하였다.

[02] 이 파일이 패킹되거나 난독화된 징후가 있는가? 그렇다면 무엇으로 판단했는가? 파일이 패킹돼 있고 가능하다면 언패킹 해보자.

lab1-3 2

PEiD로 열어보니 FSG로 패킹이 되어있음을 확인할 수 있다. 이제 언패킹을 진행하기 전에 FSG패킹에 대하여 구글링을 해보니 FSG패킹의 특징은 jmp문을 3번 사용한 뒤 OEP로 점프한다는 것을 알 수 있었다. 이제 Ollydbg로 파일을 열어보면

lab1-3 3

405000에서 시작하는 것을 알 수 있고 분석을 진행하다 보면 아래와 같이 OEP로 점프하는 구간을 찾을 수 있었다.

lab1-3 4 lab1-3 5

FSG패킹의 특성처럼 JZ, JNZ, JMP의 3가지 점프 문 뒤에 OEP로 점프하는 구간인 JZ 00401090을 확인할 수 있다.

OEP로 넘어가기 전에 플래그를 살펴보면 Zero Flag가 0으로 설정되어 있기 때문에 점프를 하지 않는다. Zero Flag를 1로 변경한 뒤 다시 진행하면 00401090으로 무사히 점프하는 것을 확인할 수 있다.

lab1-3 6

이제 OEP를 확인했으니 Ollydbg로 덤프를 진행한 뒤에 PEiD로 확인해 보니 언패킹이 완료된 것을 확인할 수 있었다.

lab1-3 7

[03] 임포트를 보고 악성코드의 기능을 알아낼 수 있는가? 그렇다면 어떤 임포트를 보고 알 수 있었는가?

lab1-3 8

언패킹을 완료하였다고 생각하였지만 IDA Free로 파일을 열어보니 LoadLibrary, GetProcAddress 함수만 확인할 수 있었다. 이 두 함수는 패킹된 파일에서 종종 임포트 하는 함수로 아직 언패킹이 제대로 되지 않은 것 같다.

[04] 감염된 시스템에서 악성코드를 인식하는데 어떤 호스트 기반이나 네트워크 기반의 증거를 사용했는가?

lab1-3 9

언패킹은 제대로 되지 않은 것 같지만 String을 사용하여 문자열을 찾아보면 http://www.malwareanalysisbook.com/ad.html를 찾을 수 있는데 이 부분을 네트워크 기반의 증거로 사용할 수 있다.