본문 바로가기

Information Security/Hacking

Windows Registry

반응형

윈도우 레지스트리 구성

* Registry : Key와 Value로 구성되어 윈도우 시스템 운영에 필요한 각종 정보를 포함하고 있음

 

 

 

* Hive 파일 : Registry 정보를 저장하고 있는 물리적인 파일로, 오프라인 상태(비활성)에서 시스템 분석에 활용됨

Hive 파일 종류 저장 정보
SAM - 계정 정보 및 접속 기록 저장
(system32\config\SAM)
SECURITY - 시스템 보안 정책 및 권한 정보
(system32\config\SECURITY)
SOFTWARE - 시스템에 설치된 모든 Application 정보
(system32\config\SOFTWARE)
SYSTEM - 시스템 관련 설정 정보
(system32\config\SYSTEM)
NTUSER.dat - 각 사용자별 환경설정/프로파일 정보
(C:\Users\계정명\NTUSER.dat)

- Registry는 윈도우 부팅 시, Hive 파일에서 값을 읽어 들여 구성되며, Master Key(하이브에서 직접 읽어 들여 구성되는 키)와 Derived Key(Master Key로부터 값을 가져와 재구성 하는 키)로 구성됨

 

 

 

* 최상위 루트키(RootKey)

RootKey

RootKey 종류 내용
HKCR
(HKEY_CLASSES_ROOT)
* 파일 확장자와, 확장자에 대한 연결 프로그램 정보를 가짐
HKCU
(HKEY_CURRENT_USER)
* 현재 로그인 중인 사용자의 환경설정/프로파일 정보를 가짐


* 제어판 설정, 네트워크 연결, 응용 프로그램 등의 환경설정 정보를 가지며, HKU 루트키에 있는 해당 사용자 정보에 대한 링크를 가지고 있음
HKLM
(HKEY_LOCAL_MACHINE)
* 개별 사용자 단위가 아닌, 시스템 전체에 적용되는 하드웨어(드라이버, 프린터 등)와 응용 프로그램의 설정 데이터를 저장
HKU
(HKEY_USERS)
* 다중 사용자 환경에서 각 사용자별로 키 항목을 생성, 환경설정/프로파일 정보를 저장


* 각 사용자별 존재하는 하이브 파일인 NTUSER.dat 파일을 로드하여 생성됨
HKCC
(HKEY_CURRENT_CONFIG)
* 현재 사용중인 윈도우의 하드웨어 프로필 정보(디스플레이, 폰트 정보 등)

 

 

 

* 레지스트리 기반 악성코드 등록 여부 예시

레지스트리 등록 유형(KEY) 설명 및 예시
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run * HKLM 특성 상, 시스템 전체에 적용되며, 하부의 RUN 키는 윈도우 부팅 시, 자동 실행되는 프로그램을 지정함

Key value ex)
"WinUpdate"="C:\Windows\System32\exp1orer.exe"

- 윈도우 부팅 시에 WinUpdate라는 프로그램이, exp1orer.exe 프로세스가 생성, 자동 구동 될 수 있도록 등록
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run * HKCU 특성으로, 현재 로그인 사용자에게 적용되는 항목이자, 그 하부 RUN키에 등록하여 현재 사용자 로그인 시, 자동 실행되는 프로그램 지정

Key value ex)
"WinUpdate"="C:\Windows\System32\exp1orer.exe"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon * HKLM의 Winlogon키는 모든 사용자(윈도우 로그인) 시, 자동 실행되는 프로그램 지정

Key value ex)
"Userinit"="C:\Windows\System32\userinit.exe,C:\Windows\System32\exp1orer.exe"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services * HKLM의 Services키는 윈도우 서비스(services.msc)에 구동되는 서비스를 등록

Key value ex)
"Type"=dword:00000010
"Start"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,\
  74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6e,\
  00,65,00,74,00,66,00,78,00,70,00,65,00,72,00,66,00,2e,00,64,00,6c,00,6c,00,\
  00,00
"DisplayName"="Win Update Service"
"ObjectName"="NT AUTHORITY\\LocalService"

- Services.msc에 자동 실행 되도록 Start 값을 2(자동 실행)으로 할당 후, 서비스 출력 이름 Win Update Service를 지정, ImagePath를 통해 자동 실행될 실행 파일 경로를 지정
HKEY_LOCAL_MACHINE\SOFTWARE\Classes 하위

\batfile\shell\open\command

\exefile
\shell\open\command

\comfile
\shell\open\command
* HKLM 하부의 특정 파일 확장자(bat, exe, com) 실행 시 특정 파일 자동 실행되도록 등록

Key value ex)
@="C:\Windows\System32\exp1orer.exe \%1\" %*"

- 기존 기본값 %1 %* 앞에 exp1orer.exe의 경로를 먼저 삽입하여, 해당 확장자를 가진 파일 실행 시 마다 해당 프로그램이 먼저 실행됨
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile * 외부와 지속 통신을 위해 내부 윈도우 방화벽 비활성화를 적용

Key value ex)
"EnableFirewall"=dword:00000000

- 기존 00000001 값에서 전부 0으로 바꿔 비활성화
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AutorizedApplications\List * 윈도우 방화벽에 특정 프로그램 예외 허용을 적용

Key value ex)
"C:\Windows\System32\exp1orer.exe"="C:\Windows\System32\exp1orer.exe:*:Enabled:WinUpdate"

- WinUpdate 프로그램을 허용하며, 지정한 경로에 대해 방화벽 예외를 허용(Enabled)
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List * 윈도우 방화벽에 특정 포트를 예외하도록 설정

Key value ex)
"4321:TCP"="4321:TCP:*:Enabled:WinUpdate

- WinUpdate 라는 이름으로 해당 4321/TCP 포트를 예외 처리하는 정책이 설정되도록 함
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced * 현재 사용자의 폴더 옵션의 숨김 파일 및 폴더 표시를 변경하지 못하게 설정

Key value ex)
"Hidden"=dword:00000002

- 0 또는 2 값으로 설정 시, 숨김 파일 및 폴더를 표시하지 않게 변경 (1은 표시함)
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL * 모든 사용자의 폴더 옵션의 숨김 파일 및 폴더 표시를 변경하지 못하게 설정

Key value ex)
"CheckedValue"=dword:00000000

- 0 으로 변경 시, 사용자가 해당 설정을 변경해도 반영되지 않기 때문에 숨김 파일을 볼 수 없음

 

반응형

'Information Security > Hacking' 카테고리의 다른 글

Strace - System call Tracking tool  (0) 2022.07.04
Windows PE file  (0) 2021.09.14
악성코드(Malware)유형 및 분석 유형  (0) 2021.09.14
Analysis Tool - Process Explorer  (0) 2021.07.07
Analysis Tool - Process Monitor  (0) 2021.07.07