본문 바로가기

Forensic/윈도우포렌식

레지스트리 포렌식(1)

1. 레지스트리란? 

 윈도우 운영체제에서 하나 이상의 사용자, 응용 프로그램 및 하드웨어 장치에 맞게 시스템을 구성하는데 필요한 정보를 저장하는 중앙계층형 데이터베이스이다. 레지스트리를 분석하면 사용자의 프로필 , 설치된 응용프로그램 정보, 프로그램 실행 흔적, 무선네트워크 , USB 연결 흔적등이 남기 때문에 윈도우 포렌식 분약의 주요 아티팩트이다. 

 

(1)레지스트리 구조 

레지스트리 구조

(2)Hive Key

-root key 라고도 하며 하이브 키는 HKEY로 시작한다.

-HKEY란 Hive key를 뜻하며 HKLM과 같이 HK로 줄여서 표현되기도 한다.

하이브 키  약자  설명 원본
HKEY_CLASSES_ROOT HKCR 파일 확장자, 응용 프로그램 간 바인딩 정보 등이 저장되어 있다.  HKU를 참조
HKEY_CURRENT_USER HKCU 현재 로그인한 사용자의 설정을 저장 HKU를 참조
HKEY_LOCAL_MACHINE HKLM 사용자가 아닌 시스템 전체에 적용되는 하드웨어와 소프트웨어의 설정 데이터를 저장 실제 파일로 존재
HKEY_USER HKU 커퓨터에서 사용중인 프로파일 정보 및 프로파일 기본설정 등을 저장  실제 파일로 존재 
HKEY_CURRENT_CONFIG HKCC 컴퓨터 실행 시 하드웨어 프로파일을 저장 HKLM를 참조
HKEY_PERFOMANCE_DATA HKPD 런타임 성능 데이터 정보를 제공(윈API를 통해서 접근 가능) 메모리 상에 존재
HKEY_DYN_DATA HKDD 플러그앤 플레이, 하드웨어 장치, 네트워크 성능 통계에 대한 정보를 제공 메모리 상에 존재

HKLM과 HKU를 Master key라고 하며 나머지 키를 Derived key라고 불린다.

 *HKCU는 HKU의 심보릭 정보로 구현되어 있는데 이와같은 상황에서 HKU 보다 HKCU를 우선 참조한다.

 

레지스트리 추출 시 하이브 파일의 경로 

레지스트리 분석을 이미지징된 디스크에서 진행할 경우에는 직접 레지스트리 하이브셋을 추출하여 분석을 진행해야한다. 

HKLM과 HKU의 경우 해당 노드를 구성하는 정보는 파일로 윈도우 시스템 드라이브 내 존재한다. 

windows NT 4.0 이후의 HKLM을 구성하는 하이브파일(SAM, SOFTWARE등)은 %systemroot%\System32\Config 폴더에 저장된다.  HKU를 구성하는 하이브파일은 %systemroot%\System32\Config 와 각 계정의 %userprofile%과 %localappdata%\Microsoft\Windows 에 저장되어 있다. 

 

Hive ? 레지스트리 정보를 저장하고 있는 물리적인 파일로 C:\WINDOWS\System32\Config 폴더에 저장된다. 일반적으로 DEFAULT, SAM , SECURITY, SOFTWARE, SYSTEM 에 확장자 명이 없는 파일로 나누어져 보관된다. 

 

- DEFAULT(C:\WINDOWS\System32\config)

제어판, 키보드, 키보드 레이아웃과 같은 기본 정보

관련 하이브 파일: default, default.LOG, default.SAV

해당 레지스트리 키: HKEY_USER/DEFAULT

 

- SAM(C:\WINDOWS\System32\config)

로컬 계정과 그룹 정보

관련 하이브 파일: SAM, SAM.LOG, SAM.SAV

해당 레지스트리 키: HKEY_LOAL_MACHINE/SECURITY/SAM, HKEY_LOCAL_MACHINE/SAM

 

- SECURITY(C:\WINDOWS\System32\config)

시스템의 보안과 권한 관련 정보

관련 하이브 파일: SECURITY, SECURITY.LOG, SECURITY.SAV

해당 레지스트리 키: HKEY_LOCAL_MACHINE/SECURITY

 

- SOFTWARE(C:\WINDOWS\System32\config)

시스템 부팅과 관련 없는 전역 설정 정보

관련 하이브 파일: software, software.LOG, software.SAV

해당 레지스트리 키: HKEY_LOCAL_MACHINE/SOFTWARE

 

- SYSTEM(C:\WINDOWS\System32\config)

시스템 부팅에 필요한 전역 설정 정보

관련 하이브 파일:system, system.LOG, system.SAV

해당 레지스트리 키: HKEY_LOCAL_MACHINE/SYSTEM, HKEY_CURRENT_CONFIG

 

사용자별로 유지해야 하는 정보는 사용자 프로파일 폴더(%UserProfile%) 하위에 저장된다.

 

- NTUSER.DAT(C:\Users\사용자이름\NTUSER.DAT): 사용자별 설정 정보  HKEY_USER\(userSID)

- UsrClass.dat(C:\Users\사용자이름\AppData\Local\Microsoft\Windows\UsrClass.dat): 사용자별 애플리케이션 바인딩 정보 HKEY_USER\(user SID)_Classes

 

