[Tool] Volatility

 

볼라틸리티


(1) Volatility란?

  • 메모리 포렌식에서 메모리 덤프 파일을 분석할 때, 가장 많이 사용되고 있는 도구

  • 오픈 소스 기반으로 CLI 인터페이스를 제공하는 메모리 분석 도구

  • 컴퓨터(노트북)에서 덤프 된 파일을 분석 가능하며, 프로세스 정보와 네트워크 정보 등을 확인할 수 있음

  • 유용 정보들이 자세하게 나오기 때문에 많이 사용

  • 프로세스 덤프 기능을 제공하여 기존 컴퓨터나 노트북에서 실행되고 있던 프로세스 내용 확인 가능

볼라틸리티 도구는 현재 3 베타 버전까지 출시 되었지만, 필자는 2.6 버전대를 많이 사용하였으므로, 2.6 버전 소개 기준이다.

 

그리고 운영체제는 Windows 환경 기준이다.

 

설치 / 참조 사이트 : https://www.volatilityfoundation.org/

 

The Volatility Foundation - Open Source Memory Forensics

The Volatility Foundation is an independent 501(c) (3) non-profit organization that maintains and promotes The Volatility memory forensics framework.

www.volatilityfoundation.org


(2) 메모리 덤프

2-1. 물리 메모리 덤프

  • 하드웨어를 이용한 덤프 : FireWire(IEEE 1394)를 이용한 메모리 덤프

  • 장점 : 악성 프로그램에 영향을 받지 않으며, 빠른 메모리 덤프와 무결성 최소화

  • 단점 : 안전성에 대한 검증이 필요하며, 간혹 시스템 크래시 발생

2-2. 소프트웨어 메모리 덤프

  • DD, MDD, Winen, WIN32(64)DD & DumpIt, Memorize ProDiscovery, HBGary, FastDumpPro etc...

  • 장점 : 추가 장치 불필요, 오픈 소스 및 프리웨어, 사용 제품의 경우 원격 덤프 가능

  • 단점 : 커널 루트킷에 취약, OS 제약, 수집 시 메모리에 흔적 남음

2-3. 크래시 덤프

  • 시스템 유지에 치명적인 영향을 주는 문제가 발생하였을 때, 문제의 원인을 찾기 위해 윈도우가 자동 생성하는 메모리 덤프

  • Blue Screen of Death


(3) 설치 & 사용법

3-1. https://www.volatilityfoundation.org/ 접속

  • Releases > 2.6 선택

  • Volatility 2.6 Windows Standalone Executable (x64) 선택

[그림 1] 볼라틸리티 설치 및 사용 (1)

 

3-2. 파일 압축 풀기

  • 저장 경로 선택

  • zip 파일 압축 풀기

[그림 2] 볼라틸리티 설치 및 사용 (2)

 

3-3. 덤프 파일 폴더 안에 넣기

  • 내가 분석할 덤프 파일(dmp, vmss, vmem 등)을 압축 풀어준 폴더 안에 넣기

[그림 3] 볼라틸리티 설치 및 사용 (3)

 

3-4. cmd 창(명령 프롬프트)  켜기

  • 검색 기능을 이용하여 cmd(명령 프롬프트) 창 켜기

  • 내가 저장한 경로로 이동 (cd 명령어)

[그림 4] 볼라틸리티 설치 및 사용 (4)

 

3-5. 덤프 파일 시스템 정보 확인

  • 사용 방법 1 : volatility_2.6_win64_standalone.exe -f [덤프 파일명] imageinfo 명령어 입력

  • 덤프 파일의 시스템 및 프로파일 정보 확인

[그림 5] 볼라틸리티 설치 및 사용 (5) 

 

추가 내용 설명

  • KDBG : Debugger data block의 Header에 포함된 Signature

  • KPCR : 사용하고 있는 CPU의 정보를 담고 있는 구조체 

 

3-5-1. Image 정보 확인

  • kdbgscan : KDBG 구조체 확인

  • volatility_2.6_win64_standalone.exe --profile=[프로파일명] -f [덤프 파일 경로] kdbgscan > [저장 할 텍스트 파일 이름]

[그림 6] kdbgscan 사용 방법

필자는 이미 덤프 파일이 해당 폴더에 있고, 해당 폴더에 저장할 것이기 때문에 따로 경로를 지정해주지 않았지만, 필요하면 덤프 파일 경로와 저장 할 텍스트 파일 경로를 지정해주어야 한다.

 

 

3-5-2. Image 정보 확인

  • kpcrscan : 사용하고 있는 CPU의 정보를 담고 있는 구조체 

  • volatility_2.6_win64_standalone.exe --profile=[프로파일명] -f [덤프 파일 경로] kpcrscan > [저장 할 텍스트 파일 이름]

[그림 7] kpcrscan 사용 방법

 

덤프 파일 경로와 저장 할 텍스트 파일 경로에 대한 내용은 위 내용인 kdbgscan과 동일하다.


(4) 플러그인

 

이제 본격적으로 볼라틸리티 플러그인을 사용해보고, 내용을 확인해보자.

 

 

4-1. pslist

  • 시스템에서 사용하고 있는 프로세스 리스트 (가상 주소)

  • -P 옵션은 물리적 주소를 확인할 때 사용

  • Offset(V) : 가상 주소

  • Start : Process 시작 시간

  • Exit : Process 종료 시간

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] pslist

 

[그림 8] pslist 사용 방법

 

[그림 9] pslist 정보 확인

 

 

4-2. psscan

  • 이미 종료된(Interactive) 프로세스와 루트킷에 의한 hidden / unlinked 프로세스 확인 가능

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] psscan 

 

[그림 10] psscan 사용 방법

 

[그림 11] psscan 정보 확인

 

 

4-3. pstree

  • hidden / unlinked 프로세스까지 확인 가능

  • 자식 프로세스는 . 을 통해 트리 형태로 보여줌

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] pstree

 

[그림 12] pstree 사용 방법

 

[그림 13] pstree 정보 확인

 

 

4-4. psxview

  • psscan과 pslist 등에서 True나 False로 보여줌

  • 수상한 프로세스를 찾을 때 유용한 플러그인

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] psxview 

 

[그림 14] psxview 사용 방법

 

[그림 15] psxview 정보 확인

 

 

4-5. dlllist

  • Image에서 DLL 리스트를 보여줌

  • -p 옵션을 통해 pid를 넣어주면, 그에 해당하는 dll 리스트 보기도 가능

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] dlllist

 

[그림 16] dlllist 사용 방법

 

[그림 17] dlllist 정보 확인

 

 

4-6. ldrmodules

  • PEB 안의 linkedl list에서 link를 끊는 것을 통해 DLL을 숨기는 DKOM 기법의 경우, VAD(Virtual address Descriptor)에 정보가 남아 있기 때문에 이를 탐지 가능

  • 이 명령어는 unlinked 된 명령어를 출력

  • 해당 명령어 결과에서 Memory Mapping 된 PE 파일이 PEB List에 존재하면 True, 존재하지 않으면 False을 출력

  • -v 또는 -verbose option을 사용하여 모든 Entry의 Full Path를 확인 가능

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] ldrmodules 

 

[그림 18] ldrmodules 사용 방법

 

