◎ Kernel Memory and Objects : 커널 메모리와 오브젝트 분석
> modules : System에 load된 kernel driver들을 보여주는 명령어입니다.
- PSLoadedModuleList가 가리키는 LDR_DATA_TABLE_ENTRY를 통해 doubly-linked 형태로 동작하며 hidden/unlinked kernel driver는 출력해 주지 않습니다.
- 기본적으로 Virtual address 로 출력하며, Physical address 를 보고 싶다면 -P Option 을 추가하면 됩니다.
# python vol.py -f image.vmem --profile=Win7SP1x64 modules # python vol.py -f image.vmem --profile=Win7SP1x64 modules -P |
> modscan : Kernel module 을 Physical address 로 보여주는 명령어입니다.
- pool 태그로 물리적 메모리 스캐닝을 함으로써 LDR_DATA_TABLE_ENTRY 구조들을 찾을 수 있습니다.
- 이전에 load 되었던 driver, Rootkit 에 의해 hidden/unlinked 된 Driver 도 출력해 줍니다.
# python vol.py -f image.vmem --profile=Win7SP1x64 modscan |
> moddump : Kernel driver 를 File 로 dump 해 주는 명령어입니다.
- 정규 표현 식과, Physical Offset 을 이용한 Filter 를 지원해 줍니다.
- 모든 driver 들을 dump 하고 싶다면 아무런 Filter 를 적용하지 않으면 됩니다.
- 명령어 라인에 -D 또는 --dump-dir=DIR 로 출력 디렉토리를 제공합니다.
- dlldump 와 비슷하게, PE 헤더의 중요한 부분이 메모리 상주가 아니라면 드라이버의 재구축 또는 추출은 아마 실패 할 것입니다.(2.1버전)
# python vol.py -f image.vmem --profile=Win7SP1x64 moddump -D folder_name/ |
> ssdt : Native 와 GUI SSDT 의 함수들을 list 시켜주는 명령어입니다.
- index, function name, SSDT 에서 각각의 entry 를 소유하고 있는 driver owner 를 출력해 줍니다.
- Windows 는 4 개의 SSDT 를 가지고 있으나 NT module 의 Native Function, win32k.sys module 의 GUI function 만을 사용하고 있습니다.
# python vol.py -f image.vmem --profile=Win7SP1x64 ssdt |
> driverscan : Memory 의 DRIVER_OBJECT 를 pool 태그 스캐닝하는 명령어입니다.
- 모든 kernel module 이 DRIVER_OBJECT 와 관련된 것은 아닙니다.
- DRIVER_OBJECT : 드라이버를 나타내는 데이터 구조체입니다. DEVICE_OBJECT를 포함하고 있으며, 하나의 드라이버가 동일한 장치 여러 개를 관리 할 수 있습니다.
- DEVICE_OBJECT : 드라이버를 통해서 관리되는 장치를 표현하는 구조체입니다.
# python vol.py -f image.vmem --profile=Win7SP1x64 driverscan |
> filescan : pool 태그 스캐닝을 사용하여 물리적 메모리에서 FILE_OBJECT를 스캐닝하는 명령어입니다.
- Rootkit 이 디스크에 File 을 hiding 하였거나, 실제 System 의 open handle 을 hooking 하였더라도 open File 을 찾을 수 있습니다.
# python vol.py -f image.vmem --profile=Win7SP1x64 filescan |
> mutantscan : Memory 에서 KMUTANT 객체를 pool 태그 스캐닝을 사용해 스캐닝하는 명령어입니다.
- 모든 오브젝트들을 보여주지만 mutexexs 로 명명된 것만 볼 수 있도록 -s 또는 --silent 를 사용할 수 있습니다.
- CID column 은 Process ID 와 Thread ID 를 보여줍니다.
- Volatility 는 mutexes 들이 random 한 이름을 가지기 때문에 의심 가는 mutexes 를 판단하는 것이 어렵다는 것을 알고, sqlite3 database 를 통해 해당 Memory dump 에 이미 DB 에 존재하는 이름이 있으면 강조해주는 기능을 가지고 있습니다.
# python vol.py -f image.vmem --profile=Win7SP1x64 mutantscan -s |
> symlinkscan : Symbolic link 객체들을 pool 태그 스캐닝을 사용해 스캐닝하는 명령어입니다.
# python vol.py -f image.vmem --profile=Win7SP1x64 symlinkscan |
> thrdscan : Memory 의 ETHREAD 객체를 pool 태그 스캐닝을 사용해 스캐닝하는 명령어입니다.
- ETHREAD 는 부모 process 를 식별할 수 있는 정보를 가지고 있기 때문에 이는 hidden Process 를 찾는데 도움을 주기도 합니다.
# python vol.py -f image.vmem --profile=Win7SP1x64 thrdscan |
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 - 윈도우#06 (0) | 2021.03.29 |
---|---|
Volatility 볼라틸리티 2.1 Plugins - 윈도우#05 (0) | 2021.03.26 |
Volatility 볼라틸리티 2.1 Plugins - 윈도우#03 (0) | 2021.03.22 |
Volatility 볼라틸리티 2.1 Plugins - 윈도우#02 (0) | 2021.03.19 |
Volatility 볼라틸리티 2.1 Plugins - 윈도우#01 (0) | 2021.03.19 |