HKU의 하이브 파일은 분석대상의 홈디렉터리에 NTUSER.DAT 과 UsrClass.dat 를 수집해야하며 윈도우 시스템에서 사용중인 계정에 대해서도 수집하는 것이 좋다. SYSTEM 계정의 홈 디렉터리는 HKLM을 구성하는 하이브 파일과 같은 디렉터리 (%systemroot%\system32\config\)內 systemprofile 폴더이며 LOCAL SERVICE, NETWORK SERVICE 계정의 홈디렉터리는 %systemroot%\ServiceProfiles\ 에 위치해 있다.

 

*레지스트리의 하이브 파일이 저장되는 가장 정확한 위치는 

HKLM\SYSTEM\CurrentControlSet\Control\Hivelist

 

HKLM\SYSTEM\CurrentControlSet\Control\Hivelist

 

(3)Key

-255자 이하의 길이를 가지며 수많은 서브키를 가지고 있다. 각 키는 값(Entry Name)을 가지고 있다.

-64비트 버전의 윈도우일 겨우 레지스트리는 32비트 , 64비트 키로 나누어져 있으며 대부분은 키 이름이 동이랗다.

-64비트 환경에서 32 비트의 키는 HKLM\Software\WOW6432Node의 서브키로 존재한다. 

 

 (4)Sub key

 - 키의 하위에 존재하는 키이다.

 - 예를 들어 HKLM\Software\Microsoft\windows는 "HKLM 키의 Software 서브키의 Microsoft 키의 Windows 라는 서브키를 가르킨다. " 라고 표현이 가능하다.

 - 위와 같이 키, 서브키는 \를 사용하여 계급 수준을 구분한다.

 

레지스트리 값 종류 목록

0 REG_NONE 종류 없음
1 REG_SZ 문자열 값
2 REG_EXPAND_SZ 확장할 수 있는 문자열 값. 환경 변수를 포함할 수 있음.
3 REG_BINARY 이진 값
4 REG_DWORD/REG_DWORD_LITTLE_ENDIAN DWORD 값(32bit) 정수(리틀엔디언)
5 REG_DWORD_BIG_ENDIAN DWORD 값(32bit) 정수(빅엔디언)
6 REG_LINK 심볼 링크(유니코드)
7 REG_MULTI_SZ 다중 문자열 값(고유한 문자열 배열)
8 REG_RESOURCE_LIST 리소스 목록
9 REG_FULL_RESOURCE_DESCRIPTOR 리소스 서술자
10 REG_RESOURCE_REQUIRMENTS_LIST 리소스 요구 목록
11 REG_QWORD/REG_QWORD_LITTLE_ENDIAN QWORD 값(64bit 정수)

https://ko.wikipedia.org/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC

 

HKCU 서브키

- AppEvents: 윈도우와 윈도우용 프로그램이 사용하는 각 이벤트에 대한 효과음 등을 사운드 관련 정의

- Console: 명령 프롬포트 설정 정보

- Control Panel: 환경 설정 정보

- Environment: 환경 변수 정의

- EUDC(End User Defined Characters): 사용자 정의 문자 편집기

- Identities: 윈도우 메일 계정 정보

- Keyboard Layout: 키보드 레이아웃 설정 정보

- Network: 네트워크 드라이브 매핑 정보 및 환경 설정 값

- Printers: 프린터 연결 정보

- Session Information: 한 세션에서 동작 중인 프로그램 중에서 작업표시줄에 보이는 프로그램 숫자

- Software: 현재 로그온한 사용자와 관련 있는 SW 목록

- Volatile Environment: 휘발성 환경 변수 정의

 

HKLM 서브키

- HARDWARE: 메모리 상에 저장되며(컴퓨터를 부팅해야만 알 수 있는 정보이거나 일회적으로 사용되는 정보) 어떤 HW가 장착되어 있는지 확인할 수 있을 뿐 세부적인 내용이 없음

- SAM: 사용자의 패스워드, 소속 그룹, 도메인 정보와 같은 로컬 계정 정보와 그룹 정보를 저장, 

- SECURITY: 시스템 범위의 보안 정책과 사용자 권리 할당 정보를 저장

- SOFTWARE: 시스템 범위의 소프트웨어 목록과 환경 설정 정보(어플리케이션 이름, 경로, 라이센스 정보 등) 저장

- SYSTEM: 부팅될 때 필요한 시스템 범위의 환경 설정 정보 저장(로드할 디바이스 드라이버, 시작 서비스 목록 등)

 

HKU 서브키

- .DEFALUT: 시스템의 프로파일과 링크, 새로운 사용자가 로그온할 때 사용하는 설정 내용

- 로컬 서비스 계정 SID

- 네트워크 서비스 계정 SID

- 사용자의 SID:

- 사용자의 SID_Classes

 

(5)기타

Entry Name : name, value 라고도 표현한다. key에 존재하는 값이 들어가 있다. 

Data Type : value를 표현하기 위한 자료형이다. 

Value 

  - Entry Name의 값이다.

  - value 64kb 이하여야 한다.

 

 

 

 

'Forensic > 윈도우포렌식' 카테고리의 다른 글

레지스트리 포렌식(2)  (0) 2021.11.09