[그림 19] ldrmodules 정보 확인

 

 

4-7. handles

  • 프로세스에 의해 열린 핸들의 목록을 나타냄

  • 프로세스는 CreateFile 같은 함수를 사용하여 핸들을 획득

  • 그러한 핸들은 CloseHandle 함수가 호출되기 전까지 유효하게 사용

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] handles 

 

[그림 20] handles 사용 방법

 

[그림 21] handles 정보 확인

 

 

4-8. memdump

  • 해당 명령어를 사용해서 프로세스의 다양한 Memory Segment에서 모든 데이터를 추출하여 덤프 파일로 생성

  • 명령어에서 사용하는 ./는 해당 경로에 덤프 파일을 저장한다는 뜻

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] -p [PID] memdump -D ./ 

 

[그림 22] memdump 사용 방법

 

[그림 23] memdump 생성 파일

 

 

4-9. vadwalk

  • VAD tree(Virtual Address Descriptor tree)란 자체 밸런싱 바이너리 트리를 뜻함

  • 이는 특정 노드의 왼쪽은 특정 노드보다 낮은 값의 노드, 오른쪽은 특정 노드보다 높은 값의 노드로 이루어져 있는 트리를 뜻함

  • Windows memory manager에서 프로세스가 할당 받은 메모리를 표현하기 위해 사용

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] -p [PID] vadwalk 

 

[그림 24] vadwalk 사용 방법

 

[그림 25] vadwalk 정보 확인 

 

 

4-10. vadtree

  • vad 노드들을 트리 형태로 보여주는 명령어

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] -p [PID] vadtree

 

[그림 26] vadtree 사용 방법

 

[그림 27] vadtree 정보 확인

 

 

4-11. vadinfo

  • Virtual address의 시작/끝, Tag, Flag, Kernel Memory의 MMVAD 구조체 주소, Memory Protection 등을 보여주는 명령어

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] -p [PID] vadinfo

 

[그림 28] vadinfo 사용 방법

 

[그림 29] vadinfo 정보 확인

 

 

4-12. vaddump

  • 각각의 VAD Segment에 포함된 Data를 dump하는 명령어

  • memdump와는 달리 두 도구에서 dump되는 dmp 파일의 이름이 Memory 주소 영역으로 되어 있음

  • PhysicalOffset이 파일명에 들어가는 이유는 같은 이름을 가진 2개 이상의 프로세스들을 구분하기 위함

  • 명령어에서 사용하는 ./는 해당 디렉토리에 저장한다는 의미

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] -p [PID] vaddump -D ./ 

 

[그림 30] vaddump 사용 방법

 

[그림 31] vaddump 정보 확인

 

 

4-13. modules

  • 시스템에 로드된 커널 드라이버들을 보여주는 명령어

  • 이 명령어는 PsLoadedModuleList가 가리키는 _LDR_DATA_TABLE_ENTRY 구조의 이중 연결 목록을 살펴봄

  • hidden/unliked kernel driver는 출력하지 않음

  • 기본적으로 Virtual Address로 출력하며, Physical Address를 확인하려면 -P 옵션을 추가

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] modules 

 

[그림 32] modules 사용 방법

 

[그림 33] modules 정보 확인

 

 

4-14. modscan

  • 해당 명령어는 실제 메모리에서 풀 태그를 검색하여 LDR_DATA_TABLE_ENTRY 구조를 찾음

  • 이전에 로드 되었던 드라이버, 루트킷에 의해 hidden/unlinked 된 드라이버도 출력

  • Volatility에서는 Physical Address로 출력

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] modscan 

 

[그림 34] modscan 사용 방법

 

[그림 35] modscan 정보 확인

 

 

4-15. moddump

  • 해당 명령어는 커널 드라이버를 파일로 덤프해주는 명령어

  • 이 명령어는 정규 표현식과 Physical Offset을 이용한 필터를 지원

  • 모든 드라이버들을 덤프하고 싶으면 아무런 필터를 적용하지 않으면 됨

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] moddump 

 

[그림 36] moddump 사용 방법

 

[그림 37] moddump 정보 확인

 

 

4-16. ssdt

  • SSDT(System Service Descriptor Table)는 유저 영역과 커널 영역 사이의 주된 인터페이스

  • 과거에는 악성코드가 SSDT 후킹을 시도하곤 했지만, MS사에서 PatchGuard를 발표하면서 지금은 거의 사라진 후킹 방법

  • 해당 명령어는 Native/GUI SSDT의 함수들을 list 시켜주는 명령어

  • ETHREAD 객체를 스캔한 후, 모든 유일한 ETHREAD.Tcb.ServiceTable Pointer들을 모아서 확인하기 때문에 루트킷에 의해 덮어 쓰거나 복사된 SSDT 미탐을 탐지 가능  

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] ssdt

 

[그림 38] ssdt 사용 방법

 

[그림 39] ssdt 정보 확인

 

 

4-17. driverscan

  • 해당 명령어는 메모리의 DRIVER_OBJECT를 스캔하는 명령어

  • 이는 커널 모듈을 찾을 수 있는 또 다른 방법이며, 모든 커널 모듈이 DRIVER_OBJECT와 관련된 것은 아님 

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] driverscan 

 

[그림 40] driverscan 사용 방법

 

[그림 41] driverscan 정보 확인

 

 

4-18. filescan

  • 해당 명령어는 메모리의 FILE_OBJECT를 스캔하는 명령어

  • 이는 루트킷이 디스크 파일을 숨기고, 루트킷이 실제 시스템의 open handle을 숨기는 기능을 하는 API 함수들을 후킹하더라도 open File을 찾을 수 있음

  • FILE_OBJECT와 offset, file name, number of pointers to the object 등을 결과로 출력

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] filescan 

 

[그림 42] filescan 사용 방법

 

[그림 43] filescan 정보 확인

 

 

4-19. mutantscan

  • 해당 명령어는 메모리에서 KMUTANT 객체를 스캔하는 명령어

  • mutant는 윈도우에서 named semaphore를 구현한 것

  • 이것은 악성코드의 단일 복사본이 동시에 실행되도록 하기 위해 악성코드가 사용

  • CID 컬럼은 Process ID가 Thread ID를 보여줌

  • 특정 악성코드 가닥이 사용하는 mutant의 이름을 분석하면, 악성코드가 시스템에서 실행 중인지 즉시 알 수 있음

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] mutantscan

 

[그림 44] mutantscan 사용 방법

 

[그림 45] mutantscan 정보 확인

 

 

4-20. thrdscan

  • 해당 명령어는 메모리의 ETHREAD 객체를 스캔하여 보여주는 명령어

  • ETHREAD는 부모 프로세스를 식별할 수 있는 정보를 가지고 있기 때문에 이는 hidden Process를 찾는데 도움을 줌

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] thrdscan 

 

[그림 46] thrdscan 사용 방법

 

[그림 47] thrdscan 정보 확인

 

 

