Security & Forensic

반응형

사용자의 PC 사용 성향, 패턴을 분석하는데 유용하다, 문서 작업을 많이 하는지 인터넷을 많이 하는지.......주로 어떤 프로그램을 많이 실행하는지 또한 고의적으로 삭제하지 않는 한 OS에 의해 삭제되지 않으므로 삭제된 프로그램이나 파일의 사용 흔적을 조사할 수 있다.

RecentDoc 분석
Windows 탐색기를 통해 최근 오픈된 문서 목록
최근 접근(사용) 폴더/문서, 거의 lnk 파일 ( = 바로가기 파일) 형태로 존재, 폴더 목록에 대한 lnk 파일도 존재한다.

Recent 디렉터리에는 최근에 사용된 파일이나 폴더들의 항목들이 '바로가기'의 형태로 존재

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent Folder

F:\temp>dir /a-d C:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent Folder /O-D 
2020-03-09  오후 01:42               466 temp (9).lnk 
2020-03-09  오후 01:42               687 DFIR-Windows-Behaviour-Analyze.docx.lnk 
2020-03-09  오후 12:51               748 2020년도.lnk
......


링크파일분석 참고 : https://secuworld.tistory.com/24?category=849780

폴더로 관리되는 RecentDoc은 최근에 접근, 열람한 문서 정보가, 레지스트리에 저장되는 UserAssist는 주로 최근에 실행한 응용 프로그램 정보가 저장된다.

 

참고로 최근 열어본 문서 레지스트리
HKU\%UserSID%\Software\Microsoft\Office\{Version}\{Program}\File MRU
HKLM\Software\HNC\Hwp\6.5\RecentFile
HKLM\Software\HNC\Hwp\{Version}\HwpFrame\RecentFile
HKU\%UserSID%\Software\Adobe\Acrobat Reader
HKU\%UserSID%\Software\Adobe\Adobe Acrobat
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU
HKU\%UserSID%\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU

RecentfilesView
GUI

CLI
F:\tool\forensic\recentfilesview>RecentFilesView.exe /sxml "f:\temp\RecentFiles.xml" /sort ~"Modified Time"


F:\tool\forensic\recentfilesview>F:\tool\forensic\LogParser\LogParser.exe -i:xml "select * from 'f:\temp\RecentFiles.xml'"

 

RecentFiles.xml 파일 내용

regripper
F:\tool\forensic\recentfilesview>F:\tool\forensic\RegRipper2.8\rip.exe -r f:\test\reg-hive-backup\chohb.NTUSER.DAT -p recentdocs

F:\tool\forensic\recentfilesview>F:\tool\forensic\RegRipper2.8\rip.exe -r f:\test\reg-hive-backup\chohb.NTUSER.DAT -p recentdocs_tln

JumpList 분석

Win 7 이상 . 최근 접근한 문서나 자주 열람하는 문서 정보

윈도우 7 이전에는 Recent와 UserAssist로 사용자의 편의성을 위하여 목록들을 유지하였다. 하지만 7에 와서는 이 두개에 더해 새로운 기능이 추가되었는데 바로 점프리스트이다. 점프리스트란 작업 표시줄에서 아이콘에 마우스를 우클릭하면 이전에 열었던 목록이나 자주 여는 파일의 목록들이 나타난다. 이를 점프리스트라 한다.

점프 목록은 윈도우 7+에서 응용프로그램 실행 시 작업 표시줄에 표시된다. 작업 표시줄에 나타나는 응용프로그램에 마우스를 위치시킨 후 마우스를 우클릭하면 해당 응용프로그램으로 최근에 열거나 사용했던 파일들이 표시된다. 이를 점프 목록이라 부른다. 다음은 Adobe Acrobat 프로그램의 점프 목록이다.

