0x0102

Window Registry 동작 원리 본문

Study/Digital Forensic

Window Registry 동작 원리

jxx_yxjx 2022. 7. 21. 23:22

레지스트리의 경로를 표기할 때는 백슬래시를 사용하나 글에서는 편의상 / 사용!

Registry - timezone

경로 : HKLM/SYSTEM/CurrentControlSet/Control/TimezoneInformation

  • Bias를 통해 현재 컴퓨터의 Timezone을 알 수 있음
  • 현재 컴퓨터의 설정은 UTC + 9

Registry - Systeminfo

경로 : HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion

  • 현재 윈도우 버전, 설치 시간, productid 등 시스템 관련 정보

+) 터미널에서 systeminfo 명령어의 결과와 동일

실제로 레지스트리 편집기의 값을 dcode에 돌려보면 systeminfo와 결과값이 같다는 것을 알 수 있음

또한 epoch converter을 사용하면 unix timestamp conversion값을 알 수 있음

https://www.epochconverter.com/

 

Registry - Autoruns

경로

  • 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

HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Run

윈도우 실행 시 자동으로 시작되는 시작프로그램들을 알 수 있다.

+ Run, RunOnce와 RunOnceEx의 차이

Run에 있는 프로그램들은 윈도우가 시작 될 때마다 실행이 되지만

RunOnce와 RunOnceEx는 재부팅될 때 레지스트리가 삭제된다.

또한 RunOnce와 RunOnceEx는 삭제 타이밍에 차이가 있다.

Registry - User Account

경로 : HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/ProfileList

  • S-1-5-18 : systemprofile
  • S-1-5-19 : LocalService
  • S-1-5-20 : NetworkService
  • S-1-5-21 : 사용자가 만든 계정 - 1000이상은 User 권한, 500은 adminstrator

S-1-5-18 : systemprofile

S-1-5-19 : LocalService

S-1-5-20 : NetworkService

S-1-5-21 : 사용자가 만든 계정 / 사용자의 sid

+) 마지막 사진

S-1-5-21 뒤의 맨 뒤의 숫자가 중요하다.

1000이상이면 User, 500은 administrator이라는것을 기억하자

  • 사용자의 최종 로그인 시간

LocalProfileLoadTimeHigh

= 0x01d89cc7

LocalProfileLoadTimeLow

= 0xbbf9d19e

-> high + low = 0x01d89cc7bbf9d19e

= 사용자의 최종 로그인 시간 ( dcode로 확인가능 - 이때 dcode 포멧은 format = Hexadecimal big-endian으로 지정)

Registry - Environment Variables

  • 시스템 / 사용자 환경변수 확인
  • 경로

사용자 환경변수

HKU/{SID}/Environment

  • 경로

시스템 환경변수

HKLM/SYSTEM/CurrentControlSet/Control/Session Manager/Environment

Registry - Executable

  • 응용프로그램(exe) 실행에 따른 흔적
  • UserAssist : 최근에 실행한 프로그램 목록, 마지막 실행 시간, 실행 횟수

경로 : HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/UserAssist

{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA} \ Count : 실행파일 실행 기록

{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F} \ Count : 바로가기 실행 기록

경로 참고 - 실행파일 실행 기록

경로 참고 - 바로가기 실행 기록

+ 이름을 클릭해보면

이러한 화면을 볼 수 있는데 한눈에 우리가 정보를 판단하기 어려운 이유는 이 값이 인코딩된 값이기 때문이다.

따라서 rot13 decoder에서 디코드를 해보자

https://rot13.com/

값이름을 떼와서 돌려보면

예쁘게 정리된 주소를 확인할 수 있다. (앞의 값은 CLS ID이므로 디코드에 해당 x)

  • OpenSavePidIMRU : 열기 혹은 저장 기능으로 사용된 파일

경로 : HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/ComDlg32/OpenSavePidIMRU

하단을 보면 저번에 사용했던 파일인 OSPPSVC log를 확인할 수 있다.

  • LastVisitedPidIMRU : 열기 혹은 저장 기능을 사용한 응용프로그램

경로 : HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/ComDlg32/LastVisitedPidIMRU

상단을 보면 최근 사용했던 응용프로그램인 notepad++를 확인할 수 있다.

Registry - USB Connection

  • USB 등 외부 저장매체 연결 흔적 추적 가능
  • USB 제품명, 시리얼 번호, 최초 연결 시각, 마지막 연결 시각

경로

  • 모든 USB(마우스 키보드 등) : HKLM\SYSTEM\ControlSet001\Enum\USB

~시스템에 연결되었던 모든 USB 장치의 정보가 기록됨

~VID, PID를 검색하면 USB 종류를 알 수 있음

  • USB 저장장치 : HKLM\SYSTEM\ControlSet001\Enum\USBSTOR

~VID, PID를 검색하면 USB 종류를 알 수 있음

+)USB 밑으로 USBSTOR을 찾을 수 없음

  • 마운트 디바이스 : HKLM\SYSTEM\MountedDevices

~시스템에 마운트 되었던 장치의 리스트를 나타냄

Registry - Shellbags

  • 사용자가 접근한 폴더 정보를 기록함

~ 삭제된 폴더의 정보도 찾을 수 있음

  • BagMRU : 폴더의 구조를 계층적 구조로 나타냄
  • Bag : 윈도우 사이즈, 위치 등 사용자의 환경설정을 저장
  • 경로

HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags

HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagsMRU

HKCU\Software\Microsoft\Windows\Shell\Bags

HKCU\Software\Microsoft\Windows\Shell\BagMRU

 

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

$MFT 개념 및 실습  (0) 2022.07.24
Windows Registry 실습  (0) 2022.07.23
0719 디지털포렌식 스터디  (0) 2022.07.19
Window Forensic  (0) 2022.07.17
0714 디지털 포렌식 스터디  (0) 2022.07.17