4-21. threads

  • 해당 명령어는 모든 프로세스를 반복하고, 모든 프로세스의 모든 스레드를 나열하는 명령어

  • 각 쓰레드에 속한 레지스터 정보, 쓰레드 시작 주소와 디스어셈블 코드 등 조사에 관련된 다양한 정보를 제공해주는 명령어

  • ETHREAD 객체 가상 주소, PID, TID, Thread와 관련된 모든 tag(SystemThread, AttachedProcess, HookedSSDT), 생성/종료 시간, 상태, 순서, 시작 주소 등을 확인 가능

  • SSDT base 주소와 각 Service Table, Hook 된 함수도 출력해 줌

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] threads

 

[그림 48] threads 사용 방법 

 

[그림 49] thread 정보 확인

 

 

4-22. netscan

  • 해당 명령어는 Vista, 2008, Windows 7 이미지에서 connections와 socket을 확인할 수 있는 명령어

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] netscan 

 

[그림 50] netscan 사용 방법

 

[그림 51] netscan 정보 확인

 

 

4-23. hivescan

  • 해당 명령어는 메모리 덤프로부터 CMHIVEs(Registry hives)의 Physical Address를 찾아주는 명령어

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] hivescan

 

[그림 52] hivescan 사용 방법

 

[그림 53] hivescan 정보 확인

 

 

4-24. hivelist

  • 해당 명령어는 메모리 덤프로부터 Registry hives의 Virtual Address와 Disk상의 절대 경로를 출력해주는 명령어

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] hivelist 

 

[그림 54] hivelist 사용 방법

 

[그림 55] hivelist 정보 확인

 

 

4-25. userassist

  • 해당 명령어는 시스템에서 실행되었던 프로그램의 목록과 실행 횟수, 그리고 마지막 실행 시간 등의 정보를 출력해주는 명령어

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] userassist

 

[그림 56] userassist 사용 방법

 

[그림 57] userassist 정보 확인

 

 

4-26. malfind

  • 해당 명령어는 일반적인 방법이나 툴로 찾아내지 못하는 Code/DLLs를 VAD tag나 Page Permission과 같은 특성에 기반하여 확인 가능

  • malfind의 목적은 일반적인 Method/Tool로는 확인할 수 없는 DLL들을 찾는 것

  • CreateRemoteThread > LoadLibrary를 이용하여 삽입된 DLL은 hidden 상태가 아니므로 dlllist 명령어를 사용해서 확인 필요

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] -p [PID] malfind 

 

[그림 58] malfind 사용 방법

 

[그림 59] malfind 정보 확인

 

 

4-27. svcscan

  • 해당 명령어는 메모리에 어떤 서비스가 등록되었는지 확인하는 명령어

  • 각 윈도우 서비스에 대한 프로세스 ID와 서비스 이름, 서비스 타임, 서비스의 현재 상태 등을 확인 가능

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] svcscan

 

[그림 60] svcscan 사용 방법

 

[그림 61] svcscan 정보 확인

 

 

4-28. callbacks

  • 해당 명령어는 다양한 소스들로부터 설치된 콜백 루틴들을 단순히 열거하는 명령어

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] callbacks

 

[그림 62] callbacks 사용 방법

 

[그림 63] callbacks 정보 확인

 

 

4-29. driverirp

  • IRP Major Function Table을 보기 위해서 사용하는 명령어

  • 해당 명령어는 드라이버의 IRP Inline Hooking을 감지하기 위한 명령어

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] driverirp

 

[그림 64] driverirp 사용 방법

 

[그림 65] driverirp 정보 확인

 

 

4-30. devicetree

  • _DRIVER_OBJECT.DeviceObject.NextDevice를 통해 드라이버 객체와 장치의 관계를 보여줌

  • _DRIVER_OBJECT.DeviceObject.AttachedDevice를 통해 연결된 장치 관계를 보여줌

  • Windows는 계층화된 Driver Architecture 또는 Driver chain을 사용하므로, 여러 개의 Driver를 검사 또는 IRP에 응답 가능

  • RootKit은 Driver나 Device를 이러한 Chain에 검사 우회의 목적으로 삽입

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] devicetree 

 

[그림 66] devicetree 사용 방법

 

[그림 67] devicetree 정보 확인

 

 

4-31. timers

  • 해당 명령어는 Kernel times(KTIMER)와 관련된 DPC(Deferred Procedure Calls)를 출력해주는 명령어

  • DPC 주소와 KTIMES를 통해 악성코드가 다양한 방법으로 커널 공간에 숨어 있는 것을 빠르게 찾을 수 있음

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] timers

 

[그림 68] timers 사용 방법

 

[그림 69] timers 정보 확인

 

 

4-32. memmap

  • 해당 image에서 할당 된 Memory 주소 Map을 보여줌

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] -p [PID] memmap 

 

[그림 70] memmap 사용 방법

 

[그림 71] memmap 정보 확인

 

 

4-33. getsids

  • Process와 관련된 Security ID를 보여주며, 권한 상승과 같은 의심 부분을 확인 가능

  • 보안 식별자는 [그림 72]와 같음

[그림 72] 보안 식별자

 

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] getsids 

 

[그림 73] getsids 사용 방법

 

[그림 74] getsids 정보 확인

 

 

4-34. verinfo

  • PE 파일에 저장된 정보를 보여주며, 모든 PE 파일들이 버전 정보를 가지고 있지는 않음

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] verinfo 

 

[그림 75] verinfo 사용 방법

 

[그림 76] verinfo 정보 확인

 

 

4-35. procdump

  • 실행 가능한 Process를 덤프

  • 악성코드가 의도적으로 PE Header의 size 필드를 위조 시에도 확인 가능

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] -p [PID] procdump 

 

[그림 77] procdump 사용 방법

 

[그림 78] procdump 정보 확인

 

 

4-36. symlinkscan

  • Symbolic Link 객체 Scan

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] symlinkscan 

 

[그림 79] symlinkscan 사용 방법

 

[그림 80] symlinkscan 정보 확인

 

 

4-37. connscan

  • Pool tag scanning을 통하여 connection 구조체를 찾아 줌

  • 이미 종료된 연결 정보도 찾을 수 있는 장점이 있음

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] connscan 

 

[그림 81] connscan 사용 방법

 

[그림 82] connscan 정보 확인

 

 

4-38. printkey

  • 특정 레지스트리 키의 서브키, 값, 데이터, 데이터 타입 등을 보여줌

  • 레지스트리 하이브의 가상 주소와 디스크 상의 절대 경로 확인 가능

  • 해당 키를 출력하려면 -o [주소값] 옵션을 활용하면 됨

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] printkey

 

[그림 83] printkey 사용 방법

 

[그림 84] printkey 정보 확인

 

 

4-39. consoles

  • 마지막으로 사용한 콘솔 창의 명령어 확인

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] consoles 

 

[그림 85] consoles 사용 방법

 

[그림 86] consoles 정보 확인


(5) 추가 플러그인

 

  • 해당 플러그인들은 실습 덤프 파일로 분석한 결과, 제대로 된 결과가 나오지 않아 참고하기 위한 플러그인

 

5-1. crashinfo

  • 해당 명령어는 Crash dump header 정보를 출력해주는 명령어 

  • Crash dump는 프로그램이 죽었을 때의 메모리 내용이 파일로 남기는 것을 뜻함

  • 이 파일을 분석하면 어떤 프로그램의 오류 때문에 죽었는지 분석 가능

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] crashinfo 

 

[그림 87] crashinfo 사용 방법

 

