4-2) 윈도우 아티팩트2
Last updated
Last updated
한번씩 출제되는 문제로 상당히 많은 주요 정보를 가지고 있는 것이 링크파일 입니다. 단순히 바로가기 파일로 볼 수도 있으나, 최근에 실행했던 파일, 기타 USB와 같은 외부 저장장치 사용 흔적 분석에도 많은 도움이 되는 주요 분석대상 파일입니다.
단순 Link 파일 분석 문제도 있을 수 있으나, 문제를 해결하는 과정에 분석 대상이 되는 주요 파일 유형 중 하나 입니다.
[EnCase]
EnCase로 Link 파일 분석을 위해선 Artifacts - Windows Artifact Parser 를 살펴봅니다.
Base Path 를 더블클릭하여 정렬한 뒤 링크파일들을 살펴보면 원본파일이 다른 드라이브(USB와 같은 외부 저장장치)에 있었던 경우를 파악해볼 수 있습니다. [Report]를 살펴보면 주요한 내역으로 원본 파일의 경로, 원본 파일이 있던 대상 파일시스템의 볼륨 시리얼 넘버, 원본 파일의 크기 등의 주요 정보를 확인할 수 있습니다.
이러한 바로가기 파일은 사용자가 직접 만들 수도 있으나 자동으로 만들어지는 경우도 있습니다. 특히 아래 경로의 경우 윈도우가 최근 실행한 파일의 경우 링크파일 형태로 만들어 두어 저장하고 있어 포렌식 분석시 매우 중요한 분석 대상이 됩니다. \Users\[사용자]\AppData\Roaming\Microsoft\Windows\Recent\
다만 이러한 링크파일은 프로세싱을 하거나 따로 분석 프로그램을 이용하여 분석하여야 원본에 대한 분석 내용도 확인이 됩니다.
[기타 분석 프로그램]
Link 파일을 분석해주는 전용 분석도구를 사용해보도록 합시다. (시험에서도 제공하는 도구 입니다.)
\Users\[사용자]\AppData\Roaming\Microsoft\Windows\Recent\ 에서 외부 저장장치, 주요 링크파일로 보이는 파일을 선택 후 추출하여 보겠습니다.
이 링크파일을 추출하여 링크파일 전용 분석 도구로 살펴봅시다.
[20170327_LinkParser_DFRC] Folder 를 선택 후 link 파일들을 저장한 폴더를 선택하면 여러개의 링크 파일을 확인할 수 있습니다.
[LinkParser_4Discovery] Folder 아이콘 선택 후 link 파일들을 저장한 폴더를 선택하면 링크파일 정보를 확인할 수 있습니다.
크 파일의 주요 부분을 한번 살펴보겠습니다. - File Size : 링크파일의 원본 대상 파일의 논리적 크기 - Machine ID : 장치이름(Machine Name / Computer Name) - DriveSerialNumber/Volume Serial Number : 링크파일 대상의 파일시스템 시리얼 넘버 > 링크파일의 볼륨시리얼 넘버와(DriveSerialNumber)값과 저장매체의 볼륨시리얼 넘버가 일치하다면 해당 저장매체에 파일이 있었다는 것을 입증할 아티팩트로 볼 수 있습니다.
Link 파일의 경우 시험에 나온 유형을 보면 링크 파일이 만들어 질 때 다양한 정보가 함께 저장 됩니다. 1. 원본파일의 이름, 경로, 크기 2. 링크파일이 만들어 지는 파일시스템의 볼륨 ID 3. 링크파일이 만들어 지는 운영체제의 장치이름(Machine Name) 4. 링크파일이 만들어지는 PC의 랜카드의 MAC 주소 시험에서도 종종 출제되고, 출제가 안되더라도 시나리오 관련 문제 해결 과정에서 많이 활용되는 아티팩트 입니다.
추가로 Recent 에 있는 링크 파일을 전체 선택하여 추출하여 하나의 폴더에 저장합시다. 폴더를 선택 후 우클릭 - Entries - Copy Folders를 선택하여 폴더를 추출하겠습니다.
도구로 살펴보면 가장 우측에 MAC Address 값이 위치합니다. 이는 링크 파일이 생성될 때 사용된 네트워크 어댑터의 현재 MAC 주소를 나타냅니다. MAC는 해당 PC의 랜카드의 고유값으로 사실상 해당 PC에서 작업하였다는 것을 증명할 수 있는 주요 값으로 볼 수 있습니다. [20170327_LinkParser_DFRC]
*주의사항 20170327_LinkParser_DFRC를 사용할 경우 MAC를 체크할 때에는 Folder보다는 File을 선택하여 개별 분석하는 것을 추천합니다.
휴지통은 윈도우에 있는 아티팩트로 파일을 단순 삭제 할 경우 저장되는 곳입니다. EnCase의 Artifacts 에서 Windows Artifact Parser 를 살펴보면 Recycle Bin 에서 휴지통에 있는 파일을 확인할 수 있습니다. 파일명을 선택하면 삭제된 시간 정보도 확인이 가능합니다.
해당 파일의 위치로 이동해보겠습니다. 우클릭 - Go to file을 선택합니다.
해당 위치로 이동하게 됩니다.
(참고로 필수는 아닙니다.) 시나리오 상 문제 해결에는 크게 중요한 요소는 아니나 이전에 휴지통 관련 문제가 출제되었는데 휴지통 특성을 알아둘 필요가 있습니다. 먼저 $ITKABD1.txt 파일을 살펴보겠습니다. Hex 에서 Codepage를 Unicode로 설정하면 경로를 확인할 수 있습니다.
FTK Imager에서 분석용 이미지를 연 뒤 휴지통 부분을 살펴보겠습니다. $ITKABD1.txt 는 동일하게 위치하지만 $RTKABD1.txt 파일이 있고 확인해보니 EnCase에서 "휴지통테스트.txt" 파일의 데이터를 가지고 있습니다.
사실 파일이 삭제되어 휴지통에 저장될 때는 아래 2가지 파일이 생성됩니다. $R~ : 삭제된 파일의 데이터 $ I~ : 삭제된 파일 관련정보 (삭제된 파일 크기, 삭제 시간, 파일경로 길이, 파일 경로 명) EnCase에서는 $R~ 파일이 없이 $I를 이용하여 원래의 파일명으로 바꿔서 보여주고 있습니다.
최근에는 거의 출제가 되지 않지만 이전에는 휴지통에 파일이 저장될 때의 구조를 물어보는 주관식 문제가 있었습니다. 다만 최근에는 이러한 문제보다는 시나리오 상 파일을 찾는 과정에서 휴지통을 살펴봐야하는 문제가 출제되는 경향이 있는 듯 합니다!
썸네일 캐시는 Windows 탐색기가 생성하는 데이터베이스 파일로, 사용자가 파일을 미리보거나 탐색할 때 해당 파일의 미리보기 이미지를 저장합니다.
썸네일 캐시는 사용자가 특정 파일이나 이미지를 열거나 탐색한 흔적을 확인할 수 있는 중요한 단서를 제공합니다. 특히 원본 파일이 삭제되어도 썸네일은 남아있을 수 있기 때문에 매우 주요한 증거 아티팩트 중 하나로볼 수 있습니다.
분석 도구
EnCase에서 윈도우가 설치된 파일시스템의 전체 플레이트 선택 후 Name을 정렬한 뒤 "thumb" 또는 "thumbcache"를 입력하여 빠르게 검색하여 ThumbCache_~ 가 위치하는 폴더를 찾습니다.
또는 Users{사용자}\AppData\Local\Microsoft\Windows\Explorer
폴더로 이동합니다.
해당 폴더에서 용량이 최소 1000이상인 것들을 선택 한 뒤 파일을 추출해보도록 하겠습니다.
추출한 파일을 드래그 한 뒤 Thumbcache Viewer에 드래그 하여 파일을 열게 될 경우 썸네일 캐시 DB에 저장된 이미지를 확인할 수 있습니다.(Data Size가 0이 아닌 데이터)
[참고 - 필수 아님] ThumbCache 파일내에서 해당 썸네일 이미지 파일을 한 번 직접 추출 해보겠습니다. Cache Entry Hash의 경우 빅엔디안으로 저장되어 있으니, 리틀엔디안으로 변환한 뒤 검색해보도록 하겠습니다. > d5 cd d8 55 47 b3 97 3f (빅엔디안) -> 3f 97 b3 47 55 d8 cd d5 (리틀엔디안)
검색한 Cache Entry Hash로 부터 8byte 뒤에 4바이트는 데이터 길이를 나타냅니다. 리틀엔디안으로 저장된 값을 변환하여 크기를 보겠습니다. 96 90 00 00 -> 00 00 90 96 -> 37014
Data offset에서부터 데이터 크기 만큼 선택하여 HxD에서 블록 선택을 한 뒤 복사합니다.
새로 파일 생성 한 뒤 붙여넣기 하여 저장합니다.
bmp이미지 시그니처이기에 bmp 확장자 수정 후 열어보면 썸네일 이미지를 확인할 수 있습니다.
윈도우에서 프린터 기록이 저장되는 경로가 정해져 있습니다. 그러나 프린터마다 설정이 다르고 구조가 다르기 때문에 내용을 확인 하는 방법은 다를 수 있습니다. 다만 중요한 것은 포렌식 전문가로서 프린터 기록 경로나 많이 알려진 파일 구조 정도는 살펴볼 수 있어야 할 듯 하여 소개 해드리도록 하겠습니다.
먼저 프린터 기록의 경우 정해진 경로가 있습니다. 아쉽게도 Autopsy 에서도, 시험에서 제공하는 도구 중에서는 윈도우 프린터 기록을 전용으로 분석해주는 도구가 없습니다. 따라서 실제 경로를 직접 살펴봐야 할 필요성이 있습니다. 실제 시험에서도 결국 이 경로를 알면 해결할 수 있는 수준으로 출제된 것으로 알고 있습니다.
먼저 아래의 경로를 가보도록 하겠습니다.
> Windows\System32\spool\PRINTERS
해당 경로를 살펴보면 SHD, SPL 파일이 위치합니다. 이는 프린트를 할 경우 생성되는 파일입니다.
이 중에서 SHD 파일을 Text로 살펴보면 프린터 명, 파일명, 등이 표시됩니다.
- .SHD: 인쇄 작업의 메타데이터와 상태 정보를 포함합니다. 즉, 인쇄 작업의 설정, 상태, 인쇄된 페이지 수, 사용된 프린터 드라이버 설정 등과 같은 정보가 이 파일에 저장됩니다.
- .SPL: 실제 인쇄 데이터(프린트 작업의 콘텐츠)를 포함합니다. 즉, 사용자가 인쇄하려고 한 문서, 이미지, 페이지 등의 내용이 이 파일에 저장됩니다. 이 SPL은 프린터 제조사 마다 다른 구조를 가질 수 있습니다.
먼저 00004.SPL 파일을 살펴볼건데 HEX를 보면 뜨문 뜨문 텍스트가 보입니다.
Transcript로 살펴보면 프린터 관련 텍스트를 간략히 볼 수 있습니다.
00004.SPL 파일을 한번 살펴보겠습니다. "EML" 기준 앞으로 41 바이트 앞에 01 부분을 선택 한 뒤 Decode - Picture를 선택하면 출력한 그림 내용을 확인할 수 있습니다.
파일을 추출한 뒤 HxD로 확인해보겠습니다. " EMF"가 보이는 위치에서 두 줄 반 앞쪽에 01 00 이 시작되는데 그 앞 부분을 선택 후 삭제 합니다. 그리고 다른 이름으로 저장해보도록 하겠습니다.
저장할 때에는 가능하면 그림 파일 확장자로 저장하여 봅시다.(JPG, BMP 등) 그리고 그림판으로 저장한 파일을 열어보겠습니다. (꼭! 그림판으로 열어봅시다.) 그림판 실행 후 드래그를 이용해서 열면 쉽게 열립니다!
결론적으로 SPL에서 EMF 구조의 프린트한 기록을 확인할 수 있습니다. EMF 구조는 Windows에서 사용되는 그래픽 파일 포맷으로, 인쇄된 문서를 정밀하게 저장할 수 있는 형식입니다.
(다만 시험에서 이렇게 까지 하지는 않을 가능성이 높으나 한번 정도는 실습 해보시길 추천합니다.)
반면 0003.shd 파일을 확인해보면 아무런 데이터가 없습니다. (spl의 경우 파일을 추출 후 압축파일 형태로 압축을 해제하여 구조를 볼 수는 있으나 내용을 확인하기에는 상당히 어렵습니다.) 0003.spl을 살펴보면 [Doc]에서 내용 확인이 가능합니다. 다행이 EnCase가 spl 구조를 분석해서 볼 수 있는 형태입니다. 모든 spl을 분석해서 보여주는 것은 아닙니다.
프린터에서 출력 시 데이터 형식을 EMF로도 선택할 수 있으나 필수는 아니며, 프린터마다 데이터 형식이 다양하게 됩니다. 따라서 모든 프린터가 이렇게 저장되는 것이 아닌 상황입니다.
정리하면, EMF 구조는 분석이 가능하나, 프린터 마다 다른 데이터 형식을 시험시간 내에 분석하는 것은 상당히 어려울 수 있습니다. - 00003.shd, 00003.spl의 경우 EMF 구조가 아닙니다. 다만 EnCase에서 분석 가능한 구조의 경우 내용 확인이 가능합니다. - 00004.shd, 00004.spl의 경우 EMF 구조로 헤더를 삭제하여 윈도우 그림판에서 열 수 있는 내용까지 확인이 가능합니다. 다만 실제 시험에서는 이렇게 헤더 부분을 삭제하여 EMF 파일의 내용을 확인 하는 식의 문제보다는 해당 경로에 가면 어렵지 않게 프린터 기록을 확인할 수 있는 수준으로 출제될 것으로 보입니다. EnCase에서 내용 확인이 가능한 SPL 구조로 저장하고 있을 수 있습니다. 또는 실제 기출에서도 프린터 기록이 저장되는 경로에 그림파일 또는 압축파일 등이 저장되어 내용 확인이 가능한 수준으로 출제될 것으로 보입니다. (실제 기출도 이런식으로 출제된 것으로 알고 있습니다. - 정확하진 않을 수 있습니다.)
다만 앞으로 시험에서는 이러한 문제가 출제된다면 SHD, SPL 파일을 분석할 수 있는 도구를 제공하거나 무료 도구와 EnCase 모두에서 확인 가능한 파일로 제공하는 것이 적절할 것으로 보이네요! (EMF 구조도 그렇고 프린터마다 다른 raw 포맷도 그렇고 최근 프린터 관련 문제의 출제 빈도는 매우 낮을 것으로 보입니다. 솔직히 실무에서도 프린터 흔적이 남아 있을 확률은 매우 적을 것이기 때문이죠..)
윈도우 앱의 경우 종류가 매우 많고 모든 앱 별로 다양한 경로를 모두 외울 수는 없습니다. 따라서 시험에 출제된 윈도우 앱 관련된 것만 추가하도록 하겠습니다. (계속 추가할 예정)
기출 문제 중 하나였던 스티커 메모 분석에 대해서 살펴보겠습니다.
스티커 메모 분석을 위해서는 SQLite 데이터베이스 파일을 분석할 수 있는 도구가 필요합니다. EnCase에서는 Sqlite 파일을 분석할 수 있는 플러그인 등, EnScript 등이 필요하게 됩니다. 다만 시험에서는 EnCase 기본 설치만 되어 바로 분석할 수 없습니다.
다만 시험장에서는 Sqlite를 분석 할 수 있는 전용 도구를 제공합니다.
먼저 [Win]키를 한번 누른 상태에서 "스티커 메모" 를 검색하여 보겠습니다.
또는 [Win] + R 실행창에서 아래 명령어를 실행 할 수 있습니다. > explorer.exe shell:appsfolder\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App
아래와 같이 간단한 메모 등을 입력 할 수 있는 기능입니다. 좌측 상단에 +를 누르면 새로운 메모를 추가로 할 수 있습니다. 우측 상단의 ... 을 선택하면 메모 배경색 또한 변경도 가능합니다.
이곳에 저장된 내용을 확인 하기 위해서는 Sticky Note를 분석해야 합니다. 우선 해당 앱의 경로 이동해보도록 하겠습니다. 윈도우가 설치된 파일시스템에서 Users/{사용자}/AppData/Local/Packages/Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe/ 폴더에서 LocalState 폴더를 살펴보면 plum.splite 파일이 발견됩니다. (빨리 찾기 위해서는 단순히 파일명을 plum으로 검색하면 됩니다.) 이 파일을 보면 hex 에서 시그니처가 SQLite format 3을 표시해주고 있습니다. 이 파일과 -shm, -wal 파일을 같이 추출하여 분석해보겠습니다.
위 3개의 파일을 추출 하여 분석하면 내용 확인을 할 수 있습니다. Sqlite 사용법 >> 5-1) Sqlite 열어보기 [DB Browser]
[SQL Export]
Note 테이블의 Text 컬럼 내용을 살펴보면 스티커 노트에 추가한 내용의 텍스트를 확인할 수 있습니다.
실제 시험에서도 이렇게만 해결할 수 있을까? 사실 스티커 메모를 사용하였다는 어떠한 흔적이 없이 바로 이 경로를 살펴보기는 사실상 어렵습니다. 따라서 검색 기능을 이용해서 한번 찾아보도록 하겠습니다. 먼저 EnCase에서 검색을 쉽게 하기 위한 작업을 해보도록 하겠습니다. 트리창에서 우클릭 Process - Process All - Create Custom 을 선택 합니다.
Index text and metadata를 선 택 한 뒤 Chiness, Japanese, and Korean 을 체크한 뒤 프로세스를 진행합니다. 제대로 결과가 나오지 않거나 새로 프로세스를 진행하고자 할 경우 Overwrite evidence cache 를 체크합니다. 이 옵션의 경우 상당한 시간이 소요될 수 있습니다. (키워드 검색에서 다시 상세 안내 예정)
View - Processor Manager에서 진행 상황을 확인할 수 있으며 프로세스가 완료되면 View - Indexed Items 로 이동합니다.
"검색어"를 입력한 뒤 [Run]을 실행하면 검색이 실행되고 우측에 많은 파일들이 발견됩니다. 파일 선택 후 하단에 Transcript 에서 [Compressed View]를 선택하면 검색된 값 부분이 확인됩니다.
Text, Hex 에서도 Compressed View를 이용하여 검색된 부분 확인이 가능합니다.
또는 키워드 검색을 통해서 찾을 수도 있을 것 입니다. 검색할 대상 부분을 체크한 뒤 [Raw Search Selected] - New Raw Search Selected 를 선택합니다.
New를 통해 검색할 키워드를 추가합니다. 추가 시 [UTF-8] 도 추가합니다.
우측 하단을 클릭하면 진행 상황을 확인할 수 있습니다.
Items, Hits의 숫자를 클릭하면 해당 파일들을 확인할 수 있으며, 하단의 Hex, Text, Transcript 등에서 내용 확인이 가능합니다. 아쉽게도 포렌식 한글은 Transcript 에서는 잘 안 보이는군요!
이러한 검색 기능을 이용한다면 Sqlite 를 분석하지 않더라도 파악해볼 수는 있습니다. (암호화되지 않은 경우) 다만 실제 시험에서 검색은 매우 많은 시간이 소요될 수 있습니다. 그리고 시나리오, 문제해결을 위해 파일 구조들을 살펴봐야 어떤 키워드를 검색해야 할지 파악이 됩니다. 따라서 이후에 검색 기능도 살펴본 뒤 연습 문제를 풀어보는 과정에서 검색 기능을 시험 시작하고 언제쯤 시도하고, 어떤 방식으로 하는 것이 효율적 일지를 살펴보면서 연습해보도록 하겠습니다. 최근 시험에서는 스티커 메모에 있는 전화번호(010.1111.2222 또는 010-1111-2222 이런 형식)를 찾아야 하는 문제가 출제되었었다고 하네요!
정리하면 스티커 메모의 경우 Sqlite라는 데이터베이스 구조의 파일에 저장된 데이터를 찾아야 합니다. 실제 시험에서는 키워드 검색 기능을 통해서 찾을 수 있습니다. 다만 Sqlite 파일 구조를 알고 있고 전용 도구를 통해 테이블을 살펴본다면보다시험에서 요구하는 데이터를 찾을 가능성이 높을 것입니다.
윈도우 아티팩트의 경우 사실상 어느정도 정해진 경로에 특정 파일들이 위치 하기 때문에 다양한 도구가 바로 분석을 해주고 있습니다. 이러한 도구를 활용하여 시험에서 요구하는 답안을 찾아 작성하는 연습을 한다면 어렵지 않게 문제 해결을 할 수 있을 것 입니다.
추가로 EnCase에서는 위의 내용들을 조금 더 보기 편하게 Case Analyzer 라는 기능을 제공하고 있습니다. 다음장에서 이를 확용하는 부분도 한번 살펴보시길 바랍니다.
1) Link Parser(DFRC) : 2) Link Parser(4Discovery) 아래 Link Parser.zip 를 통해 다운로드 가능합니다. 프로그램 자체는 매우 간단하기 때문에 분석 과정에서 2가지 도구 모두 사용해보도록 합시다.
> [20170327_LinkParser_DFRC]
시험장에서 제공하는 썸네일 분석도구(Thumbcache Viewer 1.0.4.0 / Erickutcher) - 도구 공식 사이트 : - 다운로드