레지스트리(Registry)
: 윈도우 레지스트리란 무엇일까? 중앙 집중식 계층적 데이터 베이스를 말한다.
더 쉽게 말하자면, 컴퓨터의 "설정 데이터베이스"라고 생각하면 좋다. 이는 윈도우 운영체제와 다양한 프로그램들이 사용하는 설정 정보와 옵션을 저장하는 곳이다. 레지스트리에는 시스템 하드웨어, 설치된 소프트웨어, 사용자 계정 정보, 파일 연결, 네트워크 설정 등의 정보가 들어 있다. 아래와 같은 세 가지 큰 특징을 가지고 윈도우에서 사용된다.
윈도우에서 관리.
운영 체제와 애플리케이션의 구성 설정을 저장
사용자 활동과 관련된 데이터를 저장 ex:) 부팅, 로그온, 서비스 실행, 파일 및 폴더 관리
레지스트리는 크게 키(key)와 값(value)으로 이루어져 있다. 이를 폴더와 파일의 구조로 비유할 수 있다.
키(key): 폴더처럼 여러 하위 항목을 포함할 수 있으며, 하위 항목들을 "서브키"라고 한다.
값(value): 파일처럼 실제 정보를 저장하는 항목입니다. 이 값들은 문자열, 숫자 또는 다른 형식의 데이터일 수 있다.
HKEY_CLASSES_ROOT (HKCR) 파일 확장자 연결, COM 클래스 등록 정보 저장 → 접근한 폴더
HKEY_CURRENT_USER (HKCU) 현재 로그온된 사용자의 프로파일 정보 저장 → RDP 연결, 열린 파일 및 폴더, 실행된 명령, 실행된 앱, 접근한 폴더
HKEY_LOCAL_MACHINE (HKLM) 운영 체제와 애플리케이션의 구성 설정 저장 → OS 설치정보, 컴퓨터 이름, 마지막 종료 시간, 사용자 계정, 시간대, NIC, 하드웨어, 앱 제거 정보
HKEY_USERS(HKU) 모든 사용자 계정의 프로파일 정보 저장
HKEY_CURENT_CONFIG (HKCC) 현재 사용중인 하드웨어 프로파일 정보 저장
: 레지스트리 데이터를 저장하는 물리적 파일을 말한다.
특징 윈도우 커널에 의해 열리고 관리됨 실시간 시스템에서 단순 복사 불가능 → 특별한 도구를 사용해서 수집 시그니처 : 0x72656755 (rdgf)
주요 hive 파일 SAM, SECURITY, SYSTEM, SOFTWARE, NTUSER.DAT, UsrClass.dat, Amcache.hve
파일 위치
HKCR = SOFTWARE\\Classes\\ + UsrClass.dat (현재 사용자). HKCU = NTUSER.DAT (현재 사용자). HKLM\SAM =%SystemRoot%\\System32\\Config\\SAM. HKLM\SECURITY =%SystemRoot%\\System32\\Config\\SECURITY. HKLM\SOFTWARE =%SystemRoot%\\System32\\Config\\SOFTWARE. HKLM\SYSTEM = %SystemRoot%\\System32\\Config\\SYSTEM. HKU{SID} = %UserProfile%\\NTUSER.DAT. HKU{SID}_Classes =%LocalAppData%\\Microsoft\\Windows\\UsrClass.dat.
수집 도구 KAPE : RegistryHives
Hive 파일 = 기본 블록(base block) (512B = 4KiB) + 여러 하이브 빈(Hive Bins)
Hive Bin = 빈 헤더 + 여러 하이브 셀(키, 키 목록, 값, 값 목록, 데이터)
무엇을 분석하나요? -> 윈도우 설치 정보 사용자 계정 설치된, 실행된 앱 열린 파일 연결된 네트워크 연결된 하드웨어(스토리지 디바이스)
분석 도구 Registry Explorer: https://ericzimmerman.github.io/ REGA: https://dfrc.korea.ac.kr/infra_dfrc_tools/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=14616120&t=board
위치 :
*HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion**
ProductName: OS 이름.
RegisteredOwner: 소유자 이름.
RegisteredOrganization: 조직 이름.
ProductId: 제품 ID (OS 식별자).
BuildLab(Ex): OS 빌드 버전.
InstallDate: OS 설치 시간 (Unixtime).
InstallTime: OS 설치 시간 (FILETIME).
SystemRoot: 루트 폴더 (%SystemRoot%).
위치 :
*HKLM\\SYSTEM?ControlSet?\\Control\\ComputerName\\ComputerName**
위치 :
*HKLM\\SYSTEM?ControlSet?\\Control\\Windows**
**위치 : **
HKLM\\SAM\\SAM\\Domains\\Account\\Users{RID}*
각 사용자의 정보는 {RID} 하위 키의 F 값과 V 값에 저장됨.
V 값: 계정 이름, 전체 이름, 계정 설명. LM 해시, NT 해시 (사용자 비밀번호에서 파생).
F 값: 마지막 로그인 시간, 마지막 비밀번호 재설정 시간, 마지막 로그인 실패 시간. RID (SID의 마지막 부분), 계정 상태 (활성/비활성, 비밀번호 활성화 등). 로그인 실패 횟수, 로그인 성공 횟수
**위치 :
***HKLM\\SYSTEM?ControlSet?\\Control\\TimeZoneInformation**
ActiveTimeBias
TimeZoneKeyName
*HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards**
*HKLM\\SYSTEM?ControlSet?\\Services\\Tcpip\\Parameters\\Interfaces**
위치 :
*HKCU\\SOFTWARE\\Microsoft\\Terminal Server Client\\Default*
터미널 서버 클라이언트
RDP를 통해 연결된 원격 컴퓨터 목록 (URL, IP 주소).
Explorer’s RecentDocs: 위치 : *HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RecentDocs** 최근에 열린 파일 이름을 관리 하위 키는 파일 확장자로 구분
Explorer’s ComDlg32: 위치 : HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ComDlg32 CIDSizeMRU: 열기, 저장 대화 상자를 실행한 앱 목록 LastVisitedPidlMRU: 열기, 저장 대화 상자를 통해 접근한 폴더 경로 목록 OpenSavePidlMRU: 열기, 저장 대화 상자를 통해 처리된 파일 경로 목록 하위 키는 파일 확장자로 구분
Explorer’s RunMRU: 위치 : HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RunMRU 실행 창을 통해 실행된 명령 목록
ShellBag: *HKCR\\Local Settings\\Software\\Microsoft\\Windows\\Shell\\BagMRU** *HKCR\\Local Settings\\Software\\Microsoft\\Windows\\Shell\\Bags** *HKCU\\Software\\Microsoft\\Windows\\Shell\\BagMRU** *HKCU\\Software\\Microsoft\\Windows\\Shell\\Bags**
Windows 탐색기를 통해 접근한 폴더 정보를 관리.
탐색기 종료 시 폴더의 타임스탬프를 저장.
USB 관련 정보 *HKLM\\SYSTEM?ControlSet?\\Enum\\USB** VID_####&PID_####: 제조업체 ID 및 제품 ID. *HKLM\\SYSTEM?ControlSet?\\Enum\\USBSTOR** 제조업체, 제품 이름, 일련 번호 등.
USB 관련 타임 스탬프 *HKLM\\SYSTEM?ControlSet?\\Enum\\USBSTOR?Ven&Prod&Rev??SerialNumber?\\Properties{83da6326-97a6-4088-9453-a1923f573b29}** 0064 키의 '기본' 값 (FILETIME): 첫 설치 시간. 0066 키의 '기본' 값 (FILETIME): 마지막 삽입 시간. 0067 키의 '기본' 값 (FILETIME): 마지막 제거 시간.
애플리케이션 제거 정보 (설치된 애플리케이션) *HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall**
Explorer’s UserAssist (실행된 애플리케이션) *HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\UserAssist** 각 실행 파일의 '실행 횟수'와 '마지막 실행 타임스탬프' 관리.