바로가기(lnk, 링크파일)는 단순히 특정 개체에 대한 정보와 실행 통로를 제공해 주는데에 그치는 반면, 점프 리스트는 아래와 같은 정보를 추가적으로 저장하여 사용자의 편의를 높혀준다.

  • Recent(최근 항목) : 응용프로그램을 통해 최근 열람한 파일. 기존 최근 접근 문서 목록도 점프리스트에 포함
  • Frequent(자주 사용하는 항목) : 응용프로그램을 통해 자주 열람하는 파일
  • Tasks(작업) : 경우에 따라 미디어 재생, 새 문서 작성 등의 기능을 빠르게 이용
  • Pinned(사용자 고정) : 응용프로그램의 사용이 종료되어도 작업 표시줄에 응용프로그램 아이콘을 남겨두기 위한 기능(사용자가 자주 사용하는 응용프로그램일 가능성이 크다)

점프리스트는 Windows 7부터 추가된 기능으로 바로가기의 확장형이라고 볼 수 있기 때문에, 정보의 해석과 활용은

바로가기 링크 파일과 유사하다. 다만 기존 링크파일 외 새롭게  추가된 전용 포멧을 사용하는 .CustomDestinations 파일과 컴파운드 파일 포맷을 사용하는 .automaticDestination-ms 파일이 각각 존재하기 때문에, 전용 도구와 컴파운드 뷰어를 활용하여 추가로 분석을 해야한다. 

“Recent” 라는 이름으로 이전에 Acrobat으로 열었던 파일 목록을 저장하고 있다. 자주 방문한 경로나 파일은 “Frequent” 라는 이름의 목록으로 따로 표현해 주기도 한다. 이러한 목록을 점프 목록이라 한다. 점프 목록은 특정 응용프로그램에만 적용되는 것이 아니라 윈도우 탐색기(Windows Explorer)와 같은 기본 프로그램에도 적용된다. 윈도우 탐색기의 점프 목록은 최근에 방문했던 폴더 경로가 포함되어 있다. 단순히 방문만 한다고 기록되는 것은 아니고 특정 폴더에서 파일을 실행시키거나 행위를 했을 때만 점프 목록에 기록된다. 브라우저의 경우에는 최근에 방문한 사이트 경로나 자주 사용하는 사이트 경로도 저장된다. 게다가 브라우저에 따라 최근 닫은 사이트 경로도 포함해주기도 한다. 

이처럼 점프 목록은 이전부터 사용된 응용프로그램 로그인 “Recent” 폴더(최근 사용 문서)나 “UserAssist” 키보다 더 많은 그리고 더 중요한 정보를 포함하고 있다. 게다가 최근 사용 문서 정보처럼 사용자가 일부러 삭제하지 않는 이상 운영체제 설치때부터 계속해서 관련 로그를 저장한다. 따라서, 윈도우 7에서 포렌식 분석 시 필수적으로 분석해야 하는 자료 중 하나이다.

 

포렌식 관점에서 Jump List는 사용자의 응용프로그램 사용 흔적 및 패턴을 파악할 수 있고 윈도우 설치 시부터 자동 설정되는 부분도 있기 때문에 의도적으로 삭제하는 경우가 아닌 이상 지속적으로 로그가 저장이 된다. 만약 삭제될 경우에도 볼륨에 그대로 유지되어 복구가 가능하다.

 

JumpList는 기존 RecentDoc 및 UserAssist 외 Win7+ 에서 추가로 생성

자주 사용하는 문서 + 자주 사용하는 프로그램 <- MRU 알고리즘에 의해 MRU List로 관리

운영체제가 자동으로 생성하거나 사용자가 생성(Pinned)

