1. VirusTotal.com에 업로드한 후 보고서를 보자. 기존 안티바이러스 시그니처에 일치하는 파일이 존재하는가?
dll 파일의 경우에는 67개의 엔진 중 40개의 엔진에서 탐지되었고, exe 파일은 67개의 엔진 중에서 47개의 엔진에서 탐지되었다.
2. 이 파일은 언제 컴파일됐는가?
PEview로 dll 파일을 분석한 결과 Time Date Stamp 멤버를 통해 2010/12/19 16:16:38 UTC에 컴파일 된 것을 확인했다.
exe파일은 dll 파일과 컴파일 한 시간이 1분 차이난다. 이 사실로 보아 같은 제작자가 두 파일을 함께 사용하기 위하여 제작했다고 추측할 수 있다.
3. 이 파일이 패킹되거나 난독화 된 징후가 있는가? 그렇다면 무엇으로 판단했는가?
PEiD의 컴파일 정보를 통해 두 파일 모두 패킹되지 않았다는 것을 알 수 있다.
또한 임포트 하는 함수가 패킹된 파일에 비해 다양하게 존재한다.
섹션의 크기도 크지는 않지만 패킹이 된 징후는 보이지 않기 때문에 두 파일은 패킹되지 않았다.
4. 임포트를 보고 악성코드 행위를 알아낼 수 있는가? 그렇다면 어떤 임포트인가?
Lab01-01.dll을 먼저 살펴보자.
KERNEL32.dll에서는 프로세스를 생성하는 CreateProcessA와, 프로세스를 잠시동안 멈추는 Sleep 함수를 임포트 한다.
또한 뮤텍스를 통해 중복실행 방지를 하는 기능의 프로그램을 제작했다고 예상 가능하다.
WS2_32.dll은 네트워크 기능을 제공하는 dll인데, 함수의 이름이 없이 Ordinal 값으로만 임포트 되었기 때문에 어떤 함수가 사용된 것인지 한 눈에 알아보기 어려우므로 Dependency Walker를 통해 확인했다.
소켓을 통해 통신하는 기능의 함수들을 사용하고 있는 것을 확인했다.
다음으로 exe파일은 파일을 메모리에 매핑하여 파일을 조회하고, 열어보고 조작하는 기능을 하는 함수를 임포트 하였다.
5. 감염된 시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?
strings를 이용하여 Lab01-01.dll 내부의 문자열을 분석해 보았다. IP주소로 보이는 127.26.152.13 문자열도 보이고, Import하는 것으로 추정되는 함수와 DLL의 이름도 보인다
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을 설치하거나 실행하는데 사용하는 파일이다.
'악성코드분석 > 실전 악성코드와 멀웨어 분석' 카테고리의 다른 글
실전 악성코드와 멀웨어 분석 실습 3-1 (0) | 2021.11.12 |
---|---|
실전 악성코드와 멀웨어 분석 실습 1-4 (0) | 2021.11.11 |
실전 악성코드와 멀웨어 분석 실습 1-3 (0) | 2021.11.10 |
실전 악성코드와 멀웨어 분석 실습 1-2 (0) | 2021.11.10 |
실전 악성코드와 멀웨어 분석 0장 - 악성코드 분석 입문 (0) | 2021.07.24 |