본문 바로가기

Reversing/CTF

Practical Malware Analysis [Lab 1-1]

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?

 

1) Lab01-01.exe

 

 

2) Lab01-01.dll

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
  • 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

 

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 공격적인 문자열도 확인할 수 있었는데

main()

 

이는 실행 인수를 체크하는 용도로 활용되고 있었다.

즉 프로그램을 실행 할 때 해당 파라미터를 주지 않고 실행한다면 아무것도 동작하지 않고 종료된다.

파라미터를 넣고 실행 시 

kernel32.dll을 dwCreationDisposition를 OPEN_EXISTING 0x3으로 줘서 CreateFileA를 호출하고

CreateFileMappingA 호출로 물리 메모리에 올리고 MapViewOfFile로 가상 메모리에 매핑하는 작업을 한다.

Lab01-01.dll 모듈도 CreateFileA로 파일 핸들을 얻어와 위와 동일한 작업을 수행한다.

 

close routine

이후 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 같은 문자열은 해당 커맨드로 특정 작업이 수행될 것으로 추측된다.

 

Lab01-01.dll Mutex

 

첫 main 함수에선 중복 실행을 방지하기 위해  OpenMutexA로 이전에 생성한

뮤텍스 개체가 있는지 확인하고 없으면 새로 생성한다.

 

Lab01-01.dll socket init

Winsock 초기화 작업 후 공격자 서버 127.26.152.13에 연결되고

"hello"라는 데이터를 담고 서버에 send 한다.

 

Lab01-01.dll execute command

 

이후 공격자 서버에서 명령 커맨드를 보내면 해당 응답을 수신받고 작업을 수행한다.

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