기초부터 따라하는 디지털포렌식 | 학습 페이지
OlympicDestroyer - Volatility Contest 2018 풀이 (1) | 기초부터 따라하는 디지털포렌식
OlympicDestroyer - Volatility Contest 2018 풀이 (1)
www.inflearn.com
3-5. OlympicDestroyer - Volatility Contest 2018 풀이
단서
첨부 파일 “Olympic_Session_V10”
메일을 통해 감염됨.


-pstree



- netscan

192.168.111.128 - 원격 ip
192.168.111.130 - 로컬 ip
- cmdline

경로가 보임
C:\Windows\System32\OlympicDestroyer3.exe
C:\Users\VM\AppData\Local\Temp\_xut.exe
- filescan


0x000000007fc8b888 추출

0x000000007f891570 추출

바이러스 검사 -> 악성 파일 확인

어디에서 들어와서
4개의 악성 프로세스를 발견! (4개 프로세스 심화분석)
- olympicdestroyer -> 공격 스크립트가 있었다!
LDAP, 계정, 패스워드가 있음
- _ xut.exe -> 공격 스크립트가 있었다!
복구 관련 기능을 삭제, 부팅 관련 기능을 못하게
이벤트로그를 삭제
어떻게 나가는지(추가공격) -> LDAP, 계정, 패스워드
같은 네트워크에 있는 컴퓨터 공격 의심.
4-1. Windows 포렌식 개요 & Registry 개요
1- Windows Artifacts란?
Windows가 가지고 있는 특유의 기능들과 그 기능을 구현하는데 필요한 요소
Windows의 사용자가 수행하는 활동에 대한 정보를 보유하고 있는 개체
생성증거: 프로세스, 시스템에서 자동으로 생성한 데이터
보관증거: 사람이 기록하여 작성한 데이터
- Windows Artifacts를 공부할 때 가장 중요한 점
1. 사용자의 행위에 따라 어디에 어떤 정보가 저장될까?
2. 컴퓨터는 대체 어떻게 동작하는 걸까?
→ 사용자는 컴퓨터로 무슨 일을 했을까?
2- Registry란?
- 윈도우 운영체제와 응용 프로그램 운영에 필요한 정보를 담고 있는 계층형 데이터베이스
운영체제 및 응용 프로그램의 설정 정보, 서비스의 중요 데이터 등 기록
부팅 과정부터 로그인, 서비스 실행, 응용프로그램 실행, 사용자 행위 등 모든 활동에 관여
- 윈도우 시스템의 모든 정보가 담겨 있음
윈도우 시스템 분석의 필수 요소



4-2. Windows Registry 동작 원리
- Registry - Timezone
경로: HKLM\SYSTEM\CurrentControlSet\Control\TimeZonelnformation
Bias를 통해 현재 컴퓨터의 timezone을 알 수 있음.
현재 컴터의 설정은 UTC+9
- Registry - Systeminfo
경로: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
현재 윈도우 버전, 설치 시간, Productld 등 시스템과 관련된 정보들


