본문 바로가기
보안/포렌식

Windows 레지스트리 분석

by ITPro 2012. 7. 31.

레지스트리는 윈도우의 주요 설정값을 보유하고 있는 데이터베이스 파일이며 시스템에 하이브 파일로 저장되어 있습니다.

 

-하이브 파일 위치

 레지스트리

 하이브

 HKLM\BCD00000000  {Boot Partition}\Boot\BCD
 HKLM\COMPONENTS  %SystemRoot%\System32\Config\COMPONENTS
 HKLM\SYSTEM  %SystemRoot%\System32\Config\SYSTEM
 HKLM\SAM  SystemRoot%\System32\Config\SAM
 HKLM\SECURITY  %SystemRoot%\System32\Config\SECURITY
 HKLM\SOFTWARE  %SystemRoot%\System32\Config\SOFTWARE
 HKU\<SID of local service account>  %SystemRoot%\ServiceProfiles\LocalService\NTUSER.DAT
 HKU\<SID of network service account>  %SystemRoot%\ServiceProfiles\NetworkService\NTUSER.DAT
 HKU\<SID of username>  %UserProfile%\NTUSER.DAT
 HKU\<SID of username>_Classes  %UserProfile%\AppData\Local\Microsoft\Windows\Usrclass.dat
 HKU\.DEFAULT  SystemRoot%\System32\Config\DEFAULT
 HKLM\HARDWARE  휘발성

 

 

1. 수집 및 분석 준비

하이브 파일은 대부분 시스템에의해 열려있어 일반적인 방법으로는 복사가 되지 않기때문에 forecopy와 같은 포렌식 복사 도구를 이용하여 수집하여야 합니다.

 

 forecopy_handy -r d:\temp

 

수집된 하이브파일들은 regedit에 추가하여 확인도 가능하며 YARU와 같은 분석툴을 이용해서 확인하는 것도 가능합니다.

 

 

YARU를 이용하여 하이브 파일을 여는 경우 하이브파일이 저장된 경로상에 한글이 존재하는 경우 정상적으로 불러와지지 않기 때문에 영어 또는 숫자로 이루어진 디렉토리에 저장해두어야 합니다.

YARU는 삭제된 레지스트리의 목록도 보여주기 때문에 어떠한 레지스트리가 제거되었는지 확인할 때도 유용하게 사용 가능합니다.

 

하이브 파일에는 레지스트리 키마다 최종 수정 시간, 소유자, 사용 권한 등의 데이터가 저장되어 있으며 최종 수정 시간은 64bit의 빅엔디안 값으로 저장되어 있습니다.

※ 윈도우는 64bit를 이용하여 Timestamp를 저장하며 1601년 1월 1일을 기준으로 흐른 시간을 마이크로 초 단위로 표기합니다. (유닉스는 32bit, 1970년 1월 1일 기준, 초 단위로 저장합니다.)

 

 

 

2. 주요 레지스트리

주요 시스템 정보를 저장하고 있는 레지스트리 값은 다음과 같습니다.

 

-기본 시스템 정보

 레지스트리

내용

 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion

 기본 시스템 정보
 HKLM\SYSTEM\ControlSet\services

 시스템 서비스 정보

 HKLM\SYSTEM\ControlSet\services\LanmanServer\Shares  사용자 공유 폴더 정보

 HKLM\SOFTWARE\Microsoft\Windows Portable Devices\De

vices

 USB 장치 연결 정보

 

Windows NT\CurrentVersion의 시스템 정보에는 운영체제 설치 날짜, 운영체제 종류, 서비스 팩 버전 등의 정보가 저장되어있으며 설치 날짜는 InstallDate에 유닉스 빅엔디안 방식으로 저장되어있습니다.

USB 장치 연결 정보 키의 최종 수정 시간이 USB 장치의 설치 날짜이며 장치명이 지정되어있지 않은경우 볼륨명으로 저장되며 볼륨이 변경되는 경우 해당 시간으로 타임스탬프 값이 변하게 됩니다.

 

 

-방화벽 정책 정보

레지스트리

내용

 HKLM\SYSTEM\ControlSet\services\SharedAccess\Param

eters\FirewallPolicy\FirewallRules

 방화벽 정책
 (Windows ver.6)

 HKLM\\SYSTEM\ControlSet\Services\SharedAccess\Para

meters\FirewallPolicy\StandardProfile\AuthorizedApplications

