본문 바로가기
Study/악성코드

[윈도우즈 보안과 악성코드 기초] 기초 정적 분석 - Practical Malware Analysis Lab01-01.exe & Lab01-01.dll

by 8희 2024. 4. 10.

1. Virustotal에 업로드 하고 보고서를 확인하자. 기존 안티바이러스 정의된 것과 일치하는가?

 

Lab01-01.exe 72개의 엔진 중에서 52개가 악성코드로 탐지됐고,

Lab01-01.dll 71개의 엔진 중에서 38개가 악성코드로 탐지됐다.

따라서 두 파일 모두 악성코드 시그니처로 판별된다.

 

2. 이 파일의 컴파일 시점은?

 

컴파일 시점은 PE 파일 헤더의 Time Stamp 정보를 통해서 알 수 있다.

PEView IMAGE_NT_HEADER/IMAGE_FILE_HEADER

Time Data Stamp를 보면 동일한 날짜에 19초 차이로 컴파일 된 것을 알 수 있다.

따라서 이 두 개의 파일은 같은 패키지로 판단된다. exe가 실행되고 dll을 동적으로 호출하는 구조로 판단된다.

 

3. 패킹이나 난독화의 흔적이 있는가? 이유는?

 

 

두 파일 모두 Visual C++에서 정상적으로 컴파일한 파일로 패킹의 징후는 없다.

또한, EP Section(프로그램 시작 지점) 정보도 제대로 보인다.

 

4. 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?

Lab01-01.exe 파일은 Kernel32.dll Msvcrt.dll import 하고 있으나

대부분의 파일에서 import 하는 파일이다.

CopyFile, CreateFile로 파일을 복사하거나 생성하는 기능을 하고,

FindFirstFile, FindNextFile로 파일을 탐색하는 행위를 하고 있다.

그리고 Lab01-01.dll 파일은 WS2_32.dll import 하기 때문에 네트워크 연결 작업을 수행할 것으로 판단된다.

 

5. 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?

 

StringsLab01-01.exe 파일을 확인해보면 Kernel32.dll이 정상적 import 파일인데,

Kernel32.dll import 하는 것은 kerner32.dll인 것처럼 위장하여 import하는 것으로 판단된다.

시스템에 악성코드 kernel32.dll을 배포해서 실행하도록 할 수 있다.

Lab01-01.exe 파일이 Lab01-01.dll 파일을 실행시킨다.

 

6. 감염된 장비에서 이 악성코드를 발견하기 위해 사용한 네트워크 기반의 증거는 무엇인가?

 

문자열을 보면 ws2_32.dll(네트워크 사용)과 함께  exec, sleep 이 수행되는데

프로그램을 네트워크상으로 수행 (exec) 시키고 백그라운드에서 대기 (sleep) 하도록 한다.

127.26.152.13 이라는 IP 주소가 나오는 것을 봐서는 해당 주소지와 연결되어 수행할 것이라고 판단된다.

 

7. 이 파일의 목적은 무엇이라고 판단했는가?

두 개의 파일이 비슷한 시기에 만들어졌고 exe 파일이 파일을 검색하고 생성하고

dll을 실행시키는 것을 보면 dll에서 네트워크 기반의 작동을 하기 때문에 dll이 일종의 백도어로 판단된다.