침해 이미지를 분석할 때 시스템이나 사용자에 대한 정보를 조사하기 위해 항상 레지스트리를 살피고는 했다.

그리고는 그 때마다 필요한 레지스트리만을 검색하여 보는게 다였는데, 이 참에 한번 정리해야겠다 싶어 글을 작성하였다.

 

Registry 란?

Registry는 Windows 운영체제에서 응용 프로그램과 시스템이 설정 데이터를 쉽게 저장하고 검색할 수 있도록 하기 위한 계층형 데이터베이스이다.

Registry는 계층형 데이터베이스인만큼 트리 형태로 구성되어 있다.
트리의 각 노드는 key라고 하고, 각 key는 subkey를 가질 수도 있고 value라는 데이터를 가질 수도 있다.

이를 레지스트리 편집기 상에서 보면 아래 이미지와 같다.
HKEY_LOCAL_MACHINE key는 HARDWARE, SOFTWARE 등과 같은 subkey를 가질 수 있으며, 이 중 SOFTWARE key는 다시 Bandizip 이라는 subkey를 가진다. 이 subkey는 AutoReport, Edition 등과 같은 value를 가지면서 동시에 Capabilities와 같은 subkey를 가진다.

 

Predefined Keys

이렇듯 레지스트리 내에는 수많은 key들이 존재하는데, 이 중 운영체제에 의해 미리 정의된 key가 있다. Microsoft 공식 문서에 의하면 미리 정의된 key의 종류는 Windows 버전에 따라 다를 수 있다고 한다. 확인해본 버전 중 Windows XP 부터 11까지는 다음의 5개의 predefined key를 가진다.

  1. HKEY_CLASSES_ROOT (HKCR)
  2. HKEY_CURRENT_USER (HKCU)
  3. HKEY_LOCAL_MACHINE (HKLM)
  4. HKEY_USERS (HKU)
  5. HKEY_CURRENT_CONFIG (HKCC)

 

HKEY_CLASSES_ROOT

ProgID, CLSID, IID와 같은 파일 이름 확장자 정보와 COM 클래스 등록 정보를 가지는 key이다. HKLM과 HKCU에도 이 정보가 담겨져 있으나, 두 군데에 저장된 정보의 병합된 결과가 이 key의 하위에 저장한다.

  • HKLM\Software\Classes: 로컬 컴퓨터 내 모든 사용자에게 적용될 수 있는 정보
  • HKCU\Software\Classes: 로컬 컴퓨터 내 현재 사용자에게만 적용될 수 있는 정보

 

HKEY_CURRENT_USER

현재 로그인한 사용자의 기본 설정 정보를 가지는 key이다. HKU key의 현재 사용자 정보와 동일한 정보를 가진다.

  • 설정 정보: 환경 변수 설정, 프로그램 그룹에 대한 데이터, 테마, 프린터, 네트워크 연결, 응용 프로그램 기본 설정 등

 

HKEY_LOCAL_MACHINE

컴퓨터의 물리적 상태 정보를 가지는 key이다.

  • 물리적 상태 정보: 버스 유형, 시스템 메모리, 설치된 하드웨어 및 소프트웨어 정보
    • Plug&Play 정보, 네트워크 로그온 기본 설정, 네트워크 보안 정보, 소프트웨어 관련 정보, 기타 시스템 정보

 

HKEY_USERS

로컬 컴퓨터 내 기본 사용자와 현재 사용자에 대한 사용자 설정 정보를 가지는 key이다.

 

HKEY_CURRENT_CONFIG

현재 하드웨어 프로필에 대한 정보를 가지는 key이다.

  • HKLM과 달리, 현재 하드웨어 구성과 표준 하드웨어 구성 간의 차이점에 대한 정보만 가진다.

 

 

Registry Hive

앞서 보인 것과 같이 key, subkey, value의 논리적 집합을 hive(하이브)라고 부른다.
운영체제가 시작되거나 사용자가 로그인할 때 메모리에 로드되는 설정 파일 집합을 말한다. 새로운 사용자가 로그인할 때마다 해당 사용자에 대한 새 사용자 프로필 하이브가 HKU key의 하위에 생성된다.

