◎ 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 : 기타 등등
'디지털포렌식&사고대응 > Volatility' 카테고리의 다른 글
Volatility 볼라틸리티 2.1 Plugins - 윈도우#03 (0) | 2021.03.22 |
---|---|
Volatility 볼라틸리티 2.1 Plugins - 윈도우#02 (0) | 2021.03.19 |
Volatility 볼라틸리티 profiles 생성 (0) | 2018.02.19 |
Volatility 볼라틸리티 plugins 및 profiles 확인 (0) | 2018.02.19 |
Volatility 볼라틸리티를 이용한 메모리 분석 방법론 (0) | 2017.11.30 |