ssoL2 TISTORY

volatility 메모리 분석 본문

sec/forensic

volatility 메모리 분석

ssoL2 2021. 3. 3. 22:23
메모리 덤프뜨는 방법
  1. FTK imager -> 무료라서 많이 이용됨
  2. Encase

 

FTK에서 [Capture Memory]를 통해서 현재 메모리를 덤프 뜰 수 있음

 

이제 덤프뜬 메모리를 분석해야함 -> Volatility 도구 이용

크게 나눌 수 있음

프로세스, 네트워크, cmd, 웹기록(ie), mft파서, 프로세스 메모리 덤프, 파일 보구, 레지스트리 등

 

 

1. imageinfo
  • 운영체제의 profile을 알아야 플러그인을 통한 메모리 파일을 분석할 수 있음
  • 메모리가 크면 클수록 오래걸림
  • 보통 서버를 용량이 매우 커서 분석하기도 오래걸려서 메모리 덤프를 하지 않음
  • -> 개인 pc라는 가정하에 보통 윈도우 서비스팩 버전이 높은 것을 선택하는 것이 좋다.

* 서비스팩(Service pack) : 소프트웨어 프로그램에 대한 업데이트, 수정 사항, 개선 사항의 모임

./vol.py -f mem imageinfo

 

2. pstree, psscan, pslist
  • pstree : 트리 구조형태로 프로세스를 출력한다.
  • -> 부모 프로세스가 없는 것들을 중점으로 분석하면 악성코드 분석에 도움이 됨
  • psscan : pid와 ppid로 출력되며 은닉된 프로세스까지 출력해주는 기능이 있다.
  • pslist
  • 세 플러그인을 다 사용해서 은닉된 프로세스가 있는지 비교 분석해야함
./vol.py -f mem --profile=profile pstree
./vol.py -f mem --profile=profile psscan
./vol.py -f mem --profile=profile pslist

 

3. netscan
  • 리눅스의 [netstat] 명령어와 일치
  • listen, close 상태도 알 수 있고, 프로세스 정보까지 나오기 때문에 편리하게 분석 가능
./vol.py -f mem --profile=profile netscan

 

4. cmdscan
  • 윈도우 cmd에서 입력한 명령어가 있으면 메모리에 저장되기 때문에 이 내용이 출력됨
./vol.py -f mem --profile=profile cmdscan

 

5. iehistory
  • 해당 메모리에서 웹에 접근했던 기록을 출력한다.
  • 내용이 많이 출력되기 때문에 txt로 리다이렉션 저장하는 것이 좋다.
./vol.py -f mem --profile=profile iehistory >> ie.txt

 

6. mftparser
  • MFT는 윈도우의 파일에 대한 metadata를 저장하고 있다.
  • 따라서 침해사고가 일어나면 mftparser로 분석하는 것이 좋다.
  • 이 또한 내용이 많이 출력되므로 txt 리다이렉션한다.
./vol.py -f mem --profile=profile mftparser >> mft.txt

 

7. memdump
  • 프로세스에 대한 메모리 덤프
  • [-p] 옵션으로 해당 pid를 가진 프로세스를, [-D] 옵션으로 ./ 현재 폴더에 저장한다
  • dmp 파일이 생성되면 메모리 파일이므로 텍스트를 추출해야한다.
  • -> strings.exe 도구를 이용해서 txt를 추출한다.
./vol.py -f mem --profile=profile memdump -p pid -D ./
strings.exe dmp >> txt

 

8. filescan
  • 파일 검색
  • 파일 스캔 플러그인으로 복호화할 파일을 찾을 수 있다.
  • 복호화할 파일의 Offset 주소를 기억해놔야 한다 ****
  • 모든 메모리 파일을 출력하는데 너무 많아 보기 힘드니까 [ | findstr "~"] 파이프와 findstr 조합으로 필터링한다.
./vol.py -f mem --profile=profile filescan | findstr "exe"

 

9. dumpfiles
  • 파일 복구 덤프
  • filescan으로 덤프 뜰 Offset 주소를 [-Q] 옵션으로 주고, [-D] 옵션으로 ./ 현재주소에 덤프뜬다.
  • 보통 파일이 복구되면 dat 확장자인데 맞는 확장자로 고치면 잘 보인다.
./vol.py -f mem --profile=profile dumpfiles -Q offset -D ./

 

이외에도

 

레지스트리 하이브 관련 플러그인 (hivelist, hivedump, hibinfo 등)

윈도우 크랙 플러그인

유저 info 플러그인

서비스 info 플러그인

malfind 악성코드 분석 플러그인

사용자 id getsids, dlldump, consoles, clipboard 등 상당히 많다 거의 50이상

 

 

참고로 cmd 기반 말고도 gui도 존재한다.

 


계속적으로 사용해봤던 플러그인을 위와 같이 정리할 예정이다. 앞으로 추가 업데이트는 계속 된다..

 

10. printkey
  • 지정된 레지스트리 키에 포함된 서브키, 값, 데이터 및 데이터 형식을 출력한다.
  • 기본적으로 모든 hive를 검색하고 요청한 키에 대한 키 정보를 출력한다.
./vol.py -f mem --profile=profile printkey -K "registryKey"

 

'sec > forensic' 카테고리의 다른 글

컴퓨터 구조와 디지털 저장매체  (0) 2021.03.07
내가 찾은 악성코드  (0) 2021.03.07
리눅스 로그 분석  (0) 2021.02.27
jpg 파일 구조 속 썸네일  (0) 2021.02.21
웨이브(.wav) 파일 분석  (0) 2021.02.16
Comments