본문 바로가기
Security/Digital Forensic

[Digital Forensic] 메모리 덤프 파일 분석 도구

by 단월໒꒱ 2022. 6. 1.

 메모리 덤프 파일 분석 도구

 

  메모리 포렌식이란, 메모리에 존재하는 휘발성 데이터를 덤프 분석하는 것으로,

  여기서 메모리 덤프는 RAM에 존재하는 모든 데이터를 덤프하여 분석가능한 파일 형태로 변환하는 작업을 의미한다.

 

  메모리 포렌식을 통해 프로세스 정보, 네트워크 연결 정보, 레지스터리 정보, 캐시 정보, 클립보드 정보, 악성코드 파일 정보 등을 얻을 수 있다.

 

 

 

volatility

 

  volatility는 오프소스 기반으로 메모리 분석을 위한 대표적인 프레임 워크 도구이다.

  컴퓨터에서 덤프된 파일을 분석할 수 있으며, 프로세스 정보와 네트워크 정보 등도 확인할 수 있다.

  비슷한 기능을 제공하는 도구로는 구글에서 제작한 ReKall, 멘디언트에서 제작한 readline 등이 있다.

 

 

 

volatility 플러그인

 

  플러그인은 여러 가지가 있는데, 분석 대상에 따라 나눠서 보면 다음과 같다.

 

  1. 운영체제 분석

    imageinfo : 덤프 파일의 이미지 정보 분석
     python vol.py -f [덤프 파일] imageinfo # vol.py : 볼라틸리티 실행 파일

 

  2. 프로세스 분석

    psscan : 실행 중인 프로세스/종료된 프로세스 정보 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 psscan
    psxview : pslist, psscan 등 여러 가지 방법으로 확인한 프로세스 정보 비교
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 psxview
    pstree : 프로세스의 부모/자식관계 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 pstree

 

  3. 네트워크 분석

    connections : 활성화 상태의 네트워크 연결 정보(윈도우 xp/Vista)
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 connections
    connscan : 활성화 상태의 네트워크 연결 정보/ 이미 종료된 네트워크 연결 정보
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 connscan
    netscan : 활성화 상태의 네트워크 연결 정보(윈도우7 이상)
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 netscan

 

  4. DLL, Thread 분석

    dlllist : 특정 프로세스에서 로드 한 DLL의 정보 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 dlllist -p [PID]
    ldrmodules : 은폐된 DLL 정보 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 ldrmodules
dlldump : 특정 프로세스에서 로드 한 DLL 추출(바이너리 형태)
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 dlldump -p [PID] -D ./
    malfind : 사용자 모드 형태로 은폐되어 있거나 인젝션 된 코드 또는 DLL 정보 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 malfind -p [PID]

 

  5. 파일 분석

    filescan : 메모리에 로드 된 파일정보 스캔, 특정 확장자 및 파일 정보 찾기
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 filescan | findstr ".jpg"

  • 윈도우 : filescan | findstr “.jpg” # 메모리에 로드 된 jpg 파일 검색
  • 리눅스 : filescan | grep “.jpg”

    dumpfiles : 메모리에서 검색한 파일 복구
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 dumpfiles -Q [복구 파일의 메모리 주소] -D ./ # -D ./은 현재 디렉토리에 파일을 덤프하겠다는 의미로 덤프관련 플러그인은 필수 옵션이다.

    memdump : 메모리에 존재하는 프로세스 복구
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 memdump -p [PID] -D ./

 

  6. 커맨드 및 인터넷기록 분석

    cmdscan : 명령 프롬프트로 실행된 정보 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 cmdscan

    consoles : 콘솔로 실행된 정보 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 consoles

    iehistory : 인터넷접속 기록 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 iehistory

 

  7. 행위 분석

    userassist : 메모리에 저장된 레지스트리 정보를 바탕으로 실행되었던 응용프로그램에 대한 정보 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 userassist
    mftparser : NTFS 파일시스템에서 파일의 메타데이터를 관리하는 $MFT의 정보를 분석
     python vol.py -f [덤프 파일] --profile=WinXPSP2x86 mftparser >> mft.txt

 

 

  아래 링크를 참고하면 더 많은 정보를 얻을 수 있다.

  https://github.com/volatilityfoundation

 

 

 

volatility 설치

 

  volatility는 파이썬을 기반으로 하기 때문에 파이썬을 설치해줘야 하는데, 2.x 버전만 가능하다고 한다.

  

  설치 파일이 안 받아져서 나중에 다시 시도해보겠다...

 

 

 

readline

 

  readline 모듈은 GUI 기반의 도구로, 시각화 부분에서는 우수하지만 프로세스 덤프의 기능은 없고 메모리 이미지에 대한 시각화만 해준다.

  이 모듈은 직접 사용하거나 대화식 프롬프트에서 파이썬 식별자 완성을 지원하는 rlcompleter 모듈을 통해 사용할 수 있다.

 

 

 

댓글