Memory Forensics - Volatility 3

qwq·2026년 1월 21일

Forensics

목록 보기
5/5
post-thumbnail

Volatility3

Volatility는 메모리 포렌식에 사용되는 도구로, 시스템의 메모리 덤프를 분석해 OS 구조를 기준으로 복원한다.

다음은 실행 형식은 다음과 같다.

python vol.py -[OPTION] [PLUGIN]

Option

메모리 덤프 파일을 지정하는 -f 옵션만은 기억해두도록 하자.

설정

Option내용
-c [CONFIG], --config [CONFIG]json 설정 파일을 불러옴
--write-config현재 설정을 config.json 설정 파일로 저장
--save-config [CONFIG]현재 설정을 json 설정 파일로 저장
-e [EXTEND], --extend [EXTEND]설정 값 추가 또는 변경

메모리 파일 지정

Option내용
-f [FILE], --file [FILE]메모리 덤프 파일 지정
--single-location [SINGLE_LOCATION]분석할 파일의 기본 위치 지정
--single-swap-locations [SINGLE_SWAP_LOCATIONS ...]swap 영역 위치 지정
--stackers [STACKERS ...]stacker 목록 지정

출력/로그

Option내용
-v, --verbosity자세히 출력
-q, --quiet진행 상황을 출력하지 않음
-l [LOG], --log [LOG]콘솔 출력 내용을 지정한 경로에 저장
-o [OUTPUT_DIR], --output-dir [OUTPUT_DIR]결과물 경로 지정
--filters [FILTERS]출력 결과 필터링
--hide-columns특정 열 숨김
-r [RENDERER], --renderer [RENDERER]출력 형식 지정(csv, json, parquet 등)

플러그인 / 심볼

Option내용
-p [PLUGIN_DIRS], --plugin-dirs [PLUGIN_DIRS]Plugin 경로 지정
-s SYMBOL_DIRS, --symbol-dirs SYMBOL_DIRSymbol 경로 지정

캐시 / 네트워크

Option내용
--clear-cache캐시 삭제
--cache-path [CACHE_PATH]캐시 저장 경로 변경
--offline온라인 Symbol 검색 안함
-u [URL], --remote-isf-url [URL]온라인 ISF 검색 URL 지정

기타

Option내용
-h, --help도움말 표시
--parallelism [{PROCESSES, THREADS, OFF}]병렬 처리({멀티프로세스, 멀티스레드, 비활성화})

Plugins

vol.py [PLUGIN] --help로 각 Plugin의 도움말을 볼 수 있다.

기타

프레임워크 / 공통

Plugin내용
banners메모리 이미지에서 Linux 배너 문자열 식별 시도
configwriter자동 분석(automagic)을 실행하고 설정을 출력 및 output 디렉토리에 저장
frameworkinfoVolatility 프레임워크의 모듈 구성 요소 정보 출력
isfinfo사용 가능한 ISF 파일 또는 특정 ISF 정보 출력
layerwriterstacker가 생성한 기본 메모리 레이어를 파일로 저장
regexscan커널 메모리를 정규표현식 기반으로 스캔
timeliner시간 관련 정보를 제공하는 플러그인 결과를 시간순으로 정렬
vmscanIntel VT-d 구조를 스캔하고 VM용 Volatility 설정 생성

Linux

기본 정보 / 프로세스

Plugin내용
linux.boottime시스템 부팅 시각 출력
linux.capabilities프로세스 권한(capabilities) 목록 출력
linux.pidhashtablePID 해시테이블을 통해 프로세스 열거
linux.pslist메모리 이미지에 존재하는 프로세스 목록 출력
linux.psscan메모리 스캔 기반으로 프로세스 탐지
linux.pstree부모-자식 관계 기반 프로세스 트리 출력
linux.psaux프로세스 실행 인자 출력
linux.pscallstack각 태스크의 호출 스택 출력
linux.ptraceptrace로 연결된 tracer/tracee 태스크 열거

명령 / 환경

Plugin내용
linux.bashbash 명령 히스토리 복구
linux.envars프로세스 환경 변수 출력

파일 / 메모리

Plugin내용
linux.proc모든 프로세스의 메모리 맵 출력
linux.elfs프로세스에 매핑된 ELF 파일 목록
linux.library_list프로세스에 로드된 라이브러리 목록
linux.lsof프로세스별 열린 파일 목록
linux.pagecache.files메모리에 캐시된 파일 목록
linux.pagecache.inodepages캐시된 inode 페이지 목록 및 복구
linux.pagecache.recoverfs캐시된 파일시스템을 tarball로 복구
linux.module_extract커널 특정 주소에서 ELF 파일 복원

네트워크

Plugin내용
linux.ip.Addr모든 네트워크 장치의 인터페이스 주소 정보 출력
linux.ip.Linkip link show와 유사한 네트워크 인터페이스 정보 출력
linux.sockscan메모리 레이어에서 네트워크 소켓 스캔
linux.sockstat모든 프로세스의 네트워크 연결 정보 출력

커널 / 모듈

Plugin내용
linux.lsmod로드된 커널 모듈 목록
linux.kallsyms커널 kallsyms 심볼 열거
linux.kmsg커널 로그 버퍼 출력
linux.kthreads커널 스레드 함수 열거
linux.iomem실행 중인 시스템의 /proc/iomem과 유사한 정보 출력
linux.mountinfo프로세스 마운트 네임스페이스의 마운트 포인트 출력
linux.vmcoreinfoVMCoreInfo 테이블 열거

