Short bio
| 분석 환경 | Windows XP |
샘플 파일
| 1 | Lab01-01.exe |
| 2 | Lab01-01.dll |
Questions
1) VirusTotal Detections?
2) Compilation Date?
3) Packed/Obfuscated?
4) Import Hints?
5) Host Based Indicators?
6) Network Based Indicators?
7) Suggested Purpose?
1) VirusTotal Detections?

| FileName | Lab01-01.exe |
| MD5 | bb7425b82141a1c0f7d60e5106676bb1 |
| SHA-256 | 58898bd42c5bd3bf9b1389f0eee5b39cd59180e8370eb9ea838a0b327bd6fe47 |
| Detection ratio | 56/72 |
| Creation Time | 2010-12-19 16:16:19 UTC |

| FileName | Lab01-01.dll |
| MD5 | 290934c61de9176ad682ffdd65f0a669 |
| SHA-256 | f50e42c8dfaab649bde0398867e930b86c2a599e8db83b8260393082268f2dba |
| Detection ratio | 47/73 |
| Creation Time | 2010-12-19 16:16:38 UTC |
2) Compilation Date?
| Lab01-01.exe | 2010-12-19 16:16:19 |
| Lab01-01.dll | 2010-12-19 16:16:38 |
3) Packed/Obfuscated?
| Lab01-01.exe | 2010-12-19 16:16:19 |
| Packed / Protector | x |
| Lab01-01.dll | 2010-12-19 16:16:38 |
| Packed / Protector | x |
4) Import Hints?
Lab01-01.exe은
KERNEL32.dll과 MSVCRT.dll 모듈을 import 한다.
CreateFileA , CreateFileMappingA , MapViewOfFile
사용을 보아 해당 악성코드는 특정 파일 또는 디바이스를 열고 물리 메모리에 올린 뒤
가상 메모리에 매핑하는 작업을 수행 하는 것을 예상해볼 수 있다.
또한 CopyFileA 로 특정 파일을 복사하는 작업도 수행하는 것 같다.
Lab01-01.dll은
KERNEL32.dll과 MSVCRT.dll, WS2_32.dll 모듈을 import 한다.
CreateMutexA, CreateProcessA, OpenMutexA 사용을 보아
새로운 뮤텍스 개체를 생성하고 뮤텍스를 열거하는 작업을 하는데 해당 호출은
주로 중복 실행을 감지하는데 사용된다.
WS2_32.dll 모듈을 import 하는 것을 봤을 때
해당 프로그램은 소켓에 연결하여 통신하는 작업을 수행 한다는 것을 파악할 수 있고
이에 더 세부적인 추가 작업 결정 여부를 알기 위해선 다른 정보 수집이 필요하다.
pestudio를 사용하여 멀웨어 스코어 지수 비율이 높은 win32api 함수를 빨간 폰트로 마스킹해보았다.
- Lab01-01.exe Imports
- KERNEL32.dll
- CloseHandle
- CopyFileA
- CreateFileA
- CreateFileMappingA
- FindClose
- FindFirstFileA
- FindNextFileA
- IsBadReadPtr
- MapViewOfFile
- UnmapViewOfFile
- MSVCRT.dll
- __getmainargs
- __p___initenv
- __p__commode
- __p__fmode
- __set_app_type
- __setusermatherr
- _adjust_fdiv
- _controlfp
- _except_handler3
- _exit
- KERNEL32.dll
- Lab01-01.dll Imports
- KERNEL32.dll
- CloseHandle
- CreateMutexA
- CreateProcessA
- OpenMutexA
- Sleep
- WS2_32.dll
- closesocket
- connect
- htons
- inet_addr
- recv
- send
- shutdown
- socket
- WSACleanup
- WSAStartup
- MSVCRT.dll
- _adjust_fdiv
- _initterm
- free
- malloc
- strncmp
- KERNEL32.dll
5) Host Based Indicators?
| Lab01-01.exe | |
| strings | 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 |
kerne132.dll이라는 문자열을 확인할 수 있는데
이는 kernel32.dll을 사칭하기 위해 l 대신 1을 넣어 악성 프로그램에 대한 탐지를 회피하려는 의도를 알 수 있다.
Lab01-01.dll 모듈도 참조하는 것 같다.
WARNING_THIS_WILL_DESTROY_YOUR_MACHINE 공격적인 문자열도 확인할 수 있었는데

이는 실행 인수를 체크하는 용도로 활용되고 있었다.
즉 프로그램을 실행 할 때 해당 파라미터를 주지 않고 실행한다면 아무것도 동작하지 않고 종료된다.
파라미터를 넣고 실행 시
kernel32.dll을 dwCreationDisposition를 OPEN_EXISTING 0x3으로 줘서 CreateFileA를 호출하고
CreateFileMappingA 호출로 물리 메모리에 올리고 MapViewOfFile로 가상 메모리에 매핑하는 작업을 한다.
Lab01-01.dll 모듈도 CreateFileA로 파일 핸들을 얻어와 위와 동일한 작업을 수행한다.

이후 CopyFileA로 Lab01-01.dll을 C:\Windows\System32\kerne132.dll에 복사한다.
| Lab01-01.dll | |
| strings | exec sleep hello 127.26.152.13 SADFHUHF /0I0[0h0p0 141G1[1l1 1Y2a2g2r2 3!3}3 |
Lab01-01.dll은 소켓 통신에 사용되는 모듈을 import 하는 것을 봤을 때
127.26.152.13는 공격자 서버 (C2)와 연결하기 위해 공격자 서버 IP 주소를 나타내는 것으로 보이며
exec, sleep, hello 같은 문자열은 해당 커맨드로 특정 작업이 수행될 것으로 추측된다.

첫 main 함수에선 중복 실행을 방지하기 위해 OpenMutexA로 이전에 생성한
뮤텍스 개체가 있는지 확인하고 없으면 새로 생성한다.

Winsock 초기화 작업 후 공격자 서버 127.26.152.13에 연결되고
"hello"라는 데이터를 담고 서버에 send 한다.

이후 공격자 서버에서 명령 커맨드를 보내면 해당 응답을 수신받고 작업을 수행한다.
| sleep | Sleep(0x60000); |
| exec | CreateProcessA(0, &v11[4], 0, 0, 1, 0x8000000u, 0, 0, &StartupInfo, &ProcessInformation); |
6) Network Based Indicators?
| 127.26.152.13 |
7) Suggested Purpose?
Lab01-01.exe는 Lab01-01.dll과 kernel32.dll를 물리 메모리에 올린 뒤 가상 메모리에 매핑하고
Lab01-01.dll를 kernel32.dll과 유사한 이름을 가진 C:\windows\system32\ kerne132.dll로 복사하는 작업을 수행한다.
이후 프로세스 생성 시 kernel132.dll이 동작하게 되어 공격자 서버와 연결되고 공격자가 내리는 명령을 수신받아
작업을 수행하는 백도어형 악성코드이다.
'Reversing > CTF' 카테고리의 다른 글
| Practical Malware Analysis [Lab 1-3] (0) | 2024.10.29 |
|---|---|
| Practical Malware Analysis [Lab 1-2] (1) | 2024.10.25 |
| DreamHack - rev-basic-3 풀이 (1) | 2022.09.29 |
| CodeEngn Basic RCE 12 문제 풀이 (0) | 2022.05.10 |
| CodeEngn Basic RCE 11 문제 풀이 (0) | 2022.05.08 |