본문 바로가기
포렌식

how to use Volatility

by 즉흥 2016. 9. 11.
728x90
반응형

CheatSheet_v2.4.pdf
다운로드

 

 

조금 찾아 봤는데 Volatility 2.5 치트 시트는 찾을 수가 없었다.

 

Linux와 MAC OS X는 Windows와 플러그인(명령어)이 다르기 때문에 기회가 된다면 나중에 따로 정리하도록 하겠다.

 

사실 모든 플러그인을 정리하자면 긴 문서가 되어 버린다.

 

플로그인들을 정리한 문서들은 웹 상에 많이 있으니 자세한 문서를 원하는 사람들은 웹 상에서 찾아보길 바란다.

 

나는 그냥 블로깅 용으로 메모리를 분석하면서 자주 사용했던 플러그인들을 정리하고자 한다.

 

 

1. 이미지 정보

 

python vol.py -f [target] imageinfo

 

 

 

 

profile이 없는 경우, https://github.com/volatilityfoundation/profiles에서 필요한 profile을 다운로드 한다.

 

저장 경로는 volatility-master\volatility\plugins\overlays.

 

압축파일 통째로 넣으면 됨.

 

\volatility\plugins\overlay\linux

python2 setup.py build

python2 setup.py install

을 해야함.

 

추가가 잘 됐다면 "python2 vol.py --info"를 통해 추가된 프로필을 확인할 수 있다.

 

python2 vol.py --info 결과

 

2. 프로세스 

 

python vol.py -f [target] --profile=[OS version] pslist

 

 

pslist는 실행중인 프로세스를 출력해주는 명령어이다.

 

 

python vol.py -f [target] --profile=[OS version] psscan

psscan은 pslist의 상위 버전 느낌으로 숨겨져 있거나 종료된 프로세스까지도 출력해준다. 만약 종료된 프로세스라면 Time Exited에 종료된 시각이 출력된다.

 

 

python vol.py -f [target] --profile=[OS version] pstree

프로세스의 부모 자식 관계를 트리 형태로 출력해준다.

 

 

python vol.py -f [target] --profile=[OS version] psxview

pslist와 psscan의 결과를 동시에 보여준다.

 

 

 

 

3. DLL 

 

python vol.py -f [target] --profile=[OS version] dlllist

 

 

 

특정 프로세스에 대한 DLL 리스트만을 출력하고 싶다면 -p 혹은 -pid 옵션을 추가해주면 된다.

 

 

 

 

python vol.py -f [target] --profile=[OS version] dlldump

 

dlldump를 이용하면 dll을 추출해낼 수 있다.

 

dlllist와 마찬가지로 특정 프로세스에 한정해서 dll을 추출하고 싶다면 -p 혹은 -pid 옵션을 추가하면 된다.

 

 

 

4. cmd

 

python vol.py -f [target] --profile=[OS version] cmdscan

 

 

 

python vol.py -f [target] --profile=[OS version] consoles

 

 

cmdscan과 비슷하지만 위 스크린샷처럼 사용한 명령어(history) 뿐만 아니라 입출력 버퍼들까지 모두 보여준다는 점이 다르다.

 

 

 

5. 프로세스 메모리

 

python vol.py -f [target] --profile=[OS version] -p [pid] memdump -D [dir]

 

해당 프로세스의 덤프 파일을 생성한다.

 

 

 

python vol.py -f [target] --profile=[OS version] -p [pid] procdump -D [dir]

해당 프로세스를 .exe로 추출한다.

 

다만 프로세스가 메모리에 단편적으로 올라와 있을 가능성이 매우 높으므로 완벽한 .exe 파일을 기대하기는 힘들다.

 

 

 

--offset=[offset] 옵션을 사용하면 offset 부터 추출해낼 수 있다.

 

 

 

6. 파일

 

 

python vol.py -f [target] --profile=[OS version] filescan

 

 

메모리에 있는 파일 오브젝트를 스캔한다. 이는 루트킷이 디스크에 파일을 숨겨도 찾아낼 수 있다.

 

 

 

python vol.py -f [target] --profile=[OS version] dumpfiles -Q [offset] -D [dir]

 

filescan으로 얻은 파일의 offset으로 메모리 안의 파일을 추출할 수 있다. -Q 옵션은 오프셋을, -p 옵션은 pid를 주면 된다.

 

 

 

7. 네트워크

 

 

python vol.py -f [target] --profile=[OS version] connections

 

 

활성화된 네트워크 연결 상태를 보여준다.

 

이미지가 Windows XP, Windows Server 2003일 때만 사용 가능하다.

 

 

python vol.py -f [target] --profile=[OS version] sockets

 

 

현재 listening 중인 소켓들을 찾아낸다.

 

sockets 역시 connections와 마찬가지로 이미지가 Windows XP, Windows Server 2003일 때만 사용 가능하다.

 

python vol.py -f [target] --profile=[OS version] connscan

 

 

종료된 연결 정보도 추출해낼 수 있지만 오탐일 가능성 또한 존재한다.

 

connscan 역시 connections와 마찬가지로 이미지가 Windows XP, Windows Server 2003일 때만 사용 가능하다.

 

 

 

python vol.py -f [target] --profile=[OS version] sockscan

 

 

이전에 있던 소켓 정보들까지도 추출 가능하다.

 

sockscan 역시 connections와 마찬가지로 이미지가 Windows XP, Windows Server 2003일 때만 사용 가능하다.

 
 
python vol.py -f [target] --profile=[OS version] netscan
 

 

netscan은 Windows Vista, Windows 7, Windows Server 2008에서 네트워크 아티팩트를 얻는데 사용된다.

 

아마 그 이상의 버전도 되겠지? 안 해봐서 모르겠다. 

 

 

 

 

728x90
반응형

'포렌식' 카테고리의 다른 글

Windows Memory Compression  (1) 2022.09.11
Outlook Analysis  (1) 2022.08.12
usb packet analysis  (0) 2022.07.18
Carving Tool - PhotoRec  (0) 2017.11.11
how to install Volatility on windows  (5) 2016.08.30

댓글