본문 바로가기
IT

[Lab 1-1] Practical Malware Analysis WriteUp

by 고간디 2024. 5. 2.

Lab 1-1

Lab01-01.exe

Lab01-01.dll

 


Questions

1. Upload the files to http://www.VirusTotal.com/ and view the reports. Does either file match any existing antivirus signatures?

Lab01-01.exe
Lab01-01.dll

두 파일 모두 VirusTotal에서 걸린다.

 

 


 

 

2. When were these files compiled?

VirusTotal: Lab01-01.exe / Lab01-01.dll
PEview: Lab01-01.exe
PEview: Lab01-01.dll

VirusTotal에서 확인해보면 Lab01-01.exe와 Lab01-01.dll 두 파일 모두 2010년 12월 19일 16시 16분에 컴파일되었다.

PEview에서도 확인할 수 있다.

 


HxD: Lab01-01.exe / Lab01-01.dll

HxD에서도 PE 헤더 부분을 확인할 수 있는데 각각 16진수로 변환하면 0x4D0E2FD3, 0x4D0E2FE6이다. (리틀 엔디안)

이를 다시 10진수로 변환하면 1292775379, 1292775398이다.

TimeStamp로 다시 한번 더 나타내면 각각 GMT: 2010년 December 19일 Sunday PM 4:16:19 / GMT: 2010년 December 19일 Sunday PM 4:16:38로 나타내 지면서 컴파일 시간을 확인할 수 있다.

 

 


 

 

3. Are there any indications that either of these files is packed or obfuscated? If so, what are these indicators?

Lab01-01.exe / Lab01-01.dll

Microsoft Visual C++ 6.0 에서 컴파일되었다고 나오는 것을 보니 패킹이나 난독화는 되어 있지 않다.

 

더보기
C:...> strings Lab01-01.exe
!This program cannot be run in DOS mode.
Richm
.text
`.rdata
@.data
UVWj

...

%` @
CloseHandle
UnmapViewOfFile
IsBadReadPtr
MapViewOfFile
CreateFileMappingA
CreateFileA
FindClose
FindNextFileA
FindFirstFileA
CopyFileA
KERNEL32.dll
malloc
exit
MSVCRT.dll
_exit
_XcptFilter
__p___initenv
__getmainargs
_initterm
__setusermatherr
_adjust_fdiv
__p__commode
__p__fmode
__set_app_type
_except_handler3
_controlfp
_stricmp
kerne132.dll
kernel32.dll
.exe
C:\*
C:\windows\system32\kerne132.dll
Kernel32.
Lab01-01.dll
C:\Windows\System32\Kernel32.dll
WARNING_THIS_WILL_DESTROY_YOUR_MACHINE

 