로컬 컴퓨터 상에서 레지스트리 하이브 파일 경로: %SystemRoot%\System32\Config directory

 

주요 Key 경로

(계속 업데이트 중)

 

시스템 정보

  • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    • RegisterOwner
      • 윈도우 운영체제를 설치하는 과정에서 최초로 등록한 사용자의 계정명
      • 이후 또 다른 계정을 생성해도 변경되지 않고 최초 등록된 계정명으로 표시된다.
    • ProductName
      • Windows 11도 Windows 10으로 표시된다..
    • InstallDate
      • 운영체제 설치한 시각
      • InstallDate값이 변경될 경우, 이전 업데이트 날짜를 아래 경로에 저장한다.
        • HKLM\SYSTEM\Setup\Source OS (Updated on dd/mm/yyyy hh:mm:ss)

 

  • HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters
    • HostName
      • 컴퓨터 이름
      • Windows 10부터는 사용자가 직접 설정하지 않아도 윈도우 운영체제에서 자동으로 컴퓨터 이름을 설정하기도 한다.

 

  • HKLM\SYSTEM\ControlSet001\Control\Windows
    • ShutdownTime
      • 마지막 종료 일시
      • 사용자가 시스템을 정상적으로 종료한 시각으로 기록된다.

 

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI
    • LastLoggedOnSAMUser
      • 마지막 로그아웃 일시
      • 비정상적 종료로 인해 데이터를 신뢰할 수 없을 경우가 있어 NTUSER.DAT key의 마지막 수정 시간과 일치하는지 확인해야 한다. 일치하지 않을 경우 마지막 로그인 일시로 판단해야 한다.

 

시스템 표준 시간

  • HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
    • 시스템 표준 시간 관련 정보를 가지는 key
    • CurrentControlSet이 없는 경우 ControlSet001을 확인하면 된다.
    • 관련 포스트: https://note-ing.tistory.com/43
 

Windows Registry Timezone과 SYSTEM Control registry 백업 원리 분석

Windows Registry 내에서 시스템의 Timezone을 확인하기 위해서는 다음과 같은 키의 값을 확인하면 된다. HKLM\SYSTEM\CurrentControlSet\Control\TimezoneInformation [TimeZoneKeyName] 그러나 간혹 레지스트리 경로 내 Curren

note-ing.tistory.com

 

사용자 계정 정보

  • LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
    • S-1-5-18: System profile
    • S-1-5-19: LocalService
    • S-1-5-20: NetworkService
    • S-1-5-21-{...}-{4자리숫자}
      • 500: Administrator
      • 1000이상: 실제 사용자 계정

 

  • HKU\{SID}\Environment
    • 사용자의 환경 설정 정보

 

Autorun 자동 실행 프로그램 정보

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
    • Run: 시스템이 부팅될 때마다 실행
    • RunOnce: 한번만 실행
  • 관련 포스트: https://note-ing.tistory.com/46
 

Windows AutoRun program artifact 분석 (Win7/10)

기본적으로 Windows OS에서 등록된 자동 실행 프로그램은 Run 레지스트리를 통해 확인할 수 있는 것으로 알고 있었다. 그리고 실제로 레지스트리를 통해 자동 실행이 되도록 설정된 프로그램을 확

note-ing.tistory.com

 

응용 프로그램 실행 흔적

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
    • UserAssist
      • 최근에 실행된 프로그램 정보
      • Prefetch 파일과 연계하여 분석할 
      • 조사하고자 하는 프로그램의 GUID를 알아야 하며, Count 내 정보는 ROT13으로 난독화되어 있다.
        • AXIOM과 같은 프로그램을 이용하여 난독화된 내용을 손쉽게 확인할 수 있다.

UserAssist Count subkey의 keyname과 value 구조

 

 


참고 자료

 

+ Recent posts