악성코드분석/실전 악성코드와 멀웨어 분석

실전 악성코드와 멀웨어 분석 실습 1-1

111-000-111 2021. 11. 10. 21:54

 

 

1.  VirusTotal.com에 업로드한 후 보고서를 보자. 기존 안티바이러스 시그니처에 일치하는 파일이 존재하는가?

Lab01-01.dll
Lab01-01.exe

 

dll 파일의 경우에는 67개의 엔진 중 40개의 엔진에서 탐지되었고, exe 파일은 67개의 엔진 중에서 47개의 엔진에서 탐지되었다.

 

 

 

2. 이 파일은 언제 컴파일됐는가?

 

Lab01-01.dll

 

PEview로 dll 파일을 분석한 결과 Time Date Stamp 멤버를 통해 2010/12/19 16:16:38 UTC에 컴파일 된 것을 확인했다.

 

Lab01-01.exe

 

exe파일은 dll 파일과 컴파일 한 시간이 1분 차이난다. 이 사실로 보아 같은 제작자가 두 파일을 함께 사용하기 위하여 제작했다고 추측할 수 있다.

 

 

 

3. 이 파일이 패킹되거나 난독화 된 징후가 있는가? 그렇다면 무엇으로 판단했는가?

 

Lab01-01.dll
Lab01-01.exe

 

PEiD의 컴파일 정보를 통해 두 파일 모두 패킹되지 않았다는 것을 알 수 있다.

 

Lab01-01.dll
Lab01-01.exe

 

또한 임포트 하는 함수가 패킹된 파일에 비해 다양하게 존재한다.

 

Lab01-01.dll
Lab01-01.exe

 

섹션의 크기도 크지는 않지만 패킹이 된 징후는 보이지 않기 때문에 두 파일은 패킹되지 않았다.

 

 

 

4. 임포트를 보고 악성코드 행위를 알아낼 수 있는가? 그렇다면 어떤 임포트인가?

 

Lab01-01.dll

 

Lab01-01.dll을 먼저 살펴보자.

KERNEL32.dll에서는 프로세스를 생성하는 CreateProcessA와, 프로세스를 잠시동안 멈추는 Sleep 함수를 임포트 한다.

또한 뮤텍스를 통해 중복실행 방지를 하는 기능의 프로그램을 제작했다고 예상 가능하다.

 

WS2_32.dll은 네트워크 기능을 제공하는 dll인데, 함수의 이름이 없이 Ordinal 값으로만 임포트 되었기 때문에 어떤 함수가 사용된 것인지 한 눈에 알아보기 어려우므로 Dependency Walker를 통해 확인했다.

 

 

소켓을 통해 통신하는 기능의 함수들을 사용하고 있는 것을 확인했다.

 

 

Lab01-01.exe

 

다음으로 exe파일은 파일을 메모리에 매핑하여 파일을 조회하고, 열어보고 조작하는 기능을 하는 함수를 임포트 하였다.

 

 

 

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

 

Lab01-01.dll

 

strings를 이용하여 Lab01-01.dll 내부의 문자열을 분석해 보았다. IP주소로 보이는 127.26.152.13 문자열도 보이고, Import하는 것으로 추정되는 함수와 DLL의 이름도 보인다 

 

 

 

Lab01-01.exe

 

exe파일도 역시 Import하는 DLL과 함수의 이름이 보인다. 그리고 kerne132.dll, C:\windows\system32\kerne132.dll과 같이 kernel32.dll을 가장한 문자열이 보인다. 해당하는 경로에서 악의적인 행위가 있는지 확인해 볼 필요가 있다.

 

 

 

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

 

위에서 확인헀듯이, dll 파일은 127.26.152.13이라는 IP 주소를 참조한다. 이 주소에 악의적인 목적의 파일이 존재 할 수 있기 때문에 해당 악성코드를 발견할 수 있는 네트워크 기반의 증거라고 할 수 있다.

 

 

 

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

 

dll 파일은 CreateProcess와 Sleep 함수를 사용한다. 이는 주로 백도어에 사용되는 함수이다. 이 함수는 exec와 sleep이라는 문자열과 함께 생각해보면 exec라는 문자열은 백도어 명령어를 네트워크로 보내고, sleep 문자열은 백도어 프로그램을 멈추는 명령어로 사용할 것이다.

exe 파일은 DLL을 설치하거나 실행하는데 사용하는 파일이다.