침해 이미지를 분석할 때 시스템이나 사용자에 대한 정보를 조사하기 위해 항상 레지스트리를 살피고는 했다.
그리고는 그 때마다 필요한 레지스트리만을 검색하여 보는게 다였는데, 이 참에 한번 정리해야겠다 싶어 글을 작성하였다.
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를 가진다.
- HKEY_CLASSES_ROOT (HKCR)
- HKEY_CURRENT_USER (HKCU)
- HKEY_LOCAL_MACHINE (HKLM)
- HKEY_USERS (HKU)
- 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)
- RegisterOwner
- HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters
- HostName
- 컴퓨터 이름
- Windows 10부터는 사용자가 직접 설정하지 않아도 윈도우 운영체제에서 자동으로 컴퓨터 이름을 설정하기도 한다.
- HostName
- HKLM\SYSTEM\ControlSet001\Control\Windows
- ShutdownTime
- 마지막 종료 일시
- 사용자가 시스템을 정상적으로 종료한 시각으로 기록된다.
- ShutdownTime
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI
- LastLoggedOnSAMUser
- 마지막 로그아웃 일시
- 비정상적 종료로 인해 데이터를 신뢰할 수 없을 경우가 있어 NTUSER.DAT key의 마지막 수정 시간과 일치하는지 확인해야 한다. 일치하지 않을 경우 마지막 로그인 일시로 판단해야 한다.
- LastLoggedOnSAMUser
시스템 표준 시간
- 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
참고 자료
- https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry
- https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc781906(v=ws.10)
'DFIR > Forensic Artifacts' 카테고리의 다른 글
Windows Prefetch 개요와 File Format (0) | 2023.09.18 |
---|---|
Windows AutoRun program 아티팩트 분석 (Win7/10) (0) | 2023.07.10 |
Windows Registry Timezone과 SYSTEM Control registry 백업 원리 분석 (0) | 2023.06.30 |
SQLite record 삭제 체계 분석과 record 복구까지... 하려다 안티포렌식까지 접하게 된 일 (0) | 2022.01.04 |
SQLite File Structure 분석 (0) | 2022.01.03 |