링크파일(lnk)이 아닌 CDF(Compound Document File) 형태로 존재

   . AutomaticDestinations 폴더의 내용은 CDF(Compound Document File; 이하 복합문서) 형태로 저장
   . Compound File Explorer(CFX;
http://www.coco.co.uk/developers/CFX.html) 를 통해 구조 분석 가능
   . CustomDestinations의 경우 자체 포멧을 사용
악성 파일 실행 흔적 / 외장저장장치 파일 열람 흔적  /  웹 사이트 접속 이력 확인 가능
AutomaticDestinations, CustomDestinations 두 가지 점프리스트 포멧이 모두 내부적으로는 바로가기(.lnk) 파일을 포함하고 있어서 분석 관점에서 정보의 해석과 활용은 바로가기 파일과 교차하여 진행하는 것이 좋다. 

 

또한 JumpList의 항목은 사용자의 삭제 행위에 의해서만 삭제되기 때문에, 의도적으로 삭제되지 않는 한 파일이나 프로그램 사용에 관련된 정보를 획득할 수 있다. 반대로는 삭제된 흔적이 발견되는 경우, 사건에 관련하여 용의자 의도를 의심해볼 필요가 있을 것이다. 단, 점프 리스트 자체를 사용하지 않음으로 설정하면 관련 파일들이 모두 삭제되어진다.

※ Compound Document Format : FAT 파일 시스템과 굉장히 유사한 형태로 되어 있는 파일 포멧으로, 파일 시스템이 파일을 저장하듯 내부의 스트림(Stream)으로 데이터를 저장, 관리할 수 있기 때문에 목적에 따라 자주 사용되는 포멧이다. (대표적으로는 Office 2003까지의 문서 파일들이 사용하였고, 지금 설명하는 점프리스트의 AutomaticDestinations 파일이나, 윈도우의 스티커 노트, HWP 문서 등이 이 포멧을 사용한다.)

 

AutomaticDestinations
자주 사용되는 목록(Frequent)나 작업목록(Tasks)가 존재 -> 운영체제가 자동 생성
F:\temp>dir /a-d c:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations /O-D
2020-03-09  오후 01:52         2,455,770 f01b4d95cf55d32a.automaticDestinations-ms
2020-03-09  오후 01:52           424,960 7fbc827655307cb6.automaticDestinations-ms
2020-03-09  오후 01:51         3,270,144 5f7b5f1e01b83767.automaticDestinations-ms"
......

CustomDestinations
최근 사용한 목록(Recent)나 사용자가 직접 고정시킨 항목(Pinned)  -> 응용프로그램이 자동 생성 + 사용자 생성

F:\temp>dir /a-d c:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations /O-D
2020-03-09  오후 01:35            22,354 5d696d521de238c3.customDestinations-ms
2020-03-09  오전 08:48             5,349 99fdce3ec7898a04.customDestinations-ms
2020-03-09  오전 08:46                24 f18460fded109990.customDestinations-ms
......

 

파일명 구성 : 앞의 16글자는 Application ID로 각 App에 해당하는 ID를 띄고 있으며 각 파일의 내부를 확인해보면 여러 항목들이 존재하는 것을 확인할 수가 있다. 이러한 App ID는 http://kali-km.tistory.com/entry/Jump-List-App-ID  에서 Ctrl+F로 찾아서 어떠한 프로그램의 점프 리스트 목록인지 확인할 수가 있다.

 

내용을 확인할 때는 HxD로 열어서 확인하거나 BinText를 통해서도 확인이 가능하다. 하지만 정확히 분석하기 위해서는 JumpList와 관련된 툴을 이용하는 것이 좋다.

 

분석

JumplistView Tool

GUI

Jump list filename이 데이터 출처이다. 이를 통해 OS나 응영프로그램이 자동으로 생성한 것인지

사용자가 직접 생성한 것인지 파악할 수 있다.

 

CLI
F:\tool\forensic\jumplistsview>JumpListsView.exe /sxml F:\temp\JumpList.xml
F:\tool\forensic\jumplistsview>F:\tool\forensic\LogParser\LogParser.exe -stats:off -i:xml "select filename, full_path, accessed_time, application_name from 'F:\temp\JumpList.xml'"

JLECmd

F:\tool\forensic\jumplistsview>F:\tool\forensic\JLECmd.exe -d c:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations all

F:\tool\forensic\jumplistsview>F:\tool\forensic\JLECmd.exe -d c:\Users\chohb\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations all

반응형