
볼라틸리티(Volatility)
= 메모리 포렌식에 사용하는 메모리 분석 도구
= 파이썬 2.x에서 구동되는 오픈소스 형식의 프레임워크
vol.py -f [이미지 경로] [플러그인]
vol.py -f [이미지 경로] --profile=[운영체제] [플러그인]
-f : 파일선택 옵션덤프 이미지는 vol.py와 같은 위치에 있는
Windows7.vmem을 사용
운영체제는 Windows 7Win7SP1x64
--info : 플러그인 정보 확인 가능
vol.py --info
imageinfo : 메모리 덤프 파일의 프로파일 정보를 출력
vol.py -f Windows7.vmem imageinfo
kdbgscan : 커널 디버거 데이터 블록의 특징을 찾고 분석
timeliner : 시간 정보가 있는 윈도우 아티팩트 출력
pstree : 프로세스 트리 출력
vol.py -f Widnows7.vmem --profile=Win7SP1x64 pstree

pslist : 작동 중인 모든 프로세스 출력
psscan : 풀 스캐너를 통해 프로세스 출력
psxview : 다양한 프로세스 리스트 출력
pslist=True, psscan=False인 프로세스 : 숨겨진 프로세스
memdump : 프로세스의 메모리 덤프
netscan : 덤프 당시 네트워크 상태

dlllist : 특정 프로세스가 사용하는 dll 리스트
vol.py -f Windows7.vmem --profile=Win7SP1x64 dlllist -p [PID 번호]
-p : PID 지정 옵션
PID가 2312인 chrome.exe의 dlllist 참조

위의 dll 리스트를 다음과 같은 명령어를 이용해 html 상에서 표 형태로 나타낼 수 있다.
psxview, getservicesid 등에도 적용 가능
vol.py -f Windows7.vmem --profile=Win7SP1x64 dlllist -p 2312 --output=html --output-file=.\dlllist.html


dlldump : 프로세스가 사용한 dll 덤프
vol.py -f Windows.vmem --profile=Win7SP1x64 dlldump -p 2312 --base=2005336064 -D ./
--base : 특정 dll 추출 (인자: 특정 dll의 base 값)
-D : 파일 추출 경로 지정

생성 파일 이름 : [프로세스 ID.프로세스 가상 주소.로드된 dll주소]
getsids : 시스템 상 사용자의 SID, 응용 프로그램 별 권한 확인

malfind : 악성코드를 시그니처 기반으로 검색
--dump-dir 옵션을 사용해 원하는 경로에 저장 가능
hivelist : 레지스트리 하이브의 물리주소, 가상 주소, 경로 포함 이름 출력
printkey
printkey : 레지스트리의 key의 서브키, 값을 출력
vol.py -f Windows7.vmem --profile=Win7SP1x64 printkey -o 0xfffff8a000024010
-o : 가상 주소 지정 옵션

hashdump : 레지스트리 하이브에 있는 해시를 추출하고, 역해시 시도

userassist : 레지스트리 키를 대상으로 분석한 결과 출력
많은 내용을 검토할 때, 명령어의 실행 내용을 텍스트로 바꾸는 경우에 사용한다.
[명령어] > [파일이름].txt
ex) vol.py -f Windows7.vmem --profile=Win7SP1x64 userassist > userassist.txt

shellbags : shellbags 레지스트리 분석

shimcache : shim 인프라가 사용하는 캐시를 분석
getservicesids : 윈도우 각 사용자의 설치된 서비스 목록
dumpregistry : 모든 레지스트리 하이브를 파일로 추출
vol.py -f [이미지 경로] --profile=[운영체제] dumpregistry -o [가상경로] -D ./
mftparser : ntfs 파티션의 mft 엔트리 분석
consoles : conhost.exe를 분석
cmd.exe에서 입력한 명령어와 실행 결과cmd.exe를 사용하는 프로세스 이름connections : 현재 실행 중인 tcp 세션 출력
connscan : 종료된/현재 실행 중인 tcp 세션 출력
sockets : listening 상태인 tcp, udp, raw 소켓 출력
netscan : tcp, udp, raw 소켓 출력
filescan : 추출할 수 있는 파일 찾기
dumpfiles 플러그인으로 해당 파일 추출 가능dumpfiles : 메모리에서 추출할 수 있는 파일 추출을 수행
vol.py -f [이미지 경로] --profile=[운영체제] dumpfiles -Q [원하는 파일의 Offset값]
-Q : offset 값 입력 옵션
apihooks : 후킹 된 API 함수 찾기
malfind 플러그인과 같이 사용하면 좋다driverscan : 드라이브 목록 출력
mutantscan : kmutant 객체 목록 출력
thrdscan : 프로세스가 사용한 쓰레드 목록 출력
memmap : 프로세스가 사용한 물리 메모리와 가상 메모리 출력
procdumpy : 프로세스를 파일로 추출
yarascan : yara 이용
Memory Analysis
[메모리 포렌식] Volatility 프레임워크 플러그인
Volatility 플러그인
어렵네요.. 잘보고갑니다~