본문 바로가기
정보보호

Volatility를 활용한 메모리 분석/포렌식

by 공돌이티티 2024. 3. 15.
반응형

이번 포스팅에서는 Volatility를 활용한 메모리 덤프 이미지 분석 및 포렌식 방법에 대해서 다루겠습니다.

자주 사용되는 기본 옵션 사용법들을 나열하였으며, 자세한 사용법은 volatility 공식 메뉴얼을 참고하시기 바랍니다.

Volatility 메모리 분석

 

1. 메모리 이미지 정보 확인

volatility imageinfo -f [메모리 이미지]
메모리 이미지의 정보를 출력한다.

PAE : 물리 주소 확장 여부 (32bit OS에서 64GB의 물리 메모리까지 접근할 수 있도록 한다.)
KPCR (Kernel Processor Control Region): IDT,GDT 등의 기본 정보와 HAL 같은 다른 모듈과 공유하는 인터럽트 컨트롤러 상태를 담고 있다.

2. 프로세스 정보 출력

volatility pslist -f [메모리 이미지]
EPROCESS의 연결리스트를 이용하여 프로세스 리스트를 출력한다.
DKOM으로 프로세스를 은닉한 경우에는 출력되지 않는다.

Offset(V) : 오프셋 (가상 주소), 물리 주소 오프셋을 출력하려면 -P 옵션을 사용한다.
Name : 프로세스 명
PID : 프로세스 아이디
PPID : 부모 프로세스 아이디
Thds : 쓰레드 갯수
Hnds : 핸들 갯수
Time : 프로세스 생성 시간


volatility psscan -f [메모리 이미지]
POOL TAG를 스캔하여 프로세스 리스트를 출력한다.
DKOM으로 프로세스를 은닉한 경우에도 출력이 되며 종료된 프로세스도 출력가능하다.

Offset: 오프셋
Name : 프로세스 명
PID : 프로세스 아이디
PPID : 부모 프로세스 아이디
Time created : 프로세스 생성 시간
Time exited : 프로세스 종료 시간 (종료된 프로세스일 경우 출력됨.)

3. DLL 덤프 파일 수집

volatility dlldump --dump-dir=[dump 디렉토리] -f [메모리 이미지] > dlldump.info
메모리에 상주되어있는 dll의 덤프 파일을 수집한다.
파일명이 변경되어 저장되기 때문에 어떤 프로세스의 dll을 수집하였는지 정보를 남기기 위하여 출력을 파일로 저장한다.

 

4. EXE 덤프 파일 수집

volatility procexedump --dump-dir=[dump 디렉토리] -f [메모리 이미지] > exedump.info
메모리에 상주되어있는 실행 파일의 덤프 파일을 수집한다.
파일명이 변경되어 저장되기 때문에 어떤 프로세스의 실행 파일을 수집하였는지 정보를 남기기 위하여 출력을 파일로 저장한다.
히든 프로세스는 기본적으로 덤프가 되지 않기 때문에 -o [프로세스 오프셋] 옵션을 추가로 입력하여 덤프 가능하다.


volatility procmemdump --dump-dir=[dump 디렉토리] -f [메모리 이미지] > memdump.info
procexedump와 유사하나 slack space의 실행파일을 포함하여 수집한다.

 

 

5. 기타 - strings를 활용한 메모리 이미지 내부 문자열 추출

strings -o -q -accepteula [메모리 이미지] > [출력 파일]
메모리의 문자열 정보를 모두 출력한다.

반응형

바로가기