[그림 88] crashinfo 정보 예시

 

 

5-2. apihooks

  • User-mode 또는 Kernel-mode에서의 API Hooking을 탐지하기 위해서 사용하는 명령어

  • IAT, EAT, Hooking을 찾아낼 수 있음

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] apihooks 

 

[그림 89] apihooks 사용 방법

 

 

5-3. impscan

  • import 된 function에 대한 call을 검색하는 명령어

  • Base address를 지정해주지 않으면 프로세스의 main module 끝까지 검색

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] impscan 

 

[그림 90] impscan 사용 방법

 

[그림 91] impscan 정보 예시

 

 

5-4. volshell

  • WinDBG와 비슷한 인터페이스 제공

  • Memory Image를 대화 형식으로 조사 가능

사용법은 다음과 같다.

 

volatility_2.6_win64_standalone.exe --profile=[프로 파일명] -f [덤프 파일명] volshell 

 

[그림 92] volshell 사용 방법

 

[그림 93] volshell 정보 예시


(6) DKOM을 이용한 프로세스 은닉 기법

  • 커널 오브젝트란 커널에서 관리하는 정보를 담은 데이터 블록

  • 윈도우는 실행 중인 프로세스를 EPROCESS 구조체로 관리하며, 이는 연결 리스트로 이어져 있음

  • EPROCESS 구조체 안에 LIST_ENTRY의 구조체 멤버에서 FLINK와 BLINK를 수정하여 프로세스를 은닉 시킴

[그림 94] DKOM으로 은닉한 프로세스 도식화


(7) Volatility를 사용해 메모리를 분석할 때, 효율적인 분석을 위한 절차

 

[그림 95] Volatility 메모리 분석 절차

 

  • 침해 사고가 발생해 악성코드 감염이 의심되는 시스템에서 생성한 메모리 덤프 파일을 분석하기 위해서는 위와 같은 6단계의 절차를 이용하여 메모리 분석을 진행


# Reference

 

https://www.volatilityfoundation.org/

 

MEMORY ANALYSIS TOOLS BY C-Lab

'Tool' 카테고리의 다른 글

[Tool] 디지털 포렌식 유용 도구 소개 (Digital Forensics Tool)  (0) 2020.05.11
[Tool] FTK Imager  (0) 2020.03.01
[Tool] HxD Editor  (0) 2020.03.01

[Tool] 디지털 포렌식 유용 도구 소개 (Digital Forensics Tool)

 

Digital Forensic Tools


디지털 포렌식 업무를 수행하는데 도구는 필수적인 요소 중 하나이다.

 

디지털 포렌식만을 위한 전문적인 포렌식 도구가 있는 반면 포렌식을 위해 개발되지는 않았지만 포렌식 업무에 사용되는 도구가 있다.

 

또 여러 기능을 종합해 놓은 종합 도구도 존재한다.

 

하지만 디지털 포렌식 도구는 대부분 상용 소프트웨어이기 때문에 개인적으로 사용할만한 도구는 많지 않다.

 

 

본 글은 사용자가 아무런 제약 없이 사용할 수 있는 무료 디지털 포렌식 도구나 디지털 포렌식이 목적은 아니지만 포렌식 업무에 적용할 수 있는 도구, 세계적으로 검증된 도구 등을 위주로 소개한다.


(1) Live CD

  • 도구가 실행되는 환경에 구애 받지 않고 이동 장치 단에서 실행되는 도구

  • 대부분 여러 가지 도구가 설치되어 있는 OS로 배포

  • Live CD에서 생성한 파일 또한 Live CD가 실행되고 있는 장치에 저장되므로 설치할 때에는 데이터 용량이 충분한 이동 장치 준비 필요

 

 

1-1) Kali 

 

Our Most Advanced Penetration Testing Distribution, Ever.

For years now, Kali has inherited the default root user policy from BackTrack. As part of our evaluation of Kali tools and policies we have decided to change this and move Kali to a “traditional default non-root user” model. This change will be part of

www.kali.org

[그림 1] Kali Linux

 

  • 포렌식 보다 모의해킹에 특화된 Live CD이긴 하지만 포렌식을 수행하기에 있어 필요한 대부분의 도구들은 갖춰짐

  • 지속적으로 디지털 포렌식 분야의 도구들이 추가되고 있음

  • 2013년까지는 BackTrack이었으며, 이후 Kali라는 이름으로 바뀜

  • 처음 Live CD로 만들어 사용할 때에는 설정이 정상적으로 되어 있지 않아 작동되지 않는 도구들도 있음

  • 디지털 포렌식 업무 수행 전에 간단히 도구들을 모두 테스트해 보는 것이 좋음

 

 

1-2) SIFT

 

SIFT Workstation Download

Community: Downloads Community:

digital-forensics.sans.org

[그림 2] SIFT

 

  • 세계적인 정보보호 교육 기관인 SANS에서 개발한 포렌식 도구이며, 무료로 제공되는 도구 중 하나

  • 해당 도구는 다른 Live CD 도구들에 비해 설치된 도구가 적음

  • 해당 도구를 사용할 때에는 어떠한 도구가 설치되어 있는지 확인하고 자신이 필요한 도구를 더 설치해 사용하는 것이 좋음

 

 

1-3) DEFT

 

DEFT Linux A Linux Distribution For Computer Forensics - LinuxAndUbuntu

​DEFT is a household name when it comes to digital forensics and intelligence activities since its first release way back in 2005. The Linux distribution DEFT is made up of a GNU/Linux and DART(Digital Advanced Response Toolkit), a suite dedicated to digit

www.linuxandubuntu.com

[그림 3] DEFT

 

  • 해당 도구는 Windows를 대상으로 한 Live CD 도구로 SIFT와 동일한 포렌식만을 위한 Live CD 도구

  • SIFT와 비교 했을 때 DEFT의 도구 개수가 2배 넘게 많은 편

  • 하지만 도구가 많다고 좋은 것은 아님

  • 얼마나 도구가 문제 없이 실행되는지가 문제

  • 그리고 네트워크 카테고리 부분의 툴이 조금은 부족한 것이 특징

 

 

1-4) Santoku

 

Welcome · Santoku Linux

Linux, tools, action Pre-installed platform SDKs, drivers, and utilities, plus helpful tools for easy deployment and control of mobile apps. Auto Detection and setup of new connected mobile devices. World peace. Download  Santoku is free and Open Source.

santoku-linux.com

[그림 4] SANTOKU

 

  • ViaForensics에서 만든 우분투 기반의 악성코드 분석 전용 Live CD 포렌식 도구

  • 특히 모바일 앱이 주 목적이며, 부수적으로 일반 악성코드 분석도 가능

  • 설치되어 있는 도구들은 악성 앱 분석에 주로 사용되는 것들

  • 일반적인 메모리 분석, 파일 시스템 분석에는 적합하지 않은 도구


(2) Disk Imaging

  • 디스크 이미징 도구는 필수적인 도구 중 하나이며, 제일 디지털 흔적을 많이 발견할 수 있는 부분이 하드 디스크와 파일 시스템

  • 그렇기 때문에 현재까지도 가장 많이 분석을 시도하는 부분이며, 향후에도 계속 그러할 것

  • 하드 디스크 전체를 복사하거나 덤프할 때는 숨김 영역을 고려해야 하는데 하드 디스크 복제나 복사는 대부분 하드웨어 이미징 도구로 이루어짐

  • 도구 선택 시 숨김 영역까지 복제 및 덤프를 시도하는지 알아보고 선택해야 함

 

 