\List

 허용 어플리케이션 목록

 (Windows ver.5)

 HKLM\SYSTEM\ControlSet\Services\SharedAccess\Param

eters\FirewallPolicy\StandardProfile\GloballyOpenPorts

 허용 포트 목록

 (Windows ver.5)

 

윈도우 방화벽의 정책은 레지스트리에 저장되어있으며 Windows 버전 6계열 (Vista/7/2008 등)은 한 곳에 통합되어 저장되어있고 Windows 버전 5계열 (XP/2003 등)은 허용 어플리케이션 목록과 허용 포트 목록이 분할되어 저장되어 있습니다.

 

 

-자동 실행 관련 정보

 레지스트리

 내용

 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\

Winlogon (shell)

 로그온 쉘 정보

 HKU\{USER}\SOFTWARE\Microsoft\Windows NT\CurrentV

ersion\Winlogon (shell)

 로그온 쉘 정보

 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\poli

cies\system (shell)

 시스템 쉘 정보

 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

 자동 실행 정보

 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Once

 자동 실행 정보

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Run

 자동 실행 정보

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\RunOnce

 자동 실행 정보

 

자동 실행과 관련된 레지스트리는 악성코드에 의해 자주 감염이 되기 때문에 확인해주어야 합니다.

Winlogon 키의 shell 값은 Windows 버전 5계열에서는 기본값으로 Explorer.exe 값을 가지고 Windows 버전 6계열에서는 해당 값이 존재하지 않고 system 키의 shell 값은 모두 기본적으로 값이 존재하지 않습니다.

RunOnce 키는 1회에 한하여 자동 실행되도록 하는 레지스트리이며 값 이름 앞에 *가 있는 경우 안전모드에서도 실행이 되며 !가 있는 경우 명령이 모두 끝나기 전까지 값이 삭제되지 않습니다.

 

 

3. 기타 레지스트리

시스템 관련 레지스트리 이외에 침해사고 조사시 유용하게 사용되는 레지스트리는 다음과 같습니다.

 

-어플리케이션 사용 흔적

레지스트리

내용

HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Explorer\UserAssist\{GUID}\Count

 어플리케이션 사용 흔적

 

해당 레지스트리의 값은 모두 ROT13으로 인코딩되어 있으며 각 레지스트리 값에는 세션 번호, 실행 횟수, 마지막 실행 시간(윈도우 리틀 엔디안) 등의 데이터가 저장되어 있습니다.

 

[Windows Vista 이하] 0~3 : 세션 번호 4~7 : 실행 횟수(기본 값 : 5) 8~15 : 마지막 실행 시간

[Windows 7 이상] 0~3 : 세션 번호 4~7 : 실행 횟수(기본 값 : 가변) 3E~44 : 마지막 실행 시간

 

 

-최근 접근 파일 & 폴더 목록

 

 레지스트리

 내용

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Explorer\RecentDocs

 최근 열어본 파일 목록

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Applets\{Program}\Recent File List

 최근 열어본 파일 목록

 (프로그램별)

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Explorer\ComDlg32\LastVisitedMRU

 최근 접근 폴더

 (Windows ver.5)

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Explorer\ComDlg32\LastVisitedPidlMRU

 최근 접근 폴더

 (Windows ver.6)

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Explorer\ComDlg32\OpenSaveMRU\{Extension}

 최근에 접근한 파일

 (Windows ver.5)

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Explorer\ComDlg32\OpenSavePidlMRU\{Extension}

 최근에 접근한 파일

 (Windows ver.6)

 

해당 레지스트리의 값은 최근에 접근한 파일 및 폴더의 목록을 저장하고 있습니다.

각각의 값들의 실행 순서는 MRUList 에 저장되어 있습니다.

 

 

-기타 주요 실행 흔적

 레지스트리

내용

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Explorer\RunMRU

 최근 실행 명령 목록

 (Win + R)

 HKU\{USER}\SOFTWARE\Microsoft\Internet Explorer\Typed

URLs

 IE URL 입력 목록

 HKU\{USER}\SOFTWARE\Microsoft\Search Assistant\ACM

ru\{NUMBER}

 윈도우 검색 목록

 (Windows ver.5)

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Explorer\WordWheelQuery

 윈도우 검색 목록

 (Windows ver.6)

 HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersi

on\Applets\Regedit (LastKey)

 레지스트리 편집기 마지막

 접근 키

반응형