Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

Hello Security World

Digital Forensic [Windows 레지스트리 증거 수집] 본문

정보보안/Forensic

Digital Forensic [Windows 레지스트리 증거 수집]

프로앱등이 2020. 5. 3. 17:56

레지스트리 증거 수집 및 분석 [Windows Registry]

Registry 란 ?

운영체제 내에서 작동하는 모든 하드웨어, 소프트웨어, 사용자 정보 및 시스템 구성 요소 등을 담고 있는 데이터베이스

구성

1. HKEY_CLASSES_ROOT를 비롯하여 5개의 가장 상위키(=루트키)를 가짐.

2. 각 루트키 아래의 하위키부터 그 아래의 모든 하위 키를 포함 하는 트리 구조를 하이브(Hive)라고 함

3. 각각의 하이브는 저마다 고유한 저장장소(파일)와 로그 파일을 갖 고 있음.

루트키

1. HKET_CLASS_ROOT

파일 확장자에 대한 정보, 각 파일과 프로그램간의 연결에 대한 정보,마우스 오른쪽 단추의 등록 정보 등

모든 형식의 파일 확장자가 sub key 형태로 구성되어 있음

2. HKEY_CURRENT_USER

현재 로그인중인 사용자들에 대한 등록 정보 [사용자의 배경화면 , 디스플레이 설정 이나 단축 아이콘 정보 등]

응용 프로그램의 우선 순위,보안 접근 허용 여부

3. HKEY_LOCAL_MACHIN

하드웨어 구성 초기화 파일,제어판과 밀접 하게 연관이 있음

사용중인 하드웨어 및 소프트웨어에 대한 정보

로그온 한 사용자와 관계없이 컴퓨터에 등록된 모든 사용자에게 동일

HKLM/Software/CLASSES : HKEY_CLASSES_ROOT의 키 값과 동일한 값을 가짐 , 두 곳이 연동되어 생성이나

삭제가 같이 이루어짐

4. HKEY_USERS

이전 사용자 초기화 파일을 보관

두 키 사이가 겹치면 HKEY_CURRENT_USER가 우선

5. HKEY_CURRENT_CONFIG

현재 사용중인 윈도우의 디스플레이[화면 글꼴이나 해상도]

정보와 프린터 관련 정보

하이브 파일

Windows 2000

Windows Registry 분석

최근에 열었거나, 실행, 수정한 문서에 대한 사용 흔적

윈도우 서버에서 불법 계정 생성 유무 확인

특정 프로그램을 설치여부에 대한 확인[삭제를 한 경우에도 그 흔적이 남아 있을 수 있음]

자동 시작 프로그램에 대한 기록

인터넷 익스플로러,명령창에서 입력된 URL리스트,명령어 등에 대한 기록

네트워크 연결 목록에 대한 기록

바이러스 등 악성 프로그램에 의한 감염여부

컴퓨터 정보 확인

MRU (Most Recently Used): 가장 최근에 사용된 파일,

프로그램 등에 대한 정보 목록을 말하며 일부 정보들이 Registry에 기록

Autorun Location: Windows 시스템이 시작(boot process)되는 동안 프로그램을 실행시키기 위한 Registry Key

HKLM\ SOFTWARE \Microsoft\Windows\CurrentVersion\Run

Windows가 구동되면서 실행되어야 하는 프로그램 목록 기록 

Windows가 구동되면 항상 실행된다.

HKLM\ SOFTWARE \Microsoft\Windows\CurrentVersion\RunOnce(Ex)

Windows가 구동되면서 실행되어야 하는 프로그램 목록 기록 

Windows가 구동되면 1회 실행되며 1회 실행되고 나서 해당 항목이 Registry에서 삭제된다.

HKLM\ SOFTWARE \Microsoft\Windows\CurrentVersion\RunServices

Windows가 구동되면서 실행되어야 하는 서비스 형태의 프로그램 목록 기록

Windows가 구동되면 항상 실행된다.

HKLM\ SOFTWARE \Microsoft\Windows\CurrentVersion\RunServicesOnce

Windows가 구동되면서 실행되어야 하는 서비스 프로그램 목록이 기록되어 있다. [1회 실행되고 해당 항목이 삭제됨]

레지스트리 증거 수집 및 분석

-Autorun-

Autoruns.exe (or Autoruns.exe)

www.sysinternal.com 

시스템이 Booting 하거나 Logon할 때 자동으로 실행되는 프로그램 목 록 출력

-UserAssist 관련 정보-

HKCU\Software\Microsoft\Windows\CurrentVersion\Ex plorer\UserAssist

사용자가 접근한(실행한) 프로그램, shortcut, control panel applet 등을 기록하고 있다

이 키에는 2개의 GUID subkey가 존재하며 5E6 (Win7은 CEB)으로 시작되는 subkey는 IE toolbar에 대한 것이고 750 (Win7은 F4E) 으로 시작되는 subkey는 Active Desktop에 관련한 것이다.

이 키에 존재하는 값들은 "ROT-13" 암호화 알고리즘으로 암호화되어 있다.

-Device 관련 정보-

HKLM\SYSTEM\ControlSet00x\Enum\USBSTOR

USB 장치 정보 저장 

USBSTOR의 Subkey를 분석할 경우 이미 해당 시스템에서 사용하거나 사용했던 USB 장치를 확인할 수 있다

Device Class ID: Disk&Ven_XXX&Prod_XXX&Rev_XXX  제조사, 제품명, 버전을 알 수 있다