2-1) FTK Imager

 

Product Downloads

AccessData provides digital forensics software solutions for law enforcement and government agencies, including the Forensic Toolkit (FTK) Product.

accessdata.com

[그림 5] FTK Imager

 

  • AccessData사에서 개발한 도구로 무료로 제공되고 있음

  • 디스크 이미징 기능뿐만 아닌 메모리 캡처, 디스크 이미지 분석 기능까지 제공

  • 개인적으로 사용할 때에는 해당 도구를 사용해도 무리없이 분석 가능

  • Lite 버전도 함께 무료로 제공되어 포터블 파일로 분석 가능

 

 

2-2) dd

 

http://gmgsystemsinc.com/fau/

Error. Page cannot be displayed. Please contact your service provider for more details. (26)

gmgsystemsinc.com

[그림 6] dd

 

  • George M. 와 Garner Jr.가 개발한 도구로 무료로 제공되며 이미징 기능 또한 강력함

  • 해당 도구와 nc 등을 같이 사용하면 원격에서 디스크 이미징을 수행 가능

  • 가장 좋은 것은 모든 OS 플랫폼에서 실행 가능하다는 것


(3) Memory

  • 메모리 분석 도구는 계속해서 급격히 많은 발전과 수요가 증가

  • 악성코드의 언패킹이 날로 어려워져 메모리를 덤프하여 덤프 파일로 악성코드를 분석하는 경우가 많음

  • 이러한 이유 때문에, 메모리 분석 도구가 많이 사용됨

 

 

3-1) Volatility

 

The Volatility Foundation - Open Source Memory Forensics

The Volatility Foundation is an independent 501(c) (3) non-profit organization that maintains and promotes The Volatility memory forensics framework.

www.volatilityfoundation.org

[그림 7] volatility

 

  • 현재 나온 메모리 분석 도구 중 단연 으뜸인 도구로 Volatile system 사에서 개발한 도구

  • 메모리 이미지를 통한 프로세스 덤프, 프로세스 메모리 덤프, 레지스트리 분석 기능 등 많은 기능 지원

  • 현재 버전은 베타 버전인 3 버전까지 나온 상태

  • 해당 도구는 Python으로 제작되어 대부분의 OS 플랫폼에서 동작이 가능

  • Windows, Mac OS X, Linux 메모리 분석을 지원

 

 

3-2) RedLine

 

Redline | 무료 보안 소프트웨어 | FireEye

Redline은 심층 라이브 메모리 분석을 지원하는 동시에 침해 또는 감염된 것으로 의심되는 호스트 선별 프로세스를 가속화하는 무료 유틸리티입니다.

www.fireeye.kr

[그림 8] Redline

 

  • 해당 도구는 Memoryze 도구를 기초로 GUI 기반의 메모리 분석 도구

  • 메모리 분석 속도를 위해 메모리 분석 모드가 3가지로 나뉨

  • Mandiant 사에서 개발, 배포

  • 메모리 분석에 대한 갖가지 레포트 기능도 있어 시각화에서는 volatility보다 우수

  • 하지만 volatility보다 많은 기능을 지원하지는 않고 메모리 이미지에 대한 내용만 시각화해 주므로 프로세스 덤프 등의 기능은 존재하지 않음

 

 

3-3) Volafox

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com

[그림 9] Volafox

 

  • 포렌식 연구를 하시는 n0fate라는 닉네임을 사용하시는 우리나라 사람이 만든 메모리 분석 도구

  • Volatility와 마찬가지로 Python 기반의 메모리 분석 도구

  • 하지만 Volatility처럼 모든 OS를 지원하는 것이 아닌 Mac OS X 메모리 분석에 특화되어 있는 도구

  • 또 다른 도구로 Volafunx가 있으며, 이것은 FreeBSD 메모리 분석에 특화된 도구


(4) Network

  • 인터넷은 사람들의 일상 생활과 아주 밀접한 관계에 있어 포렌식 업무 수행에 있어 분석 대상 시스템에 인터넷 활동을 빼놓으면 안 됨

  • 분석 대상 시스템에서 어떠한 인터넷 활동을 했는지 파악할 수 있는 부분은 인터넷 브라우저를 분석하는 경우도 있지만 네트워크 패킷 분석을 수행하는 경우도 적지 않음

  • 예를 들어, 파일을 전송했을 때 인터넷 브라우저에서는 그 흔적을 찾기 힘들고, 이유는 인터넷 브라우저에는 대부분 다운로드 흔적만 남기 때문

  • 하지만 네트워크 패킷을 분석해보면 파일의 전송 흔적을 쉽게 찾을 수 있음

  • 이렇듯 상황에 따라 분석 방향을 잘 잡아야 효율적인 포렌식 업무 수행이 됨

 

 

4-1) Wireshark

 

Wireshark · Download

Riverbed is Wireshark's primary sponsor and provides our funding. They also make great products that fully integrate with Wireshark. I have a lot of traffic... ANSWER: SteelCentral™ AppResponse 11 • Full stack analysis – from packets to pages • Ric

www.wireshark.org

[그림 10] Wireshark

 

  • 패킷 캡처와 분석에 있어서 유명한 도구 중 하나

  • 특히 프리웨어이고 지원하는 기능이 다양하여 더 많은 관심을 받는 도구

  • 패킷의 다양한 프로토콜들을 지원하며 몇몇 암호화 프로토콜의 복호화 기능을 지원

  • 사용자 편의를 위해 Visualization 기능을 지원

  • 대부분 OS 플랫폼에서 동작이 가능하다는 점도 관심 받는 이유 중 하나

  • 해당 도구는 기본적으로 GUI를 제공하고, Tshark라는 도구는 CLI도 지원

 

 

4-2) Tcpdump

 

TCPDUMP/LIBPCAP public repository

This is the official web site of tcpdump, a powerful command-line packet analyzer; and libpcap, a portable C/C++ library for network traffic capture. In this page, you'll find the latest stable version of tcpdump and libpcap, as well as current development

www.tcpdump.org

[그림 11] Tcpdump

 

  • 리눅스에서 가장 많이 사용하는 패킷 캡처 도구

  • CLI 기반으로 여러 가지 옵션과 조건을 설정해 자신이 보고 싶은 패킷만 필터해서 볼 수 있는 강력한 필터 기능 제공

  • 사용법을 알면 알수록 편한 도구여서 전문가들이 자주 애용

 

 

4-3) Scapy

 

Scapy

Packet crafting for Python2 and Python3

scapy.net

[그림 12] Scapy

 

  • Python 모듈로 Python script 작성을 불러와 사용할 수 있는 도구

  • 모듈로 사용하지 않고 바로 인터프리터에서 사용해도 상관 없음

  • raw socket을 지원하여 패킷 캡처는 물론 인터프리터를 통해 임의로 소켓을 조작하여 여러 가지 플래그의 패킷을 사용자가 실시간으로 전송할 수 있는 장점을 지님


