[Lab 1-1] Practical Malware Analysis WriteUp
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?
두 파일 모두 VirusTotal에서 걸린다.
2. When were these files compiled?
VirusTotal에서 확인해보면 Lab01-01.exe와 Lab01-01.dll 두 파일 모두 2010년 12월 19일 16시 16분에 컴파일되었다.
PEview에서도 확인할 수 있다.
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?
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에서 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: 열려 있는 개체 핸들을 닫음
잘은 모르지만 대충 파일 찾고 복사하는 기능이 있는 것 같다.
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 서버와 통신을 하지 않을까 추측해본다.