dcode 다운로드
DCode™ - The Digital Detective's Companion Across Time - Digital Detective
DCode™ - The Digital Detective's Companion Across Time
Uncover the truth with timestamps in digital forensics. Join us on a journey to decode the mysteries of time with DCode™ - The Digital Detective's Companion Across Time.
www.digital-detective.net
- Registry - Autoruns
경로
HKLM\SOFTWARE \Microsoft \Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
- Registry - User Account
경로: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
S-1-5-18 : systemprofile
S-1-5-19 : LocalService
S-1-5-20 : NetworkService
S-1-5-21 : 사용자가 만든 계정
• 1000 이상은 user 권한
• 500은 administrator
- Registry - Environment Variables
시스템/사용자 환경변수 확인
경로
사용자 환경변수
HKU\{SID} \Environment
- Registry - Executable
응용프로그램(exe) 실행에 따른 흔적
UserAssist: 최근에 실행한 프로그램 목록, 마지막 실행 시간, 실행 횟수
OpenSavePidlMRU: 열기 혹은 저장 기능으로 사용된 파일
LastVisitedPidlMRU: 열기 혹은 저장 기능을 사용한 응용 프로그램
경로: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
• {CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count: 실행파일 실행 기록
• {F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count: 바로가기 실행 기록
- Registry - Executable.
LastVisitedPidlMRU: 열기 혹은 저장 기능을 사용한 응용 프로그램
경로: HKCU\Software \Microsoft \Windows \CurrentVersion\Explorer\ComDlg32\LastVisitedPidIMRU
- Registry - USB Connection.
• USB 등 외부 저장매체 연결 흔적을 추적 가능
• USB 제품명, 시리얼 번호, 최초 연결 시각, 마지막 연결 시각
• 경로
모든 USB: HKLM\SYSTEM\ControlSet001\Enum\USB
USB 저장장치: HKLM\SYSTEM\ControlSet001\Enum \USB\USBSTOR
마운트 디바이스: HKLM\SYSTEM\MountedDevices
시스템에 연결되었던 모든 USB 장치의 정보가 기록됨
경로: HKLM\SYSTEM\ControlSet001\Enum\USB
VID와 PID를 검색하면, USB 종류를 알 수 있음
시스템에 마운트되었던 장치의 리스트를 나타냄
경로: HKLM\SYSTEM\MountedDevices
Registry - Shellbags.
• 사용자가 접근한 폴더 정보를 기록함
삭제된 폴더도 찾을 수 있
• BagMRU: 폴더의 구조를 계층적 구조로 나타냄
Bag: 윈도우 사이즈, 위치 등 사용자의 환경설정을 저장
• 경로
HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Classes\Local Settings\Software\Microsoft \Windows\Shell\BagMRU
HKCU\Software\Microsoft\Windows\Shell\Bags
HKCU\Software\Microsoft\Windows\Shell\BagMRU
4-3. Windows Registry 실습
- 레지스트리 파일 추출
- FTK lmager 이용
[root] \Windows \ Users \ {USERNAME} \NTUSER. DAT
[root]\Windows\System32\config \ DEFAULT
[root]\Windows \System32\config \SAM
[root]\Windows\System32\config \SECURITY
[root]\Windows\System32\config \SOFTWARE
[root]\Windows \System32\config \SYSTEM
반드시 LOG1,LOG2 파일을 포함해서 추출 !!

registry/raw에 추출
• 분석 도구 다운로드
REGA: http://forensic.korea.ac.kr/tools.html

수집완료


RLA: https://ericzimmerman.github.io/#!index.md

Regripper: https://github.com/keydet89/RegRipper3.0


레지스트리 포렌식과 보안 (Registry Forensics)
Slides/Windows/(FP) 레지스트리 포렌식과 보안 (Registry Forensics).pdf at master · proneer/Slides
Slides. Contribute to proneer/Slides development by creating an account on GitHub.
github.com
1. 레지스트리 소개
- 윈도우 레지스트리란?
마이크로소프트 윈도우 운영체제에서 운영체제와 응용프로그램 운영에 필요한 정보를 저장하기 위해 고안한 계층형 데이터베이스
- 레지스트리 포렌식 분석의 필요성
윈도우 시스템 분석의 필수 요소
사용자/시스템/저장매체 사용 흔적 분석 -> 추가적인 포렌식 분석 대상 선별
- 온라인 레지스트리 분석
활성시스템에서의 레지스트리 분석
- 오프라인 레지스트리 분석
비활성시스템(포렌식 복제 드라이브나 이미지)에서의 레지스트리 분석
- 하이브 파일이란?
레지스트리 정보를 저장하고 있는 물리적인 파일
키 값들이 논리적인 구조로 저장
활성시스템의 커널에서 하이브 파일을 관리
- 하이브 셋
활성시스템의 레지스트리를 구성하는 하이브 파일 목록
- 레지스트리 루트 키 (Registry Root Keys)
루트키 약어 설명
HKEY_CLASSES_ROOT HKCR 파일 확장자 연결 및 프로그램 연관 설정 (Classes 모음)
HKEY_CURRENT_USER HKCU 현재 로그인한 사용자의 개인 설정 및 환경설정 (하위키 많음)
HKEY_LOCAL_MACHINE HKLM 시스템 전체에 적용되는 설정 (하드웨어, 소프트웨어 정보 등)
HKEY_USERS HKU 시스템에 등록된 모든 사용자들의 프로필 설정 저장
HKEY_CURRENT_CONFIG HKCC 하드웨어 프로필 관련 현재 설정값 저장
HKEY_PERFORMANCE_DATA HKPD 시스템 성능 정보 저장 (레지스트리 편집기 접근 불가, 함수로만 접근)
- 주요 하위키 설명
HKEY_CURRENT_USER (HKCU) 하위키
• AppEvents: 사용자 이벤트 소리 설정
• CLSID: COM 객체 연결 정보
• Console: 콘솔(명령 프롬프트) 창 설정
• ControlPanel: 제어판 설정 (테마, 키보드, 마우스 설정 등)
• Environment: 환경 변수 설정
• EUDC: 사용자 정의 문자
• Identities: 이메일 계정 정보
• Keyboard Layout: 키보드 레이아웃 설정
• Network: 네트워크 드라이브 연결 설정
• Printers: 프린터 설정
• Software: 사용자용 설치 소프트웨어 목록
• System: 시스템 관련 설정
• UNICODE Program Groups: 사용자 시작 메뉴 그룹
• Volatile Environment: 휘발성 환경 변수 (부팅 시만 유효)
HKEY_LOCAL_MACHINE (HKLM) 하위키
• BCD00000000: 부팅 설정 데이터 (Boot Configuration Data)
• COMPONENTS: 설치된 소프트웨어 컴포넌트 정보
• HARDWARE: 하드웨어 디스크립션, 드라이버 매핑 (휘발성 하이브)
• SAM: 로컬 사용자 계정 정보 (접근 제한)
• SECURITY: 시스템 보안 정책 정보 (접근 제한)
• SOFTWARE: 시스템 전체 소프트웨어 정보
• SYSTEM: 부팅 및 시스템 운영에 필요한 설정
- 성능 관련 레지스트리 (HKEY_PERFORMANCE_DATA)
• 시스템 성능 모니터링 데이터 제공
• 운영체제나 애플리케이션이 실시간으로 데이터를 조회할 때 사용
• 레지스트리 편집기로 직접 볼 수 없음 → RegQueryValueEx() 함수 등을 통해 접근
- 트랜잭션 레지스트리 (Transactional Registry, TxR)
• Windows Vista부터 적용
• 레지스트리 작업을 트랜잭션처럼 관리할 수 있게 해 오류 복구 가능
• 주요 API:
• RegOpenKeyTransacted
• RegCreateKeyTransacted
• RegDeleteKeyTransacted
2. 레지스트리 획득
1. 온라인 하이브 파일 획득
- 일반적 불가: 레지스트리 파일은 시스템 커널이 열고 있어서 직접 복사 불가.
- 방법:
- 파일 시스템 직접 해석
- DeviceControl() API 이용
- 하이브 목록 위치 확인:
→ HKLM\SYSTEM\CurrentControlSet\Control\hivelist
2. 오프라인 하이브 파일 획득
- 복제 저장매체 또는 이미징 데이터에서 하이브 파일 추출
- 파일 경로:
- 시스템 하이브: %SystemRoot%\System32\Config
- 사용자 하이브: %UserProfile%
- 사용자 프로필 목록 확인:
→ HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
백업 및 로그 하이브
- 운영체제에 의해 자동 생성되는 백업/로그 하이브 파일 존재
- 백업 하이브 경로:
→ %SystemRoot%\System32\config\RegBack - 로그 하이브 경로:
→ %SystemRoot%\System32\config (확장자: .LOG, .LOG1, .LOG2) - 특징:
- 기본 하이브와 동일한 구조
- 기존 하이브 파일의 일부 정보만 저장
3. 레지스트리 내부
1. 하이브 블록 (Hive Block)
- 하이브에서 사용하는 논리적 단위 (파일시스템 클러스터 유사)
- 크기: 4,096 바이트
- 특징:
- 새로운 데이터 추가 시 블록 단위로 증가
- 첫 블록은 Base Block이며, 주요 정보 포함:
- 시그니처(regf)
- 갱신 순서 번호
- 마지막 수정 시간
- 복원/복구 정보
- 버전 번호
- 체크섬, 파일명 등
2. 하이브 빈 (Hive Bin)
- 레지스트리 로드시 기본 단위
- 크기 구조: 4,096바이트 내부구조
- 시그니처: "hbin"
3. 셀 (Cell)
- 하이브 내부 다양한 데이터 저장 구조
| <데이터 유형> | <설명> |
| 키 셀 (Key Cell) | 키 정보, 타임스탬프, 부모 키 인덱스 등 저장 |
| 값 셀 (Value Cell) | 값 정보(형태, 이름 등) 저장 |
| 하위키 목록 셀 (Subkey-list Cell) | 하위 키들의 인덱스 저장 |
| 값 목록 셀 (Value-list Cell) | 모든 값들의 인덱스 저장 |
| 데이터 셀 (Data Cell) | 실제 데이터 저장 |
| 보안 기술자 셀 (Security-descriptor Cell) | 보안 정보 저장 |
4. 레지스트리 복구
1. 삭제된 레지스트리 복구
- 레지스트리 하이브 내부에서 삭제된 레지스트리 복구
- Windows 레지스트리 API로 키(Key)를 삭제하면 링크 정보만 삭제되고
- 실제 데이터는 하이브 파일 내 비할당 영역에 그대로 유지
- → 따라서 삭제된 키 복구 가능
2. 레지스트리 데이터 카빙
- 메모리나 저장매체의 비할당 영역에서 레지스트리 데이터 수집
- 물리 메모리 상 커널 영역에 매핑된 레지스트리 데이터 존재 가능
- 응용 프로그램 실행/삭제 중 생성된 레지스트리 데이터 수집 가능
- 비할당 영역에서도 포맷/복구 실패한 시스템에서 잔존 가능 (특히 Windows 2000/XP)
5. 레지스트리 분석
레지스트리 디지털 포렌식 분석 의미
- 윈도우 설치 정보, 계정 정보 확인 가능
- 부팅 시 자동 실행 프로그램 목록 확인 → 악성코드 분석 가능
- 최근 사용 파일, 실행 프로그램 내역 확인 → 사용자 활동 추적
- 응용 프로그램 설치 및 사용 내역 확인
- 시스템 하드웨어 정보 확인
- 추가 포렌식 분석 대상 선택 가능
-> 윈도우 포렌식 분석의 필수 요소 중 하나로, 굉장히 중요함.
(분석 종류 너무 많아서 생략....)
6. 레지스트리 보안
1. 레지스트리 설정 - 키 권한 설정
- 레지스트리 키별로 접근 권한 설정 가능
- 레지스트리 편집기(regedit)에서 직접 '사용 권한' 메뉴를 통해 설정
- 기본적으로 다음 권한 제어:
- 모든 권한
- 읽기 권한
- 특별 권한
2. 키 권한 설정 관련 API
- RegCreateKeyEx()
- 키 생성 시 보안 및 접근 권한 mask 설정 가능
- RegOpenKeyEx()
- 키 열기
- RegCreateKeyTransacted(), RegOpenKeyTransacted()
- 트랜잭션 기반 레지스트리 작업 지원
- RegCreateKeyEx 함수 주요 인자
- REGSAM samDesired: 키 보안 및 접근 권한을 설정하는 필드
3. 고급 보안 설정
- 고급 보안 탭에서 사용 권한, 감사(Audit), 소유자 설정 가능
- 세부 항목:
- SYS (SYSTEM 계정) 권한
- 관리자(Administrators) 권한
- 부모 키에 대한 권한 상속 여부 설정 가능
4. 악성코드와 레지스트리
| 악성코드 흔적 위치 | 설명 |
| AppInit_DLLs (HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows) | GUI 프로그램 실행 시 자동으로 로드되는 DLL 지정. 값이 존재하면 악성 가능성 높음 |
| Command Processor\AutoRun (HKLM\SOFTWARE\Microsoft\Command Processor) | 명령 프롬프트 실행 시 특정 응용프로그램 자동 실행 지정 |
| exefile\shell\open\command (HKLM\SOFTWARE\Classes\exefile\shell\open\command) | 실행 파일 열 때 기본 실행 명령어 지정. 변조되면 다른 프로그램 실행 유도 가능 |
5. 완전 삭제 (Wiping)
- 삭제된 레지스트리 키 복구 불가하도록 완전 삭제 필요
- API를 통한 일반 삭제로는 불완전하며, 삭제 동작 시 하이브 파일 내에서 해당 데이터 완전 삭제해야 함
'인프런' 카테고리의 다른 글
| [인프런] 31. MUICache ~32. AmCache & ShimCache (0) | 2025.07.14 |
|---|---|
| [인프런] 26강 MFT 개념 및 실습 ~ 28강 바로가기(.LNK) 개념 및 실습 & 바로가기 파일 포렌식 (LNK Forensics) (1) | 2025.05.20 |
| [인프런] 4주차. 디지털 증거 획득 (Digital Evidence Acquisition) & 디지털 증거 수집 방안 (Digital Evidence Collection) (0) | 2025.05.06 |
| [인프런] 메모리 포렌식 (0) | 2025.04.08 |
| <인프런 - 기초부터 따라하는 디지털포렌식 (손지훈)> (0) | 2025.04.08 |