(5) File System

  • 시스템에서 생성되는 모든 파일이나 데이터들은 하드 디스크 또는 메모리에 저장 됨

  • 하지만 반 영구적으로 저장하기 위해서는 하드 디스크에 저장해야 하는데 하드 디스크에는 파일과 디렉토리를 효율적으로 저장하고 처리하기 위해 파일 시스템이 존재

  • 사용자나 시스템이 남긴 흔적을 찾기 위해서는 파일 시스템을 분석하는 것이 가장 좋으며 많은 흔적을 발견할 수 있는 좋은 곳이 바로 파일 시스템

 

 

5-1) TSK

 

The Sleuth Kit: Download

 

www.sleuthkit.org

[그림 13] TSK

 

  • The Sleuth Kit이라는 풀 네임을 가지는 해당 도구는 파일 시스템에 특화된 도구

  • 현존하고 있는 대부분의 파일 시스템 분석을 지원

  • 지원하는 파일 시스템은 NTFS, FAT, HFS+, Ext2, Ext3, UFS1, UFS2

  • 대부분의 OS와 Cygwin에서도 해당 도구는 작동

 

 

5-2) Autopsy

 

Autopsy

Autopsy® is a digital forensics platform and graphical interface to The Sleuth Kit® and other digital forensics tools. It is used by law enforcement, military, and corporate examiners to investigate what happened on a computer. You can even use it to rec

www.sleuthkit.org

[그림 14] Autopsy

 

  • TSK의 GUI 버전으로 웹 브라우저 형식

  • TSK에서 지원하는 기능 대부분을 지원하며, 버튼 클릭만으로 파일 시스템을 분석, 삭제 파일 복구 등을 할 수 있는 유용 도구


(6) File Carving

  • 파일 카빙과 관련된 도구들은 그렇게 많지는 않음

  • 파일이 조각화 되어 디스크에 존재할 때 파일 카빙 도구나 파일 복구 도구는 완벽하게 복구하지 못함

  • 이 부분은 아직까지 연구 중이며, 앞으로도 계속 연구 되어야 하는 부분

 

 

6-1) foremost

 

Foremost

Foremost Introduction Foremost is a console program to recover files based on their headers, footers, and internal data structures. This process is commonly referred to as data carving. Foremost can work on image files, such as those generated by dd, Safeb

foremost.sourceforge.net

[그림 15] foremost

 

  • 해당 도구는 특별 수사 및 보안 연구를 하는 미공군 연구실에서 개발된 도구

  • 파일 시그니처를 기반으로 대상 파일에서 여러 파일들을 카빙하는 도구

  • 옵션으로 카빙하고자 하는 파일의 확장자를 지정하면 해당 확장자 파일만 카빙

  • all이나 옵션을 지정하지 않으면 foremost에서 지원하는 모든 확장자 파일을 카빙

 

 

6-2) scalpel

 

machn1k/Scalpel-2.0

Scalpel; File Carving. Configuration files are modified. - machn1k/Scalpel-2.0

github.com

[그림 16] scalpel

 

  • 해당 도구도 foremost와 동일하게 시그니처 기반으로 파일을 복구하지만 또 하나의 카빙 패턴을 가짐

  • 파일 시스템에서 데이터 조각들을 검색하여 하나로 모아 파일을 카빙

  • 지원하는 파일 시스템은 FAT, NTFS, ext2/3, HFS+가 있음

 

 

6-3) recoverjpeg

 

recoverjpeg

recoverjpeg A tool to recover lost files on damaged memory cards or USB drives recoverjpeg tries to recover JFIF (JPEG) pictures and MOV movies (using recovermov) from a peripheral. This may be useful if you mistakenly overwrite a partition or if a device

rfc1149.net

[그림 17] recoverjpeg

 

  • jpeg 파일과 동영상 파일만을 카빙하는  도구로 무료로 배포


(7) 기타 도구

  • 부수적으로 포렌식에 도움이 되는 도구들이 해당

  • 포렌식 업무 수행 목적이 아닌 다른 프로그래밍, 디버깅 등이 목적인 도구들

  • 하지만 포렌식 업무에서도 필요한 도구들이므로 사용법이나 어떤 기능을 하는지 정도는 알아두는 것이 좋음

 

 

7-1) HxD

 

HxD - Freeware Hex Editor and Disk Editor | mh-nexus

HxD - Freeware Hex Editor and Disk Editor HxD is a carefully designed and fast hex editor which, additionally to raw disk editing and modifying of main memory (RAM), handles files of any size. The easy to use interface offers features such as searching and

mh-nexus.de

[그림 18] HxD

 

  • 해당 도구는 HexViewer로 일반 HexViewer랑 대부분 비슷한 기능을 가짐

  • 해당 도구에는 파일 비교 기능과 복사할 때의 타입 결정 기능, 프로세스 메모리 덤프 기능 등의 기능이 존재

  • 현재 여러 가지 나라의 언어로 지원

 

 

7-2) SQLite Database Browser

 

DB Browser for SQLite

DB Browser for SQLite The Official home of the DB Browser for SQLite Screenshot What it is DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. DB4S is for users and dev

sqlitebrowser.org

[그림 19] SQLite Database Browser

 

  • 해당 도구는 SQLite 파일 포맷을 분석할 때 유용하게 사용되는 도구

  • 요즘 스마트폰의 파일들을 보면 거의 SQLite 파일 포맷이고, firefox, chrome 등이 브라우저도 여러 가지 정보를 SQLite 파일 포맷으로 저장

  • 이러한 파일들은 HexViewer로 수동 분석해도 되지만, 간편하게 해당 도구를 사용하면 테이블 별로 정보들을 볼 수 있어 분석하기가 더욱 더 쉬움

  • 더구나 SQLite는 어떠한 정보를 지워도 기본적으로 SQLite 파일 포맷에서는 지워지지 않기 때문에 포렌식에 있어 중요한 의미를 지님

 

 

7-3) AnalyzeMFT

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com

[그림 20] AnalyzeMFT

 

  • 해당 도구는 MFT 파일 분석 도구로 사용법이 간단

  • 해당 도구의 결과를 저장할 파일을 사용자가 지정

  • CSV 파일 등으로 지정하여 excel을 사용하여 간편하게 그 결과를 보고 MFT 엔트리들을 분석 가능

  • 해당 도구는 CLI 기반

 

 

7-4) Inkanalyser

 

woanware/woanware.github.io

Contribute to woanware/woanware.github.io development by creating an account on GitHub.

github.com

[그림 21] lnkanalyser

 

  • Windows의 링크 파일(바로가기)을 분석해주는 도구

  • Windows의 링크 파일은 여러 가지 많은 정보를 담고 있고 포렌식 관점에서의 의미도 상당함

  • 사용법도 간단하며 CLI 기반 도구

 

 

7-5) DCode, TimeLord

 

Digital Detective's Free Timestamp Utility - DCode™

Digital Detective's DCode™ is a FREE forensic utility for converting data from desktop and mobile devices into human readable-timestamps.

www.digital-detective.net

 

TimeLord Time Utility for Forensic Analysts

TimeLord by Paul Tew A Time Utility for Forensic Analysts Paul Tew has released his TimeLord utility, it is the most comprehensive time utility software available for Windows OS. It can be used to - Display  the Time Zone on the host computer together with

