Windows Forensics

윈도우 포렌식

UserAssist

개요

  • 최근에 실행한 프로그램 목록, 마지막 실행 시간, 실행 횟수 등이 기록
  • 각 사용자의 NTUSER.DAT 레지스트리 파일에 응용프로그램의 실행 횟수가 저장
  • 가상화를 통해 쓰여진 데이터는 NTUSER.dat가 아닌 UsrClass.dat에 저장

포렌식 관점

  • 최근 실행한 응용프로그램 이름, 목록 확인

  • 마지막으로 실행한 응용프로그램 시간

  • 응용프로그램 실행 횟수

레지스트리 주요경로

번호 레지스트리 경로
1 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
2 NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist

레지스트리에 접근을 해보면, 운영체제별로 GUID 기반의 여러 가지 키가 존재하는데 포렌식적으로 주목해야 할 키는 2가지 이다.

운영체제 서브키
​Windows 2000 / XP / Vista / 2003 { 5E6AB780-7743-11CF-A12B-00AA004AE837 }\Count
{ 75048700-EF1F-11D0-9888-006097DEACF9 }\Count
Windows 7 / 8 / 10 { CEBFF5CD-ACE2-4F4F-9178-9926F41749EA }\Count
{ F4E57C4B-2036-45F0-A9AB-443BCFE33D9F }\Count

ROT-13 인코딩 방식이란?

일종의 암호화로서 A~M의 값들과,N~Z의 값들을 1:1 매칭시켜
서로 변환되어 나타나게 하는 방식

-HKU\(User)\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
-UserAssist 하위에 GUID 기반의 여러 가지 키 존재

하위 키 중 실행파일 실행 기록을 나타내는 [CEBFF5CD-ACE2-4F4F-9178-9926F41749EA]키
바로가기 실행 기록을 나타내는 [F4E57C4B-2036-45F0-A9AB-443BCFE33D9F]키

Count키 리스트를 보면 ROT13 방식으로 인코딩 되어 있기 때문에
파일 이름을 확인 하기 위해서는 ROT13으로 디코딩 해야 합니다.

해당 파일의 레지스트리 값을 보고 상세한 정보 확인 가능
0~3 바이트: 세션번호, 4~7바이트: 실행횟수, 60~67바이트: 마지막 실행 시간

좌측 운영체제 카테고리에서 UserAssist 아티팩트 클릭

[증거]테이블의 상단 칼럼 정보를 통해
사용자 이름, 응용프로그램 이름, 마지막 실행 시간, 실행 횟수 정보를 확인 할 수 있고
우측 [세부 정보]테이블을 통해서도 확인 가능

[세부 정보]테이블의 [증거 정보]- [소스]를 통해서 UserAssist경로 확인 가능하고
하이퍼링크를 클릭하면 자동으로 이동

C:\Users\사용자\NTUSER.DAT

NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist

NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\
UserAssist\{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}

NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\
UserAssist\F4E57C4B-2036-45F0-A9AB-4438CFE33D9F}

EnCase에서 UserAssist를 분석하기 위해 먼저 NTUSER.DAT 하이브 파일 경로 확인
C:\Users\사용자\NTUSER.DAT

NTUSER.DAT 파일은 HKEY_CURRENT_USER에 있는 모든 설정 정보를 담고 있습니다.

UserAssist 경로 확인
NTUSER.DAT\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist

경로를 찾아가 보면 UserAssist 하위에 운영체제 별로 GUID기반의 여러 가지 키 존재

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

실행파일 실행 기록 ROT13 디코드

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

바로가기 파일 ROT13 디코드

%UserProfile%\NTUSER.DAT

[Open in Registry Viewer]

[Windows NT Registry]

[Open in Registry Viewer]

[Common Areas]

실행파일 기록 {CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count
바로가기 실행 기록 {F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count

실행파일 실행 기록
ROT 13 자체 디코딩

바로가기 파일 실행 기록

C:Users\NTUSER.DAT\마우스 우클릭\View -> 레지스트리 편집기

Software\MicroSoft\Windows\CurrentVersion\Explorer\UserAssist

Nirsoft의 UserAssistView 를 이용하여 대상 PC의 UserAssist 파일 오픈
(UserAssistView.exe 실행시 자동으로 UserAssist 경로에서 데이터 수집)

Item Name 컬럼에서는 실행된 응용프로그램과 lnk파일의 정보 획득 가능
(원본 데이터는 Rot13 으로 암호화 되어있지만 자동으로 복호화)

Index 레지스트리의 값 순서를 나타내는 실행 카운터 값 확인 가능

Count 어플리케이션 또는 실행파일의 실행 횟수를 기록

Modified Time 어플리케이션 또는 실행파일의 실행 시간을 기록

ClassID UserAssist의 수집된 클라스의 ID
Windows의 경우 [CEBFF5CD-ACE2-4F4F-9178-9926F41749EA, F4E57C4B-2036-45F0-A9AB-443BCFE33D9F]에 생성