본문 바로가기

Security/Forensic

포렌식 메모리 분석(w/Volatility)

주요 명령어

volrip : registry 추출

psscan : 프로세스 정보

<Malware 분석>

malfind

orphanthreads

mutantsacn

ldrmodules

apihook

memdump

procexedump


분석단계

메모리 이미지 확인

vol.py -f <image path> imageinfo


파일 위치, 이미지 형태 지정 

export VOLATILITY_LOCATION=/case/memory.img (동작을 안함.. 이유는 고민중..)

export VOLATILITY_PROFILE=WinXPSP2x86


메모리 추출 (from hiberfil.sys)

vol.py -f /case/hiberfile.sys imagecopy -O hiberfil.raw


프로세스 확인

vol.py pslist -f <image path> --profile=WinXPSP2x86  -p <pid>

=> EPROCESS 링크드리스트에서 정보를 가져옴

=> 가상메모리 offset을 보여줌

=> 특정 pid만 확인 가능

vol.py psscan -f <image path> --profile=WinXPSP2x86 

=> 메모리 영역 전체에서 프로세스 정보를 가져옴(종료된 프로세스 정보도 찾을수 있음)

=> 물리메모리 offset을 보여줌

vol.py pstree -f <image path> --profile=WinXPSP2x86  -v

=> 실행위치 및 실행 파라미터를 확인할 수 있음


프로세스 오브젝트 확인

dlllist : vol.py dlllist -p <pid>

- 각 프로세스의 연관된 dll 목록을 보여줌

- 실행 파라미터도 확인할 수 있음


getsids : vol.py getsids -p <pid>

- 실행 계정 정보를 알수 있음

- 사용자 권한으로 실행된 시스템 서비스 등은 의심 대상


handles :vol.py handles -p <pid> -t <mutant>

- 프로세스에서 사용중인 핸들 정보를 알수 있음 
- -t 옵션으로 핸들 종류를 제한
=> filescan : 파일 전체 검색

=> mutantscan : mutant 전체 검색


svcscan : vol.py svcscan

- 메모리에서 윈도우 서비스 정보를 얻어온다


cmdscan : vol.py cmdscan

- 메모리에서 입력했던 명령어 히스토리를 가져온다


consoles

- console에서 입력한 명령어와 이에대한 출력 확인 (cmd history가 아닌 메모리 분석을 통해 가져옴)


네트워크 분석

connections : vol.py connections

- 현재 연결된 TCP 정보


connscan : vol.py connscan

- 현재 및 과거 연결된 TCP 정보 스캔


sockets : vol.py sockets

- 현재 생성된 socket 정보

sockscan : vol.py sockscan

- 현재 및 과거 생성된 socket 정보 스캔

- 소켓 생성 시간이 유달리 다른 프로세스는 의심!


netscan : vol.py netscan

- 현재 및 과거 연결 TCP 및 소켓 정보 보여줌(Win7 용)


코드 인젝션 분석

malfind :  vol.py malfind --dump-dir=./output/

- 메모리 세션에 주입된 코드 확인

- 덤프도 가능 --dump-dir=


ldrmodules : vol.py ldrmodules -p <pid> -v

- 링크되지 않은 dll 탐지

- InLoadOrderModule, IniInitializationOrderModule, InMemoryOrderModule 세가지 리스트를 조회하여 존재여부를 확인

- 존재 여부가 일치하지 않으며, dll Path가 보여지지 않은 경우 코드 인젝션일 가능성이 높음


루트킷 

psxview : vol.py psxview

- DKOM(Direct Kernel Object Manipulation)을 우회한 히든 프로세스 확인 가능(psscan 이용)

- psscan에는 보이고 pslist에는  안보이는 경우 DKOM 우회로 의심


modules / modscan 

- vol.py modules : 현재 로드된 커널 드라이버를 보여줌

- vol.py modscan : 과거/현재 로드되었던 커널 드라이버를 보여줌

- vol.py devicetree : 로드된 드라이버를 트리형태로 보여줌

- vol.py  moddump -b <base memory> -D <dump dir> : 드라이버 덤프


apihooks

- DLL 후킹 검사

ssdt

- SSDT 후킹 검사

driverirp

- IRP 후킹 검사

idt

- IDT 후킹 검사


'Security > Forensic' 카테고리의 다른 글

안드로이드 이미징  (0) 2016.06.01
log2timeline 사용 예제  (0) 2015.11.19
포렌식 메모리 분석(w/Redline)  (0) 2014.12.15
E01 파일 mount  (0) 2014.12.03