computerforensics.parsonage.co.uk

[그림 22] DCode

 

[그림 23] TimeLord

 

  • 해당 도구들은 TimeStamp 변환 도구

  • 포렌식에서 시간은 아무 큰 의미이며 절대로 추측이 되어서는 안될 정보

  • 대부분 파일이나 디렉토리 또 이벤트 등은 시간이 기록되는데 이 시간은 분석 대상 컴퓨터가 위치했던 장소나 파일 시스템의 정책 등에 의해 여러 가지 표준 시간으로 기록

  • 표준 시간은 각각 시차가 있어 표준 시간 변환도 여러 가지 의미로 중요하게 작용

  • 해당 도구들은 이러한 시간 변환을 해주는 도구들로서 GUI 기반

 

 

7-6) BinText

 

BinText Download Free for Windows 10, 7, 8 (64 bit / 32 bit)

A little, quick and capable content extractor that will be exceptionally compelling to software engineers. It can remove content from any sort of document and incorporates the capacity to discover plain ASCII content, Unicode content giving helpful data to

softfamous.com

[그림 24] BinText

 

  • 스트링을 나열해 주는 도구

  • 여러 가지 스트링 검색 도구들이 있지만 해당 도구가 제일 많이 쓰임

  • GUI 기반으로, 스트링 검색은 악성코드 분석이나 실행 파일 분석을 수행할 때 자주 사용

 

 

7-7) Lnk Parser

 

Windows LNK Parsing Utility

Windows LNK Parsing Utility (lp) Introduction lp is a command line version of a Windows SHLLINK parser that was designed to operate on shortcut files, but can parse SHLLINK artifacts from files that generate Jump Lists as well. Originally inspired by the f

tzworks.net

[그림 25] Lnk Parser

 

  • 해당 도구도 lnkanalyser처럼 lnk 파일을 분석해 주는 도구

  • 각 오프셋을 parsing 하여 정보를 분석해 보기 좋게 출력해 줌

  • 32bit와 64bit 모두 지원

  • Windows, Linux, Mac OS X 모두 지원하는 CLI 기반의 도구

 

 

7-8) AliveRegistry Viewer

 

Alien Registry Viewer - Standalone Windows Registry Files Viewer

Password Recovery   Most Popular: ......  Security   ......  Utilities   ......  Articles   Alien Registry Viewer Alien Registry Viewer v3.6.660 released on 7/17/2011 Download   demo (440 Kb) All Our Products Alien Registry Viewer Price 69 49 Buy Now Relat

lastbit.com

[그림 26] AliveRegistry Viewer

 

  • 레지스트리 하이브를 트리 구조로 만들어 주고 각 하이브의 value와 데이터를 regedit과 동일하게 보여주는 도구

  • 해당 도구를 이용하면 활성 시스템의 레지스트리가 아닌 비활성 레지스트리도 분석이 가능

  • 하이브를 txt 파일로 export하면 하이브의 마지막 수정 시간 등 여러 가지 파악 가능

 

 

7-9) WFT

 

Fool Moon Software & Security

"Wow. I have to tell ya, I am very impressed. There are many spiffy enhancements, esp for the incident responder who has a bit of a clue. Great output, much improved config file, lots of command line options. Wow." -- Don Murdoch (Author of SANS First Resp

www.foolmoon.net

[그림 27] WFT

 

  • Windows Forensics ToolChest의 약자

  • 포렌식에 필요한 Windows OS의 정보를 자동적으로 수집하고 보고서를 작성해 주는 도구

  • 특징으로 CD-ROM에서 작동이 가능

  • 해당 도구는 따로 cmd.exe의 경로를 지정해주어 하며, 침해 시스템의 cmd.exe보다는 직접 가지고 다니는 무결성이 보장된 cmd.exe를 지정해 주는 것이 좋음 


# Reference

 

http://www.yes24.com/Product/Goods/8511539

'Tool' 카테고리의 다른 글

[Tool] Volatility  (0) 2020.05.22
[Tool] FTK Imager  (0) 2020.03.01
[Tool] HxD Editor  (0) 2020.03.01

[Tool] FTK Imager

FTK Imager


(1) FTK Imager란?

  • 포렌식의 가장 기본이 되는 도구로, 디스크 이미징 작업에 많이 활용

  • 이 외에도 이미징 작업에 많이 쓰이는 소프트웨어로 EnCase와 dd 도구가 있으며, 물리적 하드디스크 이미징 전용 장비로는 Road Master, Rapid Image 등

 

1-1. 논리적 이미징과 물리적 이미징

  • 논리적 이미징 방식은 다른 하드디스크에 이미지 파일 (001,dd 등 확장자)로 저장이 되며, 실제 하드디스크와 같은 용량을 차지

  • 물리적 이미징 방식은 하드디스크를 다른 하드디스크에 그대로 복제하는 것을 말하며, 복사될 하드디스크는 원본 디스크보다 용량이 같거나 커야 됨

  • 논리적 방식과 물리적 방식 모두 복사될 하드디스크는 충분한 와이핑 후 복사를 해야 무결성을 지킬 수 있음

※ 디스크 와이핑 : 하드디스크나 메모리 등 저장매체에 기록된 데이터를 완전히 소거하는 논리적인 방법

 

 

FTK Imager 다운로드 : https://accessdata.com/product-download/ftk-imager-version-4-2-1

 

FTK Imager version 4.2.1

AccessData provides digital forensics software solutions for law enforcement and government agencies, including the Forensic Toolkit (FTK) Product.

accessdata.com

FTK Imager는 제작사 다운로드 페이지에서 이름과 이메일 주소를 등록하면 다운로드 링크를 등록한 이메일로 보내준다.

 

 

1-2. FTK Imager 인터페이스

 

[그림 1] FTK Imager 인터페이스

 

  • Evidence Tree : 계층적 트리구조로 추가한 증거 항목을 보여줌

  • File List : Evidence Tree에서 선택된 항목에 있는 파일과 폴더를 보여줌

  • Viewer : Preview Mode 옵션인 Natural, Text, Hex 선택에 따라 선택된 파일의 내용을 보여줌

  • Custom Content Sources : 이미지에 포함된 내용을 보여줌

  • Properties / Hex Value interpreter : Evidence Tree나 File List에서 선택된 객체의 다양한 정보를 보여주고, 뷰어에 선택된 16진수 값을 10진수와 가능한 날짜, 시간 값으로 변환 가능


1) 이미징 생성

 

 

[그림 2] File > Add Evidence Item

 

[그림 3] Select Source

 

FTK Imager 상단의 File > Add Evidence Item 메뉴를 클릭하거나, File 메뉴 바로 아래에 있는 플러스 아이콘을 클릭하면 위와 같은 화면이 나오게 된다.

 

  • Physical Drive : 실제 물리적으로 연결된 하드 드라이브의 목록을 보여줌

  • Image File : 이미징 된 파일들을 불러올 수 있는 메뉴

  • Logical Drive : 논리 드라이브를 보여줌

  • Contents of a Folder : 폴더를 선택할 때 사용

 

[그림 4] 증거 추가 화면

 

