모두의 dream
윈도우 아티팩트 정리 본문
아티팩트: 운영체제가 자동으로 생성하는 파일 (생성증거)
침해사고 조사를 할때는 아티팩트들의 타임라인을 잘 기록하여 순서대로 나열해야 시간을 단축시킬 수 있다.
* 모든 경로는 윈도우 7 이상 기준.
관련 docs:
http://www.forensic-artifact.com/windows-forensics/linkfile
https://github.com/Psmths/windows-forensic-artifacts?tab=readme-ov-file
분석 도구: https://ericzimmerman.github.io/#!index.md (웬만한건 거의 다 있음)
아티팩트 일괄 수집 도구:
KAPE: https://ericzimmerman.github.io/KapeDocs/#!index.md
BITLive: https://github.com/Plainbit/BITLive/blob/master/BITLive_win/BITLive_win.bat
Autopsy (통합 포렌식 도구): https://www.autopsy.com/
실행 아티팩트 (Windows execution artifacts)
amcache
최근 실행한 프로그램에 대한 정보 저장
프리패치 파일과 병행하면 프로그램의 전체적인 타임라인 구성 가능
윈도우7 에서는 RecentFileCache.bcf
- 경로
- %SystemDrive%\Windows\appcompat\Programs\AmCache.hve
- 관련 도구
- AmcacheParser : https://ericzimmerman.github.io/#!index.md
- Reference
Prefetch, Superfetch
- Prefetch
- 윈도우에서 실행파일을 실행할 때 속도 향상을 위한 목적으로 생성하는 파일
- 실행파일이 사용하는 시스템 자원을 프리패치 파일에 미리 저장 후 부팅 시 프리패치 파일을 모두 메모리에 로드.
- 응용프로그램 이름, 실행 횟수, 마지막 실행 시각, 참조 목록(실행 시 인자 파일) 정보 획득 가능
- 관련 도구
- Superfetch
- 프리패치 파일도 시간이 지나면서 사용하지 않는 경우 페이지 아웃되어 페이지 파일로 관리되게 되고 결국 파일에서 읽는 상황이 되어 기대했던 성능 향상은 미비해짐. (프리패치의 한계)
- 슈퍼패치는 이 한계를 해소해줌.
- 슈퍼패치 파일에 사용자의 사용 패턴을 기록해두고 자주 사용하는 프로그램의 프리패치 데이터가 페이지 아웃(page-out)될 경우, 이를 다시 메모리로 페이지 인(page-in) 시키는 기능을 수행
- 슈퍼패치는 시간 대를 나누어 자주 사용되는 프로그램 목록을 관리하고, 이렇게 관리되는 프로그램은 페이지 아웃이 일어나지 않도록 도와준다.
- 경로
- C:\Windows\Prefetch
- Reference
점프 리스트
최근, 자주 접근하는 문서, 파일 등에 대한 정보가 담겨있음.
- 경로 C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Recent
- 관련 도구
- JumpList Explorer
이벤트 로그
윈도우 구성 요소의 유지 및 관리를 위한 로그 서비스
윈도우 시스템에서 발생하는 각종 이벤트 로그가 저장되어 있음.
기존 이벤트 로그의 부족한 점을 보완하기 위해 Sysmon 이라는 드라이버가 존재함.
Sysmon: 기본 윈도우 이벤트 로그로는 한계가 있는 프로세스 생성, 네트워크 연결 등을 이벤트화.
https://learn.microsoft.com/ko-kr/sysinternals/downloads/sysmon
- 경로
- %SystemRoot%\Windows\System32\winevt\Logs
- 관련 도구
- 윈도우 이벤트 뷰어
File Metadata ($MFT, $LogFile, $UsnJrnl, LNK File)
메타데이터: 파일 이름, 위치, 시간, 속성 크기 등 관리를 위한 정보.
NTFS 에서는 MFT(Master File Table) 내에 Entry 형태로 메타데이터 저장. → MFT Entry
MFT 에 접근하려면 MBR → VBR 을 순서로 분석해서 찾아 내야 함.
MFT 를 학습하는 이유
- 디스크에 존재하는 파일(아티팩트)의 존재 여부를 확인하기 위해 MFT를 해석해야 함
- 사용자가 생성한 파일/아티팩트 모두에서 파일의 메타정보에 대한 이해를 위해 MFT 속성에 대한 이해가 필요함
파일의 수가 늘어날 경우 MFT의 크기도 증가한다. (동적할당)
- $MFT
- 모든 MFT Entry를 가지고 있음.
- 모든 파일의 생성, 접근, 수정 시간과 소유자 정보를 가지고 있음.
- 마지막 작업 시간만 기록되기 때문에 상세한 작업 기록 타임라인을 확인하기 위해선 $LogFile, $UsnJrnl 파일을 확인할 필요가 있음.
- $LogFile
- 파일 및 폴더 생성, 삭제, 내용 변경, MFT Entry 내용 변경과 같은 트랜잭션 작업 내용을 기록하여 트랜잭션 오류 발생 시 복구를 위한 파일.
- $UsnJrnl
- $Extend 폴더 내에 존재, LogFile 과 비슷한 내용이 저장.
- LogFile은 오류 복구 목적이라면 UsnJrnl은 트랜잭션 작업이 끝난 후의 내용을 기록.
- 파일 및 폴더의 속성변경 정보.
- LNK Files
- LNK 파일은 윈도우 바로가기 파일로 대상 파일 또는 프로그램에 대한 정보와 타임스탬프 및 메타데이터가 포함되어 있다.
- LNK 파일을 분석이 필요하지만 삭제된 파일의 단서를 획득할 수 있다.
- 경로
- MFT: C:\$MFT
- LogFile: C:\$LogFile
- UsrJrnl: C:\Extend\$UsrJrnl
- LNK
- 바탕 화면: C:\Users\<user name>\Desktop
- 최근 문서: C:\Users<user name>\AppData\Roaming\Microsoft\Windows\Recent
- 시작 프로그램: C:\Users\<user name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
- 빠른 실행: C:\Users\<user name>\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
- 관련 도구
- NTFS log tracker : https://sites.google.com/site/forensicnote/ntfs-log-tracker
- Reference
지속성 아티팩트 (windows persistence artifacts)
레지스트리 (Registry Hives)
윈도우에서 운영체제 및 응용프로그램 운영에 필요한 정보를 저장
- Registry hive
- 루트키와 그 아래 있는 서브키로 이루어진 트리 구조를 Registry hive 라고 한다.
- hive file
- Registry의 정보를 가지고 있는 물리적인 파일.
- HKCU: NTUSER.dat
- HKLM: SYSTEM, SOFTWARE, SECURITY, SAM
- HKU: DEFAULT, SID
- 레지스트리 루트키
- HKEY_CLASSES_ROOT(HKCR)
- HKEY_CURRENT_USER(HKCU)
- HKEY_LOCAL_MACHINE(HKLM) - 하드디스크 하이브 파일 + 메모리 하이브 파일
- HKEY_USERS(HKU) - NTUSER.DAT + usrClass.dat
- HKEY_CURRENT_CONFIG(HKCC)
- Shell Bags (NTUSER.dat, Usrclass.dat)
- NTUSER.DAT는 데스크톱, Windows 네트워크 폴더, 원격 컴퓨터 및 원격 폴더에 대한 ShellBags 정보를 저장
- UsrClass.dat는 데스크톱, ZIP 파일, 원격 폴더, 로컬 폴더, Windows 특수 폴더 및 가상 폴더에 대한 ShellBags 정보를 저장
- 경로
- SYSTEM, SOFTWARE, SECURITY, SAM, Default: %SystemRoot%\Windows\System32\Config
- NTUSER.dat : C:\users\사용자 폴더\
- Usrclass.dat: C:\users\사용자 폴더\AppData\Local\Microsoft\Windows\UsrClass.dat
- 관련 도구
- Registry Explorer
- ShellBags Explorer
- mitec Windows Registry Recovery
- RegRipper
- Reference
슬랙, 비할당 영역
삭제된 파일의 잔여물이나 데이터 조각이 포함될 수 있다.
파일 슬랙(file slack) 이란 이전 파일의 데이터를 포함할 수 있는 클러스터의 사용되지 않은 부분을 말한다.
파일 카빙을 통해 복원할 수 있다.
- 관련 도구
- 카빙 도구: disk drill, FTK, X-ways, autopsy 등등
Thumbnail Cache
썸네일: 큰 그래픽 이미지를 축소한 것으로 많은 양의 이미지를 빠르게 탐색하기 위한 것.
윈도우에서 열어봤던 이미지, 프로그램, 영상 등의 미리보기 혹은 아이콘 사진이 db 형태로 저장되어 있다.
- 경로
- C:\Users\user\AppData\Local\Microsoft\Windows\Explorer
- 관련 도구
- thumbcacheviewer (https://thumbcacheviewer.github.io/)
휴지통 (Recycle Bin)
윈도우에서 삭제된 파일들이 모여있는 폴더.
- 경로
- C:\$Recycle.Bin
- 관련 도구
- FTK Imager
SRUM
시스템 자원 활용도를 추적하는데 사용되는 기능이지만 포렌식으로도 활용 가능하다.
응용프로그램 관련된 내용들을 추적할 수 있다.
- 경로
- HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\SRUM\Extensions
- C:\Windows\System32\sru\SRUDB.dat
- 관련 도구
- SrumECmd
브라우저 아티팩트
관련 도구: DB Browser for SQLite (https://sqlitebrowser.org/)
Google Chrome
- 경로
- Users/[사용자명]/AppData/Local/Google/Chrome/User Data/
Microsoft Edge
- 경로
- Users/[사용자명]/AppData/Local/Microsoft/Edge/User Data/
FireFox
- 경로
- Users/[사용자명/AppData/Roaming/Mozilla/Firefox
윈도우 스케줄러
윈도우 작업 스케줄러
- 경로
- C:\Windows\System32\Tasks
'분야 > Digital Forensics' 카테고리의 다른 글
Ext4 파일 데이터 접근 (with Directory Entry) (1) | 2023.09.15 |
---|---|
Ext4 File System (0) | 2023.09.12 |
NTFS 삭제된 파일 복원 (1) | 2023.08.29 |
파일시스템 분석 실습 준비 (vmdk & 이미징) (0) | 2023.08.28 |
NTFS File System (1) | 2023.08.28 |