티스토리 뷰

Digital Forensics

해당 포스트는 Windows 포렌식에서의 Prefetch, MUICache에 대한 이론적인 부분에 대한 내용입니다.


1. Prefetch

  • 응용 프로그램의 빠른 실행을 위해서 존재하는 파일
  • 응용프로그램을 실행할 때에 생성
    • 실행 파일 이름, 경로
    • 실행 파일의 실행 횟수
    • 실행 파일의 마지막 실행 시간
    • 실행 파일의 최초 실행 시간
  • Prefetch 경로
    • %SystemRoot%\Prefetch
    • WinPrefetchView를 이용하여 분석할 것이다.

winprefetch

  • winprefetch를 실행시키면 알아서 컴퓨터에 프리패치들을 불러온다.
  • 하지만 이렇게 불러온 프리패치들은 무결성이 훼손될 수 있다는 단점이 있다.
  • 그렇기에 프리패치를 하나하나씩 불러오는 것이 무결성 훼손을 방지할 수 있다.

winprefetch

  • 프리패치를 클릭해보면 경로, 생성일자, 수정일자, 실행횟수 등의 정보가 나와있는 것을 볼 수 있다.
  • 그렇기에 악성 프로세스를 분석할때 언제 실행했고 몇번 실행했는지를 확인하는데 사용할 수 있다.
  • 또한 프로그램이 삭제되었어도 프리패치에서는 삭제되지 않는다.

1. MUICache

  • Windows에서 다중 언어를 지원하기 위해 존재하는 캐시
    • MUI(Multilingual User Interface)
    • 실행 파일 별로, 유저 언어(한국어) 이름을 별도로 저장하고 있다.
  • 응용프로그램을 실행하면 캐시에 기록이 남는다.
    • 실행 파일 경로, 이름
    • 실행 파일이 삭제되거나, 경로가 변경된 경우에도 기록이 지워지지 않는다.
  • MUICache 경로
    • HKCU\Software\Classes\Local Settings\MuiCache
    • HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
  • MUICache View 이용하여 분석한다.
  • MUICache View는 위에 설명한 WinPrefetch와 이중으로 확인해주면 좋다.

muicacheview


1. AmCache & ShimCache

  • 응용프로그램과 운영체제의 호환성을 위해 존재하는 캐시
    • 운영체제가 업데이트되면 DLL이 생성 혹은 삭제로 호환성에 문제가 발생한다.
    • Windows에서는 프로그램 호환성 관리자를 이용하여 이 문제를 해결할 수 있다.
  • Amcache
    • 모든 실행 파일의 이름, 경로, 크기, 해시값을 확인할 수 있다.
  • ShimCache(AppCompatCache)
    • 실행 파일의 이름, 경로, 크기 정보를 확인 할 수 있다.
    • 마지막 실행 시간을 확인할 수 있다.
  • AmCache & ShimCache 경로
    • %SystemDrive%\Windows\AppCompat\Programs\Amcache.hve
    • HKLM\SYSTEM\ControlSet001\Control\Session Manager\AppCompatCache
    • HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\AppCompatCache
  • AmcacheParser, AppCompatCacheParser를 이용하여 분석한다.
    • C:\Windows\appcompat\Programs 해당 경로에 들어간 후 FTK Imager를 실행 후 해당 Amcache.hve, Amcache.hve.LOG1, Amcache.hve.LOG2를 수집해준다.
     

C:\Windows\appcompat\Programs
C:\Windows\appcompat\Programs

후에 AmcacheParser를 통해 추출한 파일을 실행을 시켜준다.

그럼 아래와 같은 csv 파일들이 생성된 것을 볼 수 있다.그 중 응용프로그램에 대한 정보가 있는20240530192851_Amcache_UnassociatedFileEntries.csv을 열어 확인하면 실행한 응용프로그램에 대한 정보를 볼 수 있었다.