본문 바로가기

인프런

[인프런] 강의섹션3. 침해사고 대응기법, 해커의 발자취를 찾아라 ~ 섹션4. 윈도우 포렌식, 깊게 들어가 보아요 & 레지스트리 포렌식과 보안 (Registry Forensics)

기초부터 따라하는 디지털포렌식 | 학습 페이지

 

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)

 

https://github.com/proneer/Slides/blob/master/Windows/%28FP%29%20%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC%20%ED%8F%AC%EB%A0%8C%EC%8B%9D%EA%B3%BC%20%EB%B3%B4%EC%95%88%20%28Registry%20Forensics%29.pdf

 

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를 통한 일반 삭제로는 불완전하며, 삭제 동작 시 하이브 파일 내에서 해당 데이터 완전 삭제해야 함