Physical Drive를 눌러 원하는 물리적인 하드 드라이브를 FTK Imager에 마운팅 시켜보도록 하자.

 

실제 물리적인 하드 드라이브를 마운팅한 다음, Evidence Tree에 원하는 파티션 또는 물리적 드라이브를 선택하고 우클릭을 하면  위와 같은 화면이 나오게 되면서 총 5가지의 메뉴가 나타난다.

 

  • Remove Evidence Item : 추가한 아이템을 제거

  • Verify Drive/Image : 검증을 위한 작업이 실행됨

  • Export Disk Image : 이미징 작업을 위한 메뉴

  • Image Mounting : 실제 마운팅을 실행 시켜주는 작업 메뉴

  • Export Directory Listing : 해당 드라이브의 모든 파일과 폴더 구조를 추출해주는 메뉴

 

[그림 5] 증거 추출 기본 화면

 

Export Disk Image 메뉴를 선택하면 위와 같은 화면이 나타나게 된다.

 

Add 메뉴를 누르기 전에,  Add 아래에 있는 Verify images after they are created 메뉴를 선택하여 이미지 검증을 진행해야 한다. (디지털 포렌식에서 무결성은 매우 중요하기 때문에)

 

[그림 6] 이미지 타입 선택

 

Add 메뉴를 누르게 되면 저장할 이미지 타입이 나오게 된다.

 

특정 상황을 제외하고는 기본적으로 Raw (dd)나 E01 파일을 주로 선택한다.

 

[그림 7] 사건 번호 / 분석관 등 내용

 

다음을 누르면 사건 번호나 증거 번호, 분석관, 메모 등 여러 정보들을 기술하는 화면이 나온다.

 

선택 사항이므로 기술하고 싶은대로 기술하면 된다.

 

[그림8] 저장 위치 / 이미지 이름 / 암호화

 

다음을 누르면 저장 경로와 저장할 이름, 암호화 여부에 대한 화면이 나온다.

 

Image Fregment Size를 통해 분할 저장될 크기가 정해지므로, 용량이 작은 디스크라면 0으로 두어 하나의 파일로 이미징이 되도록 한다.

 

경로와 이미지 이름, 기타 내용을 모두 확인한 뒤에 Finish 버튼을 누르면 이미징이 시작되고 하나의 이미지 파일과 해쉬 값, 증거 번호 등이 적힌 텍스트 파일이 생성된다.


# Reference

 

http://www.yes24.com/Product/Goods/38136197

'Tool' 카테고리의 다른 글

[Tool] Volatility  (0) 2020.05.22
[Tool] 디지털 포렌식 유용 도구 소개 (Digital Forensics Tool)  (0) 2020.05.11
[Tool] HxD Editor  (0) 2020.03.01

[Tool] HxD Editor

HxD


(1) HxD란?

  • 일반 텍스트 타입 파일은 텍스트 편집기를 이용하여 쉽게 확인할 수 있지만, 대부분 파일 내부에는 텍스트가 아닌 데이터로 존재

  • HxD는 이진 파일을 읽을 수 있는 무료 에디터 프로그램으로 사용법이 쉽고 간단하여 널리 사용

  • 주로 사용되는 기능은 파일이나 이미지의 특정 섹터를 확인하거나 수정할 때 사용

 

HxD Editor 다운로드 : https://mh-nexus.de/en/hxd/

 

HxD - Freeware Hex Editor and Disk Editor | mh-nexus

HxD - Freeware Hex Editor and Disk Editor HxD is a carefully designed and fast hex editor which, additionally to raw disk editing and modifying of main memory (RAM), handles files of any size. The easy to use interface offers features such as searching and

mh-nexus.de

 

HxD 인터페이스 (메뉴바, 작업창)

 

[그림 1] HxD 인터페이스

 

  • 파일(File) : 파일의 열기, 저장, 인쇄가 가능한 메뉴

  • 편집(Edit) : 파일의 복사, 붙여넣기 등이 가능한 메뉴

  • 찾기(Search) : 찾기, 찾아 바꾸기, 특정 오프셋으로 이동 등 설정 가능

  • 보기(View) : 화면에 표시되는 데이터 표현(아스키, 16진수 등) 설정 가능

  • 분석(Analysis) : 파일의 해시 값 분석 및 두 개의 파일을 비교 가능

  • 기타 설정(Extras) : 물리적 장치와 이미지 분석 때 사용되는 메뉴


1.  분석 대상 열기

 

[그림 2] 분석 파일 열기

 

[그림 3] 디스크 이미지 열기

 

HxD 에디터는 파일, 물리 디스크, 이미징 된 파일을 읽을 수 있다.

 

먼저 파일을 분석하려면 위 화면대로 파일 > 열기 메뉴로 열 수 있지만, 포렌식 분석을 위해서는 기타 설정 메뉴를 이용한다.

 

  • 램 : 기타 설정(Extras) > RAM 열기(Open RAM)

  • 물리 디스크 : 기타 설정(Extras) > 디스크 열기(Open Disk)

  • 디스크 이미지 : 기타 설정(Extras) > 디스크 이미지 열기(Open Disk Image)

 

[그림 4] 섹터 크기 입력

 

처음 파일을 열면 1섹터 당 몇 바이트인지 물어보게 된다.

 

보통 512바이트이기 때문에 512로 선택하고 수락을 누르면 섹터 단위로 이동하기가 편리하다.

(크기는 원하는 바이트 단위로 바꿔도 된다.)

 

 

2. 섹터 이동과 수정

 

[그림 5] Hex 값 변경

섹터 이동은 섹터 입력 폼에서 이동하고 싶은 섹터 숫자를 직접 입력하여 이동할 수 있고, 원하는 위치의 Hex 값으로 수정이 가능하다.

 

[그림 6] Hex 복사 & 붙여넣기

 

또한, 원하는 섹터를 블록 지정하여 복사한 뒤에 붙여넣기 쓰기(Paste Write)를 통해 덮어쓰기도 가능하며 붙여넣기 삽입(Paste Insert)으로 삽입도 가능하다.

 

 

3. 특정 영역 일괄 블록 지정

 

[그림 7] 편집 > 블록 선택

 

[그림 8] 블록 선택 창

 

[그림 9] 블록 선택 또 다른 방법

 

일괄 블록 지정은 편집 > 블록 선택이나 왼쪽 하단에 위치한 블록을 클릭하여 오프셋 시작(Start-offset)과 오프셋 종료(End-Offset)으로 지정한다.

 

이 기능은 파일이나 디스크 복구 등 많은 섹터 영역을 지정해야 할 때 유용하게 사용된다.

 

 

4. 특정 영역 일괄 바꾸기

 

[그림 10] 편집 > 선택 채우기

 

[그림 11] 일괄 바꾸기

 

일괄 바꾸기(선택 채우기)는 바꾸고자 하는 영역을 드래그 한 후 편집 > 선택 채우기(Fill selection)으로 지정된 블록 영역을 원하는 값으로 모두 바꿀 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/38136197

'Tool' 카테고리의 다른 글

[Tool] Volatility  (0) 2020.05.22
[Tool] 디지털 포렌식 유용 도구 소개 (Digital Forensics Tool)  (0) 2020.05.11
[Tool] FTK Imager  (0) 2020.03.01

+ Recent posts