Forensic/분석

(Part 1) cridex 파일에 숨겨진 악성코드를 분석해보자

y3nny 2022. 10. 12. 16:10

오늘은 cridex.vmem에 숨겨진 악성코드를 찾아 분석해보는 숙제를 받았다.

나중에 다 정리되면 영문으로 보고서를 작성해 포트폴리오로 만들 계획 ^-^ㅎㅎ 

아무튼, 이제 본론으로 들어가자.


Volatility3 실행

나는 우분투에서 실행했다. 왜인지 모르겠지만, 패러렐즈에서 윈도우 cmd가 실행되지 않고, 오류가 발생; (짜증)

기억하자, 다운받은 cridex파일을 volatility3 폴더에 넣고 시작! 

 

volatility3를 실행하기 위해 폴더로 이동했다.
cridex 파일이 volatility3 폴더 안에 넣었다.

 


1. OS Information 

일단, cridex 파일의 OS 인포메이션이 필요하다.

 

명령어 : python3 vol.py -f cridex.vmem windows.info

해석 : 파이썬 코드로 된 volatility를 실행하고, 파일 이름이 cridex.vmem인 파일의 윈도우 운영체제의 인포메이션을 출력해라 

 

운영체제 정보들을 출력

운영체제의 정보들을 보면, 

IsPAE = 32비트 (x86)

Major/Minor = Windows XP 을 확인할 수 있다. 

 


2. Process Information

그 다음, 프로세스 정보가 필요하다 

아래의 명령어 중 상위/하위 프로세스들을 출력해주는 pstree(process tree)를 사용해보자.

  • vol.py -f “/path/to/file” windows.pslist
  • vol.py -f “/path/to/file” windows.psscan
  • vol.py -f “/path/to/file” windows.pstree

명령어 : python3 vol.py -f cridex.vmem windows.pstree

해석 : 파일 이름이 cridex.vmem인 파일의 윈도우 운영체제의 프로세스 트리를 정렬해라

 

트리 형태로 프로세스들이 정렬되었다.

 

여기서 PID 와 PPID는 무엇일까?

 

PID (Process ID)

운영체제에서 프로세스를 구분하기 위해 부여받은 번호를 의미

 

PPID (Parent Process ID)

해당 프로세스를 만든 부모 프로세스의 PID를 의미

보통 프로그램을 실행한 프로세스가 PPID로 할당

 

마지막에 PID 1484, PPID 1640을 확인해보면, 이름이 이상하고, 더군다나 컴퓨터를 감염시키는 explorer.exe가 실행되고 있다는 사실을 발견!

 


3. DLLS

reader_sl.exe의 dll 파일 정보들을 출력해보자.

 

명령어 : python3 vol.py -f cridex.vmem windows.dllist --pid 1640

해석 : PID가 1640인 dll list를 출력해라

흠, 악성코드에 자주 사용되는 DLL 파일들이 눈에 보인다.

ntdll.dll 윈도우가 부팅되면서 커널 메모리 영역을 사용할 수 있게 함
간접적으로 kernel32.dll 을 통해 가져오지만, 실행 파일은 일반적으로 이 파일을 가져올수 없음
kernel32.dll 과 한 몸인 셈 
kernel32.dll 메모리 관리, 파일 입/출력, 프로그램 코드/실행 등 기본적인 기능이 내장 된 동적 링크 라이브러리 파일
USER32.dll 윈도우, 대화 상자, 메뉴 등을 관리
GDI32.dll 화면/프린터의 그래픽 출력 관리 (Graphic Device Interface)
ADVAPI32.dll 서비스 관리자, 레지스트리 같은 추가 핵심 윈도우 컴포넌트에 접근 가능
시스템 종료/재시작, 윈도우 서비스의 시작/종료/생성/계정 관리 등의 기능 지원
RPCRT4.dll Remote Procedure Call Runtime (원격 프로시저 호출 런 타임)
Secur32.dll Security Support Provider Interface (보안 지원 공급자 인터페이스)
msvcrt.dll 마우스, 키보드, 모니터 등 기본적으로 프로그램에서 사용하는 하드웨어와 그래픽 등 가장 기본적인 장치를 선언
SHLWAPI.dll URL 경로, 레지스트리 항목 및 색상 설정에 대한 기능을 포함하는 라이브러리
MSVCP80.dll Microsoft Visual Studio 2005와 관련된 모듈인 C++ 런타임 라이브러리
comctl32.dll 상태 바, 진행 바, 툴 바 등과 같은 운영체제에서 지원하는 기능에 대한 응용프로그램의 접근 지원
uxtheme.dll MS 윈도우 운영체제와 관련된 모듈 (Microsoft UxTheme Library)
WS2_32.dll 네트워크 기능, 네트워크에 연결하거나 네트워크 관련 작업 수행
WS2HELP.dll 컴퓨터 부팅을 돕는 중요한 시스템 파일

이렇게 보면, 원래 있어야 하는 dll 파일 같지만, 왜 reader_sl 실행파일에 부팅을 돕는 dll 시스템파일 등이 있는 건지 의심스럽다.

 


Volatility3로는 WindowsXP를 탐색하기엔 너무 한정적인 부분이 많아, 2.6으로 사용해야 할 것 같다.

다음 시간에는 reader_sl 실행파일이 dll파일을 통해 네트워크에 연결되었거나, 연결하고 있는 가능성이 있기 때문에,

volatility2.6을 사용하여 네트워크 정보를 확인해보자.