기초 정적 분석 - Lab01-01.exe, Lab01-01.dll
1) Virustotal에 업로드 하고 보고서를 확인하자. 기존 안티바이러스 정의된 것과 일치하는가?
악성 코드로 판별된다.
2) 이 파일의 컴파일 시점은?
Lab01-01.exe의 컴파일 시점은 2010년 12월 19일 16시 16분 19초이다. (UTC 기준)
Lab01-01.dll의 컴파일 시점은 2010년 12월 19일 16시 16분 38초이다. (UTC 기준)
이를 보아 exe를 만들자마자 컴파일이 됐음을 알 수 있다.
3) 패킹이나 난독화의 흔적이 있는가? 이유는?
패킹이나 난독화의 흔적은 PEiD에서 확인할 수 있다.
왼쪽이 Lab01-01.exe, 오른쪽이 Lab01-01.dll이다.
둘 다 Microsoft Visual C++로 컴파일 된 것을 보아 패킹이나 난독화의 흔적은 없다.
4) 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?
VirusTotal > Details > Imports에서 확인할 수 있다.
Lab01-01.exe에서는 KERNEL32.dll, MSVCRT.dll을 임포트한다.
KERNEL32.dll을 더 살펴보자.
CopyFileA과 CreateFileA, CreateFileMappingA 함수가 있는 것을 확인할 수 있는데, 이는 파일을 복사하거나 생성하는 기능을 한다. 또, FindFirstFileA, FindNextFileA로 파일을 탐색한다.
Lab01-01.dll 에서는 KERNEL32.dll, WS2_32.dll, MSVCRT.dll을 임포트한다.
W32_32.dll을 임포트하는 것을 보아 네트워크 연결 작업을 수행할 것으로 판단된다.
또, KERNEL32.dll에서 CreateProcessA와 Sleep을 사용하는 것을 보아 백도어 프로그램을 실행하고 백그라운드에서 실행을 대기하고 있도록 할 수 있다.
5) 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크 기반의 증거는 무엇인가?
kernel32.dll이 아니라 kerne132.dll로 정상인 것처럼 위장하여 임포트하고 있는 것을 확인할 수 있다.
시스템에 악성코드 kerne132.dll을 배포해서 실행하도록 하는 것을 알 수 있다.
Lab01-01.exe 파일이 Lab01-01.dll 파일을 실행시킨다.
6) 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크 기반의 증거는 무엇인가?
5)에서 exe를 살펴봤으니 dll을 살펴보자.
이를 보면 W32_32.dll과 함께 exec, sleep이 수행되는 걸 보니 프로그램을 네트워크상으로 수행(exec)시키고, 백그라운에서 대기(sleep)하도록 한다.
127.26.152.13이라는 IP 주소와 연결되어 수행하는 것으로 판단된다.
7) 이 파일의 목적은 무엇이라고 판단하였는가?
위의 분석들을 통해 알 수 있었던 것은 다음과 같다.
1. exe랑 dll은 별도의 파일이지만 같은 사람이 같은 목적으로 만든 파일이다.
2. exe는 파일 카피, 검색, 생성을 하며, dll은 백그라운드 실행하며 네트워크에 연결하는 작업을 한다.
3. dll에서 네트워크 기반의 작동을 하기 때문에 dll이 백도어일 확률이 높다.