본문 바로가기

[Forensic] Registry

@myeongsang2025. 10. 1. 00:36
반응형

1. Registry


레지스트리(Registry)란, Windows에서의 모든 정보가 저장되는 계층형 데이터베이스 입니다. 이런 레지스트리는 모든 정보(ex.환경변수, 시스템 시간, 버전, USB연결 흔적 등등의 정보) 를 담고 있는 만큼 디지털 포렌식 관점에서 봤을때 매우 중요한 아티팩트 로 여겨집니다.

 

2. Regedit


기본적인 부분 부터 봐보겠습니다. Windows 상에서 레지스트리 편집기(Regedit)으로 들어가 줍니다. 들어가는 방법은 Windows + R 누른후 regdit 을 입력하시면 레지스트리 편집기가 켜지실겁니다.

Registry Edit

그럼 기본적인 부분에 대해서 알아보겠습니다.

 

3. Registry Structure


  • Root Key : 레지스트리의 최상위 키를 의미합니다.
  • Key : 레지스트리에서 폴더처럼 데이터를 가지고 있는것을 의미합니다.

 

  • Value: 파일처럼 키에 속한 값의 이름 입니다.
  • Type : 데이터의 형식/종류를 지정합니다. 
    • REG_SZ : 문자열
    • REG_DWORD: 32비트 숫자
    • REG_QWORD: 64비트 숫자
    • REG_BINARY: 바이너리 데이터
    • REG_MULTI_SZ: 여러 줄의 문자열
    • REG_EXPAND_SZ: 환경변수 포함한 문자열
  • Data : value가 가지고 있는값을 말합니다. 한마디로 저장된 값 을 의미합니다.
    • Type에 따라서 다른 형식으로 표시됩니다. REG_SZ -> Windows10/ REG_BINARY -> F3 A2 DD

 

다시 돌아가서 Root Key 부분을 보겠습니다.

3.1 Root Key

Root Key는 레지스트리에 5개가 있습니다. 또한 Root Key는 Hive Key라고 도 불려서 줄여서 HKEY 라고 합니다. 밑에 사진과 같이 Root Key 5개가 보입니다.

Root Key

Root Key는 각자 역할이 있습니다.

Root Key Abbreviation Description
HKEY_CLASSED_ROOT HKCR 파일 확장자 연결 정보, COM객체 등록 정보
HKEY_CURRENT_USER HKCU 현재 로그온한 사용자의 구성 정보 루트를 포함합니다. 사용자의 폴더, 화면색상, 제어판 설정들이 여기에 저장됩니다. 이정보는 사용자 프로필과 연결되어 있습니다.
HKEY_LOCAL_MACHINE HKLM 모든사용자에 대한 컴퓨터 고유의 구성 정보(하드웨어, 소프트웨어 설정 및 기타 환경)를 포함합니다.
HKEY_USERS HKU 컴퓨터에 현재 활성화되어 로드된 모든사용자 프로필을 포함합니다.
HKEY_CURRENT_CONFIG HKCC 시스템 시작 시 로컬 컴퓨터가 사용하는 하드웨어 프로필에 대한 정보를 포함합니다.

위의 표의 보면 여기서 주요한 키는 HKCU, HKLM입니다.

 

HKCU Key Description
AppEvents 시스템 소리 및 이벤트 알림 설정
Console 명령 프롬프트 와 PowerShell의 개인 설정
Neywork 사용자가 연결한 네트워크 드라이브 매핑정보
Printers 프린터 설정 및 연결 정보
SoftWare 사용자가 설치/사용 하는 모튼 프로그램 개인 설정
System 사용자별 시스템 설정 ex.화면 해상도, 볼륨 설정 등..

 

HKLM Key Description
HARDWARE 현재 연결된 하드웨어 정보
SAM(security Account Manager) 로컬 사용자 계정 정보
SECURITY 시스템 전체 보안 정책
SOFTWARE 시스템 전체 소프트웨어 설정(설치된 프로그램의 정보 등등)
SYSTEM 시스템 구성 및 제어 정보

 

4. Key Registry Paths

4.1 Timezone

File Path: HKLM\SYSYEM\CurrentControlSet\Control\TimeZoneInformation

위 사진을 보시면 Bias 음수로 표현되시는걸 알 수 있을겁니다. Bias값이 0xfffffde4 인데 10진수로 바꿔보면 -540 이고 540분을 9시간을 보고 현재 시스템 시간에서 9시간을 빼면 UTC가 됩니다.(UTC+9)

 

4.2 Systeminfo

File Path: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion

