본문 바로가기

4-1. 2025-2 심화 스터디/디지털 포렌식 2팀

[2025.09.27] 포포포_3주차_활동

www.inflearn.com
3주차 수강한 강의 : 섹션2(디스크 마운트&메모리 덤프)~섹션3((Volatility Cridex 풀이(2))

기본 개념(기법)
• 디스크 이미징: 드라이브 전체를 파일 형태로 복제(이미지 생성)해서 접근
• 디스크 마운트: 이미지 파일을 드라이브처럼 만들어서 접근.
• 메모리 덤프: 시스템 메모리(RAM)를 그대로 파일로 추출 — 스냅샷처럼 찍음. (남아있는 임시 데이터·암호·세션 토큰 등 잔여 데이터가 많음)
• 침해사고 대응 기법: 메모리 포렌식

주요 도구
• Volatility (메모리 포렌식 프레임워크)
• Windows 환경에서는 Windows Terminal / PowerShell / CMD 사용

시스템 환경변수 설정(Windows)
1. 제어판 또는 검색에서 ‘시스템 환경 변수 편집’ 실행
2. 환경 변수(N) → 사용자/시스템 Path 선택 → 새로 만들기 → Volatility(및 strings 등 유틸)의 경로 추가
ps. Path에 도구 경로가 들어가야 터미널에서 바로 명령 실행 가능

문제 다운로드 가능한 곳
• Volatility 공식 위키의 Memory Samples
• CTF: ctf-d.com (예: GreCon 2015 문제 등)

Volatility 기본 워크 플로우

1. 이미지 정보 확인
Volatility -f <이미지> imageinfo
- 이미지의 추천 프로파일, 생성 일시, 메모리 모델(32/64bit) 등을 알려줌 → 적절한 --profile 선택에 활용

2. 프로세스 목록 확인
volatility -f <이미지> --profile=<프로파일> pslist > pslist.log
- pslist -> 시간 순(스냅샷 시점 기준)으로 프로세스 나열
- .log -> 출력값을 텍스트로 나타내는 용

3. 숨김/종료된(혹은 언매핑된) 프로세스 탐지
volatility -f <이미지> --profile=<프로파일> psscan > psscan.log
- 메모리 스캔 기반으로 과거 또는 숨긴 프로세스 확인
- psscan: 숨긴 프로세스를 확인 가능

4. 프로세스 트리(부모·자식 구조)
volatility -f <이미지> --profile=<프로파일> pstree
-  pstree: PID, PPID 구조 확인 가능

5. 종합적인 확인
volatility -f <이미지> --profile=<프로파일> psxview
- psxview: pslist, psscan을 한눈에 확인 가능


프로세스 관련 추가 명령 (Command)

cmdline: 프로세스의 명령행 인자 확인
volatility -f <이미지> --profile=<프로파일> cmdline

cmdscan: cmd.exe 가 실행한 명령 확인
volatility -f <이미지> --profile=<프로파일> cmdscan

consoles: 콘솔 출력 & 성공 여부 확인
volatility -f <이미지> --profile=<프로파일> consoles

파일 관련 추가 명령 (Command)

volatility -f <이미지> --profile=<프로파일> filescan > filescan.log
filescan: 메모리 내에 존재하는 모든 파일에 대한 정보. (-> Control + F 로 의심 파일 찾기)

volatility -f <이미지> --profile=<프로파일> dumpfiles -Q <OFFSET> -D ./extracted/ -n
-Q 뒤에 filescan에서 찾은 offset 사용, -D는 저장할 디렉터리

volatility -f <이미지> --profile=<프로파일> memdump -p <PID> -D ./dumps/
• 프로세스 주소공간 전체를 덤프
• 프로세스가 실제로 실행시킨 실행파일 덤프

volatility -f <이미지> --profile=<프로파일> procdump -p <PID> -D ./dumps/
• procdump는 메모리 상에서 실행 중이었던 exe와 디스크 상의 exe를 비교·추출할 때 유용
• 덤프에서 문자열 추출(유용한 인디케이터: URL, IP, 명령어 등)

strings ./dumps/1640.dump > 1640_strings.log
• strings 유틸(환경변수에 등록 필요)을 통해 인디케이터 확인

네트워크 정보

메모리에서 TCP 연결 확인
volatility -f <이미지> --profile=<프로파일> connections
- 출력 항목: Local Address, Remote Address, PID 등 → PID를 통해 어떤 프로세스가 통신했는지 연결 가능
connections: 연결된 TCP 통신 출력 명령어.
(Local address: 분석하려는 컴퓨터의 로컬 주소, Remote address: 원격지 주소, PID: 통신 프로세스)


▪︎ 실습 예시

1. filescan으로 의심 파일(reder_sl.exe) 확인
2. dumpfiles -Q <offset> -D ./files로 reder_sl.exe 추출
3. memdump -p <PID> -D ./dumps/로 프로세스 메모리 덤프
4. strings로 덤프에서 URL/IP/명령어 등 추출 → 의심 URL 접속 흔적 발견
5. 추출한 exe·덤프를 VirusTotal에 검사 → 피싱/뱅킹 관련 흔적 확인
결과: reder_sl.exe 취약점 이용 → 악성 URL 접속 → 은행 피싱 활동 추정