C:...> strings Lab01-01.dll
!This program cannot be run in DOS mode.
Rich
.text
`.rdata
@.data
.reloc
L$xQh

...

_^[]
CloseHandle
Sleep
CreateProcessA
CreateMutexA
OpenMutexA
KERNEL32.dll
WS2_32.dll
strncmp
MSVCRT.dll
free
_initterm
malloc
_adjust_fdiv
exec
sleep
hello
127.26.152.13
SADFHUHF

...

cmd에서 strings 명령어를 통해서 바이너리의 문자열로 추정되는 값들을 검색해서 얻을 수 있다.

패킹이나 난독화가 되어있다면 wrapper 바이너리만 검색되기 때문에 문자열들이 비교적 적다.

 

strings로 Lab01-01.exe와 Lab01-01.dll 파일을 돌렸을 때 문자열이 충분히 많은 것으로 봐서 패킹이나 난독화가 되어 있지 않을 가능성이 농후하다고 판단할 수 있을 것 같다.

 

 


 

 

4. Do any imports hint at what this malware does? If so, which imports are they?

Dependency Walker를 사용해보려 했으나 Windows 10 에서는 제대로 작동이 되지 않아 대체재를 찾아 사용했다.

Lab01-01.exe / kernel32.dll
Lab01-01.exe / MSVCRT.dll
Lab01-01.dll / kernel32.dll
Lab01-01.dll / MSVCRT.dll

Lab01-01.exe 파일에서는 kernel32.dll에서 CloseHandle, UnmapViewOfFile, IsBadReadPtr, MapViewOfFile, CreateFileMappingA, CreateFileA, FindClose, FindNextFileA, FindFirstFileA, CopyFileA 함수를 import 한다.

 

Lab01-01.dll 파일에서는 kernel32.dll에서 Sleep, CreateProcessA, CreateMutexA, OpenMutexA, CloseHandle 함수를 import 한다.

 

kernel32.dll은 메모리, 파일, 하드웨어 접근 및 조작과 같은 핵심 기능을 담은 공용 DLL 파일이다.

 

더보기

MapViewOfFile: 파일 매핑의 보기를 호출 프로세스의 주소 공간에 매핑

UnmapViewOfFile: 호출 process의 주소 공간에서 파일의 매핑 해제

IsBadReadPtr: 호출 process에 지정된 메모리 범위에 대한 읽기 권한이 있는지 확인

CreateMutexA: 뮤텍스 개체 생성 또는 열기

OpenMutexA: 뮤텍스 개체 열기

CreateFileA: 파일 생성 및 열기

CreateFileMappingA: 파일 매핑 개체 생성 또는 열기

CopyFileA: 파일 복사

FindFirstFileA: 디렉토리에서 파일이나 디렉토리 검색

FindNextFileA: FindFirstFileA에 대한 파일 검색 이어서 지속

FindClose: 파일 검색 핸들 닫기

CloseHandle: 열려 있는 개체 핸들을 닫음

잘은 모르지만 대충 파일 찾고 복사하는 기능이 있는 것 같다.

 


Lab01-01.dll / WS2_32.dll

WS2_32.dll에서 Ordinal_이란 함수도 import 하는데 아래의 ordinal에서 찾아보면 closesocket, connect, htons, inet_addr, recv, send, shutdown, socket, WSAStartup, WSACleanup 함수이다.

socket 함수를 import하는 걸로 봐서는 뭐 통신할 일이 있나보다.

C&C라던지..

 


 

 

5. Are there any other files or host-based indicators that you could look for on infected systems?

kerne132.dll
kernel32.dll
.exe
C:\*
C:\windows\system32\kerne132.dll
Kernel32.
Lab01-01.dll
C:\Windows\System32\Kernel32.dll
WARNING_THIS_WILL_DESTROY_YOUR_MACHINE

이전 문제에서 strings 명령어를 통해 찾은 Lab01-01.exe 실행 파일 속 문자열들 중 일부이다.

kernel32.dll이라는 문자열이 두 개 보이는데 이를 자세히 보면 kernel이란 단어의 알파벳 'l'이 숫자 '1'로 되어 있는 것을 볼 수 있다. 

영어판 야민정음으로 숨겨놨다. 일컫는 용어가 있었는데 기억이 안 난다.

 

아무튼 이를 통해서 C:\Windows\System32\kerne132.dll 이라는 문자열을 찾을 수 있는데 이게 감염된 시스템에서 찾을 수 있는 파일인 것 같다.

WARNING_THIS_WILL_DESTROY_YOUR_MACHINE이라는 문자열도 조금 거슬리긴 한다.

 

 


 

 

6. What network-based indicators could be used to find this malware on infected machines?

hello
127.26.152.13
SADFHUHF

Lab01-01.dll에서 stings로 찾은 문자열 중에서도 딱 봐도 수상해 보이는 문자열이 하나 발견된다.

아이피 주소 형태의 127.26.152.13이라는 네트워크 IP 주소가 있다.

 

 


 

 

7. What would you guess is the purpose of these files?

kerna132.dll 이라는 프로그램이 악성 시스템인 것 같다.

Lab01-01.dll이 메인인 것 같고 Lab01-01.exe가 얘를 실행시키는 것 같다.

Lab01-01.dll이 127.26.152.13 이라는 C&C 서버와 통신을 하지 않을까 추측해본다.

728x90
반응형

댓글