Unique instance ID: USB 장치의 Unique ID로서 동일 Device Class ID를 갖더라도 장치 별로 구별된다

HKLM\SYSTEM\MountedDevices

NTFS 파일 시스템에 의해서 사용된 mount된 volume 목록을 유지

Volume을 식별하는 정보 중에서 그 내용에 “STORAGE Removable Media”가 포함된 경우 해당 장치는 이동식 디스크임을 알 수 있다.

\DosDevices\? 값에는 ParentIdPrefix가 포함되어 있으므로 어떤 USB 장치가 어떤 드라이브에 Mount되었는지 확인 할 수 있다.

Device Class ID: Disk&Ven_XXX&Prod_XXX&Rev_XXX 

제조사: AXXEN, 제품: XM, 버전: 0.00

Unique Instance ID: 085169474ec0c1 

만약 Device Instance ID의 2번째 문자가 &인 경우 Unique ID가 아니며 Device 설치 시 PnP Manager에 의해서 부여된 ID이다.

ParentIdPrefix: 7&33eb9b54

1. USB 저장 장치의 Vendor ID와 Product ID

HKLM\SYSTEM\ControlSet00x\Enum\USB 

해당 USB의 Unique Instance ID (또는 Serial Number)를 찾는다. 

서브키로서 Vid_XXXX&Pid_XXXX 형식을 갖는다. (XXXX는 16진수) 

예) Vid_0718&Pid_0247 => 제조사 코드: 0718h, 제품 코드: 0247h, Unique Instance ID = 07770E0001A2 

제조사 코드는 http://www.usb.org/developers/tools/ 또는 http://www.linux-usb.org/usb.ids 에서 등록된 제조사 명을 알 수 있음

2. USB 저장 장치 사용자 식별

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

시스템에 등록된 사용자가 많은 경우 해당 USB를 사용한 사용자 계정을 찾을 수 있다.

Mount Volume의 GUID를 찾는다: ??\\Volume으로 시작되는 레지스트리 값에 포함되는 해당 USB의 ParentIdPrefix를 찾고 ??\\Volume 다음 문자열이 Volume에 대한 GUID이다.

각 사용자의 NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\Mou ntPoints2 에서 동일한 Volume GUID가 존재하는지 검색한다. (GUID가 존재하는 사용자 계정이 USB를 사용한 사용자 계정이 된다.)

3. USB 저장 장치 최초 연결 시점

Setupapi.log 파일 검색 

USB의 Unique Instance ID를 이용해서 처음 부분부터 파일 내용을 검색한다. 

모든 USB 이동식 저장 장치를 찾을 경우 “usbstor” 키워드로 검색한다.

4. 마지막 부팅후 최초 USB 연결 시간 식별

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses\{ 53f56307-b6bf-11d0-94f2-00a0c91efb8b}

해당USB의 Device Class ID와 Unique Instance ID로 구성되는 Subkey를 찾는다.

찾은 해당 Subkey를 오른쪽 마우스로 선택하여 해당 키를 .txt 형식으로 파일로 내보낸다. (txt 파일 내용에 “LastWrite Time” 또는 “마지막 쓴 시간”이 존재하며 이것이 마지막 부팅 후 최초 USB 연결 시간을 의미한다.)

레지스트리 증거 수집 및 분석 - 기타

Application 설치 후, 삭제 프로그램 확인(Windows 2000, XP)

‘HKEY_CURRENT_USER\SOFTWARE\’ 에는 사용자에 따라 달라지 는 설정이 저장되고, ‘HKEY_LOCAL_MACHINE\Software\’ 에는 시 스템에서 공통으로 적용되는 사항이 기록, 이곳에 이미 삭제된 특 정 프로그램 관련된 키가 존재하는지 확인

사용자 계정 추가 확인(Windows 2000, XP)

사용자별로 다른 계정이 존재 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\Current Version\ProfileList 이하에 각 사용자에 대한 Profile  특정인에 의한 해킹이 시도된 경우로 새로운 사용자를 생성 -> 특 정 작업을 수행 후 -> 사용자를 삭제한 경우

Security Identifier (SID, 사용자 식별자)

① 이 문자열은 SID를 나타낸다는 의미로 “S”가 된다.

②: SID 형식 버전

③: 권한 식별자로 0부터 5까지(null authority, world authority, local authority, creator authority, non-unique authority, NT authority) 값을 가질 수 있다.

④: Domain 또는 Local Computer 식별자

⑤: relative identifier (RID)로서 관리자 계정은 500, Guest 계정은 501, 그리고 사 용자 계정은 1000번 이상의 값을 갖는다.

Shell\open\command

특정 확장자를 갖는 파일이 open될 때 Default로 수행되는 명령어 저장

“HKEY_CLASS_ROOT\batfile\shell\open\command” 

“HKEY_CLASS_ROOT\cmdfile\shell\open\command” 

“HKEY_CLASS_ROOT\exefile\shell\open\command” 

“HKEY_CLASS_ROOT\htafile\shell\open\command” 

“HKEY_CLASS_ROOT\piffile\shell\open\command”

기본값이 ["%1" %*]이 보인다. 이것과 다른 값이 존재한다면 바이 러스일 확률이 높다. (예,Navidad 바이러스)

레지스트리 증거 수집 및 분석 - 도구

Process Monitor : www.sysinternals.com 

Process/Thread, Registry, File System Activity 모니터링

RegRipper 

https://regripper.wordpress.com/

Harlan Carvey