티스토리 뷰

◎ Image Identification : 이미지 식별
 > imageinfo : 생성한 메모리 덤프 파일의 운영체제와 하드웨어에 대한 프로파일(기본 정보)을 나열합니다.
  - PAE(Physical Address Extension, 물리주소확장) : 4GB 메모리 어드레싱 가능 여부
  - DTB(Directory Table Base) : 가상주소를 물리 주소로 변환하기 위한 디렉터리 테이블의 주소 값

  - KDBG(_KDDEBUGGER_DATA64) : 운영체제의 정보를 가지고 있는 구조체이며, Process 활성화 상태, Handle 오픈 여부, Kernel변수의 Memory 주소 등의 정보를 확인할 수 있습니다. 

  - KDBG(_KDDEBUGGER_DATA64) : 운영체제의 정보를 가지고 있는 구조체이며, Process 활성화 상태, Handle 오픈 여부, Kernel변수의 Memory 주소 등의 정보를 확인할 수 있습니다. 

  - KPCR(Kernel Processor Control Region): CPU의 정보를 가지고 있는 구조체이며, 멀티코어 시스템에서는 각각의 프로세서마다 KPCR을 가지고 있습니다.

  - KUSER_SHARED_DATA : 커널모드와 유저 모드 사이에 공통으로 매핑되어 있는 메모리, 커널단에서는 0 xFFDF0000 주소로, 사용자 영역에서는 0x7FFE0000 주소로 참조 가능한 물리적 페이지 메모리 영역이며, 4 Kbyte 영역 중 1 Kbyte만을 시스템이 사용 중이므로 나머지 3 Kbyte의 공간은 비어있음

 # python vol.py -f image.vmem imageinfo

 

 > kdbgscan : 정확한 프로파일과 커널 디버거 데이터 블록(_KDDEBUGGER_DATA64)의 특징을 찾고 분석합니다.
  - Offset (V) : virtual offsets(offsets : 메모리 주소를 표현하는 방식)
  - Offset (P) : physical offsets
  - KDBG 주소(만약 여러 개가 있다면) 중 0 프로세스, 0 모듈은 유효하지 않음
  - 유효한 KDBG 주소를 pslist플러그인에 '--kdbg=0x주소(virtual offsets)' 로 제공
  - PsActiveProcessHead : 활성화된 프로세스의 헤드 목록에 대한 주소(Pointer to the list head of active processes)
  - PsLoadedModuleList : 로드된 커널 모듈 목록에 대한 주소(Pointer to the list of loaded kernel modules)
  - KDBG 를 통해 OS 정보 식별: 32bit의 경우 8Byte의 0x00으로 시작, 64bit의 경우 0 xfffff800으로 시작
  - KernelBase : 커널주소
  - Major (OptionalHeader) : OS 버전 앞자리
  - Minor (OptionalHeader) : OS 버전 뒷자리
  - Microsoft Windows [Version 6.1.7601]인 경우 => Major : 6, Minor : 1

 # python vol.py -f image.vmem --profile=Win7SP1x64 kdbgscan

 

 > kprcscan : CPU의 정보를 가지고 있는 구조들을 스캔합니다.
  - KdVersionBlock : 커널의 전역 변수로 디버깅 시스템에 대한 버전 정보를 지닌 _DBGKD_GET_VERSION64 구조체의 주소를 가지고 있습니다. 또한 이 구조체의 DebuggerDataList 필드는 _KDDEBUGGER_DATA64 구조체의 Linked list에 포함되어 있습니다.
  - IDT(Interrupt Descriptor Table) : 인터럽트 디스크립터 테이블, CPU에서 트러블이 발생하면, 임시로 처리를 스위칭하는 기능으로 인터럽트 번호는 0~255까지 설정되어 있습니다.
  - GDT(Global segment Descriptor Table) : 글로벌 디스크립터 테이블, 세그먼트는 메모리의 구역을 정확히 나누어서 메모리의 이용 범위를 안 겹치게 하는 방법으로 4GB의 메모리를 분할한 뒤 각 블록의 처음 시작 번지를 0으로 하여 다루는 기능입니다.
  - CurrentThread : 현재 수행중인 쓰레드

  - IdleThread : 유휴 스레드
  - TID(ThreadID) : 운영체제 관점에서 쓰레드의 식별자
  - Details : CPU 벤더, 속도

  - CR3/DTB : CPU의 레지스터 페이지 디렉터리의 시작 위치로 페이지 디렉토리(PD) 혹은 페이지 디렉토리 포인터 테이블(PDPT)을 가리키기 위해 CR3 레지스터가 사용되며, 이 값을 Directory Table Base라 부릅니다. DTB는 _EPROCESS.Pcr.DirectoryTableBase 필드에도 존재

 # python vol.py -f image.vmem --profile=Win7SP1x64 kprcscan

 

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 : 기타 등등

댓글
공지사항