TigerDemon

5주차_디지털 포렌식 스터디 본문

2024-SWLUG/디지털 포렌식 스터디

5주차_디지털 포렌식 스터디

호랑2D 2024. 5. 8. 03:19

섹션 3 윈도우 포렌식, 깊게 들어가 보아요

Windows 포렌식 개요 & Registry 개요

1. Windows Artifacts

  • Windows가 가지고 있는 특유의 기능들과 그 기능을 구현하는데 필요한 요소
  • Windows의 사용자가 수행하는 활동에 대한 정보를 보유하고 있는 개체
  • 생성증거: 프로세스, 시스템에서 자동으로 생성한 데이터 <- Windows Arifacts에 해당
  • 보관증거: 사람이 기록하여 작성한 데이터
  • 목적: 자동으로 생성되는 데이터들을 추적해서 사용자의 행위를 보는 것

종류

  • Registry
  • $MFT, $Loffile, $UsnJrnl
  • LNK
  • JumpList
  • Recycle Bin
  • Prefetch&Cache(s)
  • Timeline
  • VVS
  • 웹브라우저 아티팩트
  • EventLogs

공부할 때 가장 중요한 점

  1. 사용자의 행위에 따라 어디에 어떤 정보가 저장될까?
  2. 컴퓨터는 대체 어떻게 동작하는 걸까?
  3. -> 사용자는 컴퓨터로 무슨 일을 했을까?

2. Registry

  • 윈도우 운영체제와 응용 프로그램 운영에 필요한 정보를 담고 있는 계층형 데이터베이스
  • - 운영체제 및 응용 프로그램의 설정 정보, 서비스의 중요 데이터 등 기록
  • - 부팅 과정부터 로그인, 서비스 실행, 응용 프로그램 실행, 사용자 행위 등 모든 행위에 관여

 

  • 윈도우 시스템의 모든 정보가 담겨 있음
  • - 윈도우 시스템 분석의 필수 요소

Registry 

  • 시스템 표준 시간
  • 시스템 정보
  • 사용자 계정 정보
  • 환경 변수 정보
  • 자동 실행 프로그램
  • 응용프로그램 실행 흔적
  • USB 연결 흔적
  • 접근한 폴더 정보

Registry 조회

  • regedit(레지스트리 편집기) 이용
  • 윈도우+R을 누르고 regedit이라고 검색하기
  • 조회 및 편집 가능

 

루트 키 약어 설명
HKEY_CLASSES_ROOT HKCR 파일 확장자 연결 정보, COM 객체 등록 정보
HKEY_CURRENT_USER HKCU 현재 시스템에 로그인된 사용자의 프로파일 정보
HKEY_LOCAL_MACHINE HKLM 시스템의 하드웨어, 소프트웨어 설정 및 기타 환경 정보
HKEY_USERS HKU 시스템의 모든 사용자와 그룹에 관한 프로파일 정보
HKEY_CURRENT_CONFIG HKCC 시스템이 시작할 때 사용되는 하드웨어 프로파일 정보

 

 

Windows Registry 동작 원리(1)

Timezone

  • 경로:HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
  • Bias를 통해 현재 컴퓨터의 timezone을 알 수 있음
  • 현재 컴퓨터의 설정은 UTC+9 (데이터의 값은 16진수로 이걸 10진수로 바꾸면 540인데 이것을 시간으로 바꾸면 9이므로 UTC보다 9시간 빠르다는 것)

 

Systeminfo

  • 경로:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
  • 현재 윈도우 버전, 설치 시간, ProductId등 시스템과 관련된 정보들

 

저기서 아래 사이트를 사용해 Install date 를 확인해봤다. 

https://www.epochconverter.com/

 

Epoch Converter

Convert Unix Timestamps (and many other date formats) to regular dates.

www.epochconverter.com

첫번째 사진에 형광펜 표시된 부분에서 1707222787를 위 링크에 들어가면 있는 빈칸에 넣고 Timestamp...를 누르면 두번째 사진처럼 나온다.

 

 

Autoruns-자동 실행 프로그램

경로

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce (=> 재부팅됐을 때 삭제된 것)
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

User Account

경로

  • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
  • S - 1 - 5 - 18 : systemprofile
  • S - 1 - 5 - 19 : LocalServie
  • S - 1 - 5 - 20 : NetworkService
  • S - 1 - 5 - 21 : 사용자가 만든 계정
  • · 끝 번호가 1000이상은 user 권한
  • · 끝 번호가 500은 adminstrator

 

사용자의 최종 로그인 시간을 Dcode로 확인

Dcode는 아래 링크를 통해 들어가서 다운로드 받기

https://www.digital-detective.net/dcode/

 

DCode™ – Timestamp Decoder - Digital Detective

DCode™ is a FREE forensic tool for decoding data found during digital forensic examinations into human-readable timestamps.

www.digital-detective.net

 

  • LocalProfileLoadTimeHigh = 0x01da9cbc
  • LocalProfileLoadTimeLow = 0x74f3aece
  • => 0x01da9cbc0x74f3aece
  • 입력할땐 0x 없이 입력해야 나온다. => 01da9cbc74f3aece

 

 

Environment Variables

  • 시스템 / 사용자 환경 변수 확인