해당 경로는 현재 시스템의 다양한 정보들을 알 수 있는 경로입니다. 예로들어 버전정보, 설치정보 등이 저장됩니다.

 

  • BuldLab : OS 버전
  • installData : Windows 설치 시간
  • InstallTime : Windows 설치 시간
  • DisplayVersion : Windows 버전

이런 정보들은 Systeminfo 명령어로도 얻을 수 있습니다.

 

4.3 Autoruns

Autoruns는 컴퓨터가 재부팅 될때 자동으로 실행하는 프로그램을 의미하며, 해당 경로는 악성코드가 시스템에 침투했을 겨우에 실행 파일을 넣어두고 컴퓨터가 재부팅될때 마다 되살아 나도록 자주 사용되는 부분입니다.

 

File Path ㄱ

ㄴ 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

 

4.4 User Account

해당 부분은 시스템에 존재하는 모든 사용자의 계정 목록을 흭득 할 수 있습니다.

File Path: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

 

ProfileList 에서 계정은 단 1개 입니다. Windows에서 기본으로 만들어주는 계정이 존재하기 때문입니다.

  • S - 1 - 5 - 18 : SystemProfile
  • S - 1 - 5 - 19 : LocalService
  • S - 1 - 5 - 20 : NetworkService
  • S - 1 - 5 - 21 .....1001 : 사용자가 만든 계정

여기서 Sid라는 것을 볼 수 있습니다. Sid는 하나의 Windows 시스템에서 사용자 별로 고유한 ID를 부여한 값입니다. 맨마지막 부분을 보면 500은 Adminstrator, 501은 Guest, 일반사용자는 1000이상의 값을 갖습니다.

해당 LocalProfileLoadTimeHigh, LocalProfileLoadLow 조합으로 사용자 계정의 최종 로그온 시간을 Dcode로 통해 알 수 있습니다.

 

4.5 Environment variable

환경 변수는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모인 입니다.

 

사용자 계정 환경변수 File Path : HKCU\Environment시스템 환경 변수 File Path : HKLM\SYSTEM\CurrentControlSet\Control\Sesstion Manager\Environment

 

악성코드에서 스크립트 실행시 환경 변수에 값들을 숨겨놓는 경우가 있기에 주요한 데이터 입니다.

 

4.6 기기 연결 흔적

디지털 포렌식 분야에서 가장 주요한 데이터는 기기 연결 흔적입니다. 레지스트리 분석을 통해서 USB 제품명, Serial Number 등 알아 낼 수 있습니다. 경로는 다음과 같습니다.

 

  • File Path ㄱ
    • HKLM\SYSTEM\ControlSet00?\Enum\USB
    • HKLM\SYSTEM\ControlSet00?\Enum\USBTOR
    • HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Devices
    • C:\Windows\INF\setupapi.dev.log

4.6.1 HKLM\SYSTEM\ControlSet00?\Enum\USB

위 사진에서 VID_XXXX&PID_XXXX 형태의 구조가 보이는데 해당 구조는 USB 제조사 ID와 제품 ID를 의미합니다. 이러한 VID/PID를 통해서 연결된 USB장치를 식별 할 수 있습니다.

 

4.6.2 HKLM\SYSTEM\ControlSet00?\Enum\USBTOR

USB 저장 장치는 해당 경로에 저장됩니다. 여기서 Ven_XXXXX&Prod_XXXXX&Rev_XXX형태를 가지고 제조사, 제품, 버전 을 의미합니다.

 

4.6.3 HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Devices

해당 경로에서 Frendly Name 필드에서 시스템에 마운트된 볼륨 이름을 확인 할 수 있습니다.

 

4.6.4 C:\Windows\INF\setupapi.dev.log

레지스트리 이외에도 해당 경로에 USB흔적 관련 정보도 흭득 할 수 있습니다.

 

5. Reference

https://lemonpoo22.tistory.com/133

 

Windows Registry

레지스트리를 배우기 전에 먼저, 윈도우 아티팩트(Windows Artifacts)에 대해서 배워보겠습니다. 윈도우 아티팩트란? Windows가 가지고 있는 특유의 기능들과 그 기능을 구현하는데 필요한 요소 Windows

lemonpoo22.tistory.com

 

반응형

'Field > Digital Forensic' 카테고리의 다른 글

[Forensic] Event Log  (0) 2025.10.03
[Forensic] $LogFile, $UsnJrnl  (0) 2025.10.02
[Forensic] Windows Artifact  (0) 2025.09.29
[Forensic] NTFS Analysis  (0) 2025.09.27
[Forensic] FAT32 Analysis  (0) 2025.09.19
myeongsang
@myeongsang :: myeongsang

myeongsang's security

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차