본문 바로가기
Forensics

[포렌식] Volatility 사용법

by 수픽 2021. 1. 20.

볼라틸리티 설치

 

volatility 설치 전 필요 프로그램

 

(*볼라를 사용하려면 파이썬 2.x버전만 필요한데 따로 3.x. 버전도 필요하면 아래 블로그를 참고)

m.blog.naver.com/PostView.nhn?blogId=bb_&logNo=221716587479&proxyReferer=https:%2F%2Fwww.google.com%2F

 

volatility 설치 완료

 

프로세스, 네트워크 정보 , CMD명령어 기록, iE 히스토리, MFT 파서, 프로세스에 대한 메모리 덤프, 파일 복구 가능

 

메모리 분석

vmem 파일 복사

 

1) Profile 확인

vol.py -f [파일명] imageinfo

 

imageinfo

서버에 대해서는 용량이 너무 커 메모리 덤프를 거의 진행하지 않음

개인 PC 가정 하에, Suggested Profiles에서 서비스 버전이 가장 높은 것을 선택하는 것이 좋음

 

2) 프로세스 정보 확인

vol.py -f [파일명] --profile=[프로파일명] pstree/psscan/pslist

pstree

트리 형태로 하위 프로세스 구조 파악 가능

pstree

 

부모 프로세스가 없는 프로세스를 중점으로 분석하면 악성코드 여부 확인 가능

부모 프로세스가 없는 프로세스

psscan

pstree와 비슷하지만, 트리 형태가 아닌 단순 출력

부모 프로세스는 PPID를 통해 확인 가능

루트 킷에 의한 은닉된 프로세스를 전부 출력해주는 기능

psscan

pslist

pslist

 

* 세 가지 명령어를 모두 사용하여 은닉된 프로세스가 있는지 비교분석 필요

 

3) 네트워크 정보 확인

vol.py -f [파일명] --profile=[프로파일명] netscan

netscan

리눅스/윈도우 환경의 netstat

메모리의 네트워크 정보/ 프로세스 정보 출력

netscan

4) cmd 명령어

vol.py -f [파일명] --profile=[프로파일명] cmdscan

cmdscan

cmd명령어 확인

cmdscan

 

5) iE 히스토리

vol.py -f [파일명] --profile=[프로파일명] iehistory

iehistory

메모리에 웹에 접근한 내용이 있다면 출력

iehistory

 

정보가 많을 때 리다이렉션을 이용하여 txt 파일로 만들어줌

 

vol.py -f [파일명] --profile=[프로파일명] iehistory >> ie.txt

 

ie.txt

 

6) MFT 파서

vol.py -f [파일명] --profile=[프로파일명] mtfparser

mftparser

파일에 대한 메타데이터 분석 (침해사고 분석)

mftparser

정보가 너무 많아 csv파일로 변환

 

vol.py -f [파일명] --profile=[프로파일명] mftparser >> mft.csv

 

mftparser >> mft.csv

생성된 csv 파일

mft.csv

 

7) 프로세스에 대한 메모리 덤프

vol.py -f [파일명] --profile=[프로파일명] memdump-p pid -D [저장될 디렉토리]

memdump

입력했었던 명령어, 실행된 파일 확인 가능

memdump

strings.exe x.dmp >> x.txt

프로세스에 있던 텍스트 문구

strings.exe

* 2020.07.17 - [Forensics] - [포렌식] Internet Explorer 10 검색 기록 아티팩트

strings에 관한 설명은 이전 포스팅 참고

 

strings.txt 파일 생성

 

8) 파일 복구

filescan

vol.py -f [파일명] --profile=[프로파일명] filescan

 

복구하고자 하는 파일 찾기

filescan

 

파일 중에 원하는 파일을 검색하기 위해 findstr 사용

 

vol.py -f [파일명] --profile=[프로파일명] filescan | findstr "찾고자 하는 문자"

 

findstr "png"

 

dumpfiles

vol.py -f [파일명] --profile=[프로파일명] dumpfiles -Q [메모리 주소] -D [저장할 디렉토리] 

 

파일 복구

dumpfiles

파일이 생성되었다.

 

*그 외에도 malfind : 악성코드 분석 등 많은 명령어들이 있음 (-h 옵션 통해 확인)