본문 바로가기

[+] Forensic

Registry (4)

이번에는 루트키중 HKEY_LOCAL_MACHINE 루트키에 대해서 알아보도록 하겠다.

HKLM 루트키는 자체 하이브를 가지고 있으며, 시스템의 하드웨어, 소프트웨어 드라이버의 환경설정 정보를 가지고 있다.

HKLM 하이브 중 일부는 관리자계정으로도 접근하지 못하는 하이브가 있으며, 이는 시스템 계정으로 접근이 가능하다.

HKLM 하위 하이브 목록과 위치는 다음과 같다.

[HKLM 하이브 목록과 위치]
 - HKLM\BCD00000000(Win Vista/7) : <Boot Partition>\Boot\BCD
 - HKLM\COMPONENTS(Win Vista/7) : %windows%\System32\Config\COMPONENTS
 - HKLM\HARDWARE : 메모리
 - HKLM\SAM : %windows%\System32\Config\SAM
 - HKLM\SECURITY : %windows%\System32\Config\SECURTY
 - HKLM\SOFTWARE : %windows%\System32\Config\SOFTWARE
 - HKLM\SYSTEM : %windows%\System32\Config\SYSTEM
 - HKLM\SYSTEM\Clone : 메모리


위에서 알 수 있듯이 하이브는 모두 확장자가 없으며, HARDWARE와 Clone 하이브는 메모리에 존재한다.

그러므로 라이브 리스폰스 과정에 이러한 휘발성 하이브에 대한 덤프 수집 부분도 추가하는 것이 좋다.

이제부터는 각 하이브에 대해 알아볼 것이다.

[HKLM\HARDWARE]
해당 하이브는 휘발성 정보로 메모리에 존자혐, 부팅시 감지되는 모든 하웨어와 그 하드웨어 장치의 드라이버 맵핑 정보들을 보관한다. 


[HKLM\SAM]
해당 하이브는 사용자의 로컬 계정 정보와 그룹 정보를 가지고 있다. 만약 조사하고자 하는 시스템이 도메인 컨트롤러라면 AD(Active Directory)에 도메인 계정과 그룹정보를 가진다. 이 하이브는 일반 관리자계정으로도 접근이 불가능 하며, 시스템 계정으로만 접근이 가능하다.
시스템 계정권한을 얻는 방법에는 여러가지가 있으며 대체로 조사과정에서는 통합 포렌식 도구들을 통해 얻는다.
하지만 아래와 같이 psExec 툴을 이용하여 일시적으로 얻는 방법도 있다.

[그림 1 - 시스템계정 권한]

 
위와 같은 명령어를 입력하면 regedit은 시스템계정 권한으로 실행되어 아래와 같이 SAM 하위 서브키들을 볼 수 있다.

[그림 2 - SAM 하이브 서브키]


[HKLM\SECURITY]
이 하이브는 시스템 범위의 보안 정책과 사용자 권한 할당 정보를 가지고 있다. 이 하이브 또한 시스템계정으로만 접근이 가능하며 위 SAM 접근했던 방식과 동일하게 접근이 가능하다.

[그림 3 - 시스템 계정 권한이 없는 경우]

위와 같이 시스템 계정이 아닌 경우 해당 하이브의 하위에는 아무것도 없는 것 처럼 보이지만, 아래처럼 시스템 계정권한으로 접근하면 많은 서브키들을 볼 수 있다.

 [그림 4 - 시스템계정 권한이 있는 경우]


[HKLM\SYSTEM]
해당 하이브는 시스템이 부팅될 때의 환경 설정 정보를 가지고 있다. 이런 정보들은 시스템이 정상적으로 부팅되었을 때 복사되며, 시스템이 비정상적으로 종료되었을 때 복사해둔 정보를 바타으로 부팅할 수 있는 옵션을 사용자에게 제공하는 역할을 한다. 이런 복사본은 일반적으로 '마지막으로 성공한 구성(last Known good control set)'이라고 부른다.

해당 하이브에서는 한가지 더 살펴볼 부분이 있는데 그 부분은 CurrentControlSet 키다.
이 키는 ControlSet001이나 또는 ControlSet001, ControlSet002 둘 중 어느 하나의 대한 링크이다.
ControlSet은 시스템 환경 설정 정보를 담고 있는 키로 보통 2개 이상의 키가 존재한다.
CurrentControlSet은 부팅에서 사용된 ControlSet 키의 링크이고, 같은 레벨에 있는 Select 키에서 확인이 가능하다.

[그림 5 - Select 키]


Current value의 값을 보면 1이라고 되어 있는데 이것의 의미는 ControlSet001로 부팅되었다는 의미이다.



'[+] Forensic' 카테고리의 다른 글

Registry (6)  (0) 2012.01.04
Registry (5)  (0) 2012.01.04
Registry (3)  (0) 2012.01.03
Registry (2)  (0) 2012.01.02