-
Jumplist, Prefetch 개념 및 실습Digital Forensics/inflearn 2023. 11. 15. 03:35
개념정리
점프리스트
점프리스트란?
최근 사용한 파일/폴더에 빠르게 접근하기 위한 구조
종류
- Automatic : 운영체제가 자동으로 남기는 항목
- Custom : 응용프로그램이 자체적으로 관리하는 항목
경로
- %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
- %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
Prefetch
- 응용프로그램의 빠른 실행을 위해서 존재하는 파일
- 응용프로그램을 실행할 때에 생성됨
-실행 파일 이름, 경로 알 수 있음
-실행 파일의 실행 횟수
-실행 파일의 마지막 실행 시간(마지막뿐만 아니라 최근 몇개들도 남아있음)
-실행 파일의 최초 실행 시간
실습 과정
Jumplist
FTK Imager 이용하여 추출
- %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
- %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations
JumpList Explorer 이용하여 분석
FTK imager 실행 → Add Evidence Item → Logical Drive → 저번 lnk 실습 때처럼 기본 그대로 두고 finish → 위의 경로 찾아가서 AutomaticDestinations랑 CustomDestinations 둘 다 선택해서 export files → 바탕화면 lnk_jumplist 폴더에 추출 → 추출된 거 보기 전에 저거 두 개 ftk imager에서 각각 들어가보면 처음 보는 확장자명으로 파일 엄청 많음
위에 링크 들어가서 JumpList Explorer 왼쪽꺼 1.4.0.0 다운로드 → 바탕화면 lnk_jumplist 폴더에 압축풀기 → 들어가서 JumpListExplorer.exe 실행 → file → Load jump lists → 파일 선택은 아까 추출했던 AutomaticDestinations 폴더랑 CustomDestinations 폴더 각각 들어가서 Ctrl+A로 전체선택 후 열기 → 조금 에러 뜨는 건 무시 → App ID별 jumplist가 남게 됨, App ID Description 보면 알려진 App ID들은 표시를 해주는데 안 알려주는 unknown AppId 같은 건 도구도 그게 무슨 응용프로그램에 대한 점프리스트인지를 모른다는 것(실제로 남는 게 App ID라서 App ID Description이 안 남을 수 있음) → 가운데 부분에서 하나 누르면 좌측 하단 부분이 바뀌는데, 좌측은 하나하나가 다 lnk들(윈도우 작업표시줄에서 아이콘 우클릭했을 때 최근 사용한 목록들 뜨던 것들 포함) → 이 중에서 lnk 하나 클릭하면 우측 하단 부분이 바뀌는데, 이때 뜨는 건 지난 바로가기 실습 때 LECmd.exe로 분석했을 때와 같음 → 또는 가운데 부분에서 하나 클릭해놓고 file-export-lnk files 누르고 경로는 바탕화면 lnk_jumplist 밑에 'lnk_export'라는 새폴더 만들어서 선택 → lnk_export 폴더 들어가보면 좌측 하단 부분에 있던 lnk들이 다 추출되어있음 → 이걸 분석하려면 LECmd.exe를 이용해서 이 디렉토리 전체를 지정해서 분석 or JumpList Explorer의 좌측 하단 부분에서 하나하나 봐도 됨
Prefetch
- %SystemRoot%\Prefetch
- WinPrefetchView 도구 이용하여 분석 (https://www.nirsoft.net/utils/win_prefetch_view.html)
위 링크 접속 → 쭉 내려서 Download WinPrefetchView (64-bit) → 바탕화면 ProgramExecution 폴더에 압축 풀기 → 생성된 폴더 들어가서 WinPrefetchView.exe 실행 → 알아서 컴퓨터에 프리패치들 불러옴(But 이 프로그램 실행함으로써 컴퓨터가 변하게 되어서 무결성 훼손 → write blocker 쓰기방지 장치 달아서 usb내에서 이거 담아와서 실행 or cmd에서 옵션과 함께 WinPrefetchView.exe 실행하면 이 프리패치 파일들을 별도로 수집해서 열어줌) → 파일탐색기로 위의 프리패치 경로 가보면 pf 확장자 파일들이 있는 걸 볼 수 있음(이 파일들을 WinPrefetchView.exe가 자동으로 수집해서 가져오는거임) → 이 프로그램에서 실행했던 거 하나 더블클릭하면 위 사진과 같이 properties 창이 뜸 → 이름, 경로, 생성/변경 시간, 실행 횟수, 마지막 런타임 등을 알 수 있음(마지막 런타임은 딱 마지막 하나만 나오는 게 아닌, 최근 런타임 몇개 같이 나옴)
*예를 들어 악성 프로그램을 분석한다면 삭제/변경 여부와 상관없이 여기서 실행됐던 모든 응용프로그램의 정보들을 알 수 있어서 유용함 → 처음에 프리패치로 한번 보고 MUICache, AmCache & ShimCache 등으로 교차검증을 해서 어떤 사람이 어떤 응용프로그램을 실제로 이때 실행한 게 맞는지 등을 체크하면 됨
새로 알게 된 것
지난 lnk 실습을 하면서 jumplist는 뭘까 생각하고 있었는데 이렇게 lnk와 밀접한 연관이 있는 줄은 몰랐다. 그리고 Prefetch도 오늘 처음 공부해 보았는데 설명해주신 강의 내용이 재밌고 유익해서 전체적인 개념 이해가 빠르게 잘 되었다. 강의 마지막 부분에서는 배운 툴로 악성 프로그램을 분석할 때의 꿀팁도 알게 되었다.
본 글은 위의 인프런 강의를 듣고 작성하였습니다.
'Digital Forensics > inflearn' 카테고리의 다른 글
ThumbnailCache & IconCache, Windows Timeline, Event Logs, VSS, Windows Search, Recycle Bin 개념 및 실습 (1) 2024.01.10 MUICache, AmCache & ShimCache, 브라우저 아티팩트 개념 및 실습 (1) 2023.11.21 $MFT, $LogFile, $UsnJrnl, 바로가기(.LNK) 개념 및 실습 (1) 2023.11.07 Windows 포렌식 개요 & Registry 개요 (0) 2023.10.11 침해사고 대응기법 - Volatility Cridex & CTF-d, GrrCon 2015(+도구 설치, 환경 설정, 문제 다운로드) (1) 2023.10.04