경로

  • 사용자 환경변수
  • HKU\{SID}\Environment

 

경로

  • 시스템 환경 변수
  • HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

 

Executable

  • 응용프로그램(exe) 실행에 따른 흔적
  • UserAssist : 최근에 실행한 프로그램 목록, 마지막 실행 시간, 실행 횟수

경로 : HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist

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

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

  • OpenSavePidIMRU : 열기 혹은 저장 기능으로 사용된 파일

경로 : HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU

  • LastVisitedPidIMRU : 열기 혹은 저장 기능을 사용한 응용 프로그램

경로 : HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU

 

 

 

Windows Registry 동작 원리(2)

 

USB Connection

  • USB 등 외부 저장매체 연결 흔적을 추적 가능
  • USB 제품명, 시리얼 번호, 최초 연결 시작, 마지막 연결 시각

모든 USB

  • 시스템에 연결되었던 모든 USB 장치의 정보가 기록됨
  • VID와 PID를 검색하면, USB 종류를 알 수 있음

경로 : HKLM\SYSTEM\ControlSet001\Enum\USB

 

USB 저장장치

  • 시스템에 연결되었던 모든 USB 저장장치의 정보가 기록됨
  • VID와 PID를 검색하면, USB 종류를 알 수 있음

경로 : HKLM\SYSTEM\ControlSet001\Enum\USBSTOR

 

마운트 디바이스

  • 시스템에 마운트되었던 장치의 리스트를 나타냄

경로 : HKLM\SYSTEM\MountedDevices

 

 

Shellbags

  • 사용자가 접근한 폴더 정보를 기록함
  • 삭제된 폴더의 정보도 찾을 수 있음
  • BagMRU : 폴더의 구조를 계층적 구조로 나타냄
  • Bag : 윈도우 사이즈, 위치 등 사용자의 환경설정을 저장

경로

  • HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags
  • HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
  • HKCU\Software\Microsoft\Windows\Shell\Bags
  • HKCU\Software\Microsoft\Windows\Shell\BagMRU

 

 

 

 

 

Windows Registry 실습(1)

우선 바탕화면에 registry 디렉토리를 생성해주고 그 안에 clean, raw, result 디렉토리도 생성해준다.

 

그리고나서 FTK Imager 프로그램을 켜고 USER 아래 자기 디렉토리 아래에 있는 3개 파일을 export 해준 후 아까 바탕화면에서 만든 registry 안에 있는 raw에 저장해준다.

 

이번엔 Windows로 들어가서 System32로 들어가고 그 안에 config로 들어가서 아래 파일들을 export 해주고 위와 같이 raw 에 저장해준다.

  • DEFAULT
  • DEFAULT.LOG1
  • DEFAULT.LOG2
  • SAM
  • SAM.LOG1
  • SAM.LOG2
  • SECURITY
  • SECURITY.LOG1
  • SECURITYLOG2
  • SOFTWARE
  • SOFTWARE.LOG1
  • SOFTWARE.LOG2
  • SYSTEM
  • SYSTEM.LOG1
  • SYSTEM.LOG2

다 export를 해주었다면 도구를 설치해야 한다.

 

https://dfrc.korea.ac.kr/infra_dfrc_tools

 

REGA를 설치해준다. 압축을 풀땐 꼭 registry 폴더 안에 풀어야한다. 그리고 레지스트리 파일 수집을 누르고 시스템 레지스트리 수집을 누르고나서 REGA... 폴더안에 "새 폴더 만들기" 버튼을 눌러서 raw 폴더를 만들고 확인을 누르고 기다리면된다.

 

그리고 이제 분석을 해야한다. 레지스트리 분석을 누르고 표준 시간대 설정을 해주고 아래 사진처럼 설정하고나서 분석 시작을 누르고 기다려주면 된다. 완료되면 두번째 사진처럼 뜬다.

 

 

옆에 도구 상자를 누르면 아래 사진처럼 보기 편하게 나온다.

 

Windows Registry 실습(2)

RLA 프로그램 설치

https://ericzimmerman.github.io/#!index.md

 

MDwiki

 

ericzimmerman.github.io

이것도 registry 폴더 안에 압축을 풀어준다. 그리고 registry 폴더로 cmd 창을 열어서 .\rla.exe 를 해주면 아래 사진처럼 뜬다.

 

그리고 첫번째 사진처럼 .\rla.exe -d "raw 절대경로" --out "clean 절대경로" 를 해주면 원래 로그가 병합된 파일이 나와야하는데 난 두번째 사진처럼 나왔다..

 

나중에 로그가 나오면 사용할 도구

https://github.com/keydet89/RegRipper3.0

 

GitHub - keydet89/RegRipper3.0: RegRipper3.0

RegRipper3.0. Contribute to keydet89/RegRipper3.0 development by creating an account on GitHub.

github.com

아래 사진처럼 다운로드 집을 눌러주고 이번에도 registry 폴더 안에 압축을 풀어주면 된다.

그리고 rr.exe를 열고 Hive file에는 clean에 있는 로그를 불러오고 report file에는 result 폴더를 열고 이름은 맨 뒤 단어로 해주면 된다. 그리고 생성한 result들은 노트패드로 열고 용어들을 검색하면서 이해하면 된다.

FriendlyName - USB 이름