트레이싱 / 고급

Plugin내용
linux.ebpfeBPF 프로그램 열거
linux.tracing.ftrace.CheckFtraceftrace 후킹 탐지
linux.tracing.perf_events.PerfEvents프로세스별 성능 이벤트 목록 출력
linux.tracing.tracepoints.CheckTracepointstracepoint 후킹 탐지
linux.vmaregexscan.VmaRegExScan모든 VMA 영역을 정규표현식으로 스캔

악성코드 / 루트킷

Plugin내용
linux.malfind.Malfind코드 인젝션이 의심되는 메모리 영역 탐지 (deprecated)
linux.hidden_modules.Hidden_modules숨겨진 커널 모듈 탐지 (deprecated)
linux.malware.malfind.Malfind코드 인젝션이 의심되는 메모리 영역 탐지
linux.malware.hidden_modules.Hidden_modules숨겨진 커널 모듈 탐지
linux.malware.modxview.Modxview여러 모듈 탐지 기법을 종합해 은닉 여부 분석
linux.malware.netfilter.NetfilterNetfilter 훅 목록 출력
linux.malware.process_spoofing.ProcessSpoofing실행 경로·cmdline·comm 비교로 프로세스 스푸핑 탐지
linux.malware.tty_check.Tty_Checktty 장치 후킹 탐지
linux.malware.check_afinfo.Check_afinfo네트워크 프로토콜 함수 포인터 무결성 검사
linux.malware.check_creds.Check_creds프로세스 간 credential 구조 공유 여부 검사
linux.malware.check_idt.Check_idtIDT 변조 여부 검사
linux.malware.check_modules.Check_modules커널 모듈 목록과 sysfs 정보 비교
linux.malware.check_syscall.Check_syscall시스템 콜 테이블 후킹 검사

Windows

기본 정보 / 프로세스

Plugin내용
windows.info메모리 샘플의 OS 및 커널 정보 출력
windows.pslist프로세스 목록 출력
windows.psscan메모리 스캔 기반 프로세스 탐지
windows.pstree부모-자식 관계 기반 프로세스 트리 출력
windows.cmdline프로세스 실행 명령어 출력
windows.envars프로세스 환경 변수 출력

파일 / 핸들

Plugin내용
windows.filescan파일 오브젝트 스캔
windows.dumpfiles메모리에 캐시된 파일 내용 덤프
windows.handles프로세스 열린 핸들 목록 출력

DLL / 드라이버 / 메모리

Plugin내용
windows.dlllist로드된 DLL 목록
windows.modules로드된 커널 모듈 목록
windows.driverscan메모리 기반 드라이버 스캔
windows.vadinfo프로세스 메모리 영역 정보 출력
windows.vadwalkVAD 트리 순회
windows.memmap메모리 맵 출력

악성코드 탐지

Plugin내용
windows.malware.malfind코드 인젝션 의심 메모리 영역 탐지
windows.malware.hollowprocesses프로세스 할로잉 탐지
windows.malware.pebmasqueradePEB 기반 프로세스 이름 위장 탐지
windows.malware.processghostingProcess Ghosting 탐지
windows.malware.svcdiff서비스 목록 비교를 통한 은닉 탐지

레지스트리

Plugin내용
windows.registry.hivelist레지스트리 하이브 목록 출력
windows.registry.hivescan메모리 기반 레지스트리 하이브 스캔
windows.registry.printkey특정 레지스트리 키 출력
windows.registry.userassistUserAssist 실행 기록 출력
windows.registry.amcacheAmCache 실행 이력 추출
windows.registry.scheduled_tasks레지스트리 기반 예약 작업 정보 출력

기타

Plugin내용
windows.mbrscanMBR 스캔 및 파싱
windows.mutantscan뮤텍스 오브젝트 스캔
windows.ssdt시스템 콜 테이블 출력
windows.timers커널 타이머 및 DPC 출력
windows.truecryptTrueCrypt 캐시된 패스프레이즈 탐지

MacOS

기본 정보 / 프로세스

Plugin내용
mac.pslist프로세스 목록 출력
mac.psscan메모리 스캔 기반 프로세스 탐지
mac.pstree프로세스 트리 출력
mac.psaux프로그램 실행 인자 복구

네트워크 / 파일

Plugin내용
mac.netstat네트워크 연결 정보 출력
mac.ifconfig네트워크 인터페이스 정보 출력
mac.list_files모든 프로세스의 열린 파일 디스크립터 출력
mac.lsof프로세스별 열린 파일 목록

커널 / 보안

Plugin내용
mac.lsmod로드된 커널 모듈 목록
mac.malfind코드 인젝션 의심 메모리 영역 탐지
mac.check_syscall시스템 콜 테이블 후킹 검사
mac.check_sysctlsysctl 핸들러 후킹 검사
mac.check_trap_tablemach trap 테이블 후킹 검사
mac.socket_filters커널 소켓 필터 열거
mac.timers악성 커널 타이머 탐지
mac.trustedbsd악성 trustedbsd 모듈 검사
mac.vfsevents파일 시스템 이벤트를 필터링하는 프로세스 출력
profile
QwQ

0개의 댓글