티스토리 뷰

◎ Process Memory : 프로세스 메모리 분석
 > memmap : 해당 Image에서 할당된 Memory 주소 Map을 보여주는 명령어입니다.
  - 정확히 어떤 페이지가 메모리 상주인지 상세한 프로세스 DTB(또는 대기상태나 시스템 프로세스에서 이 플러그인을 쓴다면 커널 DTB)를 보여줍니다. 
  - 페이지의 가상주소, 페이지의 일치하는 물리적 오프셋, 그리고 페이지 사이즈를 보여줍니다. 
  - 맵 정보는 근본적인 주소 공간의 get_available_addresses 방법을 사용해 플러그인으로써 발생됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 memmap -p 1111

 

 > memdump : Process의 다양한 Memory Segment에서 모든 Data를 추출하여 dump 하는 명령어입니다.
  - 특정 출력 디렉토리를 설정하려면, --dump-dir=DIR 또는 -D DIR을 사용합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 memdump -p 1111 -D folder_name/

 

 > procmemdump : 실행 가능한 Process(Slack space 포함)을 dump 하는 명령어입니다.
  - PE header 검증을 하지 않은 체로 dump 하려면 -u 또는 --unsafe를 사용하면 가능합니다.
  - 몇몇 악성코드는 PE 헤더에서 의도적으로 사이즈 필드를 위조해서 메모리 덤핑 툴이 실패하게 만듭니다.
  - 슬랙 공간(Slack space) : 저장 매체의 물리적인 구조와 논리적인 구조의 차이로 발생하는 낭비 공간. 물리적으로 할당된 공간이지만 논리적으로는 사용할 수 없는 공간을 말합니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 procmemdump -p 1111 -D folder_name/

 

 > procexedump : 실행 가능한 Process(Slack space 미포함)을 dump 하는 명령어입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 procexecdump -p 1111 -D folder_name/

 

 > vadinfo : 프로세스의 VAD 노드들에 대한 확장된 정보를 보여주기 위한 명령어로 아래와 같은 정보를 보여줍니다.
  - VAD(Virtual Address Descriptor) : 프로세스 주소 공간에서 가상 주소가 예약되어 있는지 여부를 추적할 수 있게 관리하는 데이터 구조체 집합입니다.
  - 커널 메모리에서 MMVAD 구조체 주소
  - MMVAD(Memory Manager Virtual Address Descriptors) : 메모리 관리자 가상 주소 설명 자라는 이진트리 항목
  - 윈도우 메모리 관리자(Windows Memory Manager)는 실제 메모리에 액세스 하기 전 각 프로세스(프로세스 관리자가 프로세스를 관리하기 위해 필요한 정보를 포함하는 EPROCESS 구조)의 가상 주소 공간에 액세스 하기 위한 정보를 이진트리(MMVAD 구조로 메모리 세그먼트의 가상 메모리 기본 주소 및 크기와 같은 MM 관련 정보 포함) 형태로 관리합니다.
  - MMVAD 구조가 적용되는 프로세스 메모리에서의 시작과 끝 지점의 가상주소(Virtual Address)
  - VAD 태그
  - VAD 플래그와 컨트롤 플래그 등
  - 매핑된 메모리(memory map File)의 이름(존재할 경우)
  - 커널 메모리(Kernel Memory)의 MMVAD 구조체 주소
  - Memory Protection(only original protection) : PAGE_NOACCESS 로 메모리 할당 시 보호를 하였다 하더라도, 이것이 현재 메모리 상태를 나타내는 것이 아닐 수 도 있습니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 vadinfo -p 1111

 

 > vadwalk : VAD nodes 들을 보여주는 명령어입니다.
  - VAD tree(Virtual Address Descriptor tree) : 자체 밸런싱 바이너리 트리를 말하며 특정 노드의 왼쪽은 특정 노드보다 낮은 값의 노드, 오른쪽은 특정 노드보다 높은 값의 노드로 이루어져 있는 트리를 말합니다. Windows memory manager에서 프로세스가 할당받은 메모리를 표현하기 위해 사용됩니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 vadwalk -p 1111

 

 > vadtree : VAD nodes 들을 Tree 형태로 보여주는 명령어입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 vadtree -p 1111

 

 > vaddump : memdump 와 유사한 명령어로서, 각각의 VAD Segment에서 포함된 Data를 dump 하는 명령어입니다.
  - memdump 와는 달리 dump 되는 dmp File 의 이름이 Memory 주소 영역으로 되어 있습니다.
  - 해당 File 명은 ProcessName.PhysicialOffset.StartingVPN.EndingVPN.dmp 와 같은 포맷으로 되어 있습니다.
  - PhysicalOffset 이 File 명에 들어가는 이유는 같은 이름을 가진 2 개 이상의 Process 들을 구분하기 위해서입니다.

 # python vol.py -f image.vmem --profile=Win7SP1x64 vaddump -D folder_name/

 

 > evtlogs : Windows 이벤트 로그 추출 명령어입니다. (XP/2003 only)

 # python vol.py -f image.vmem --profile=Win7SP1x64 evtlogs --dump-dir=folder_name/
 # cat folder_name/appevent.txt

 

Volatility 볼라틸리티 2.1 Plugins - 윈도우#01

◎ Image Identification : 이미지 식별

Volatility 볼라틸리티 2.1 Plugins - 윈도우#02

◎ Processes and DLLs : 프로세스와 DLLs 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#03

◎ Process Memory : 프로세스 메모리 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#04

◎ Kernel Memory and Objects : 커널 메모리와 오브젝트 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#05

◎ Networking : 네트워크 정보
Volatility 볼라틸리티 2.1 Plugins - 윈도우#06

◎ Registry : 단지 Registry data를 추출하는데 도움을 줍니다.
Volatility 볼라틸리티 2.1 Plugins - 윈도우#07

◎ Crash Dumps, Hibernation and Conversion : 크래쉬 덤프, 하이버네이션 정보확인 및 파일변환
Volatility 볼라틸리티 2.1 Plugins - 윈도우#08

◎ Malware and Rootkits : 맬웨어와 루트킷 분석
Volatility 볼라틸리티 2.1 Plugins - 윈도우#09

◎ Miscellaneous : 기타 등등

댓글
공지사항