ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MUICache, AmCache & ShimCache, 브라우저 아티팩트 개념 및 실습
    Digital Forensics/inflearn 2023. 11. 21. 00:30

    개념 정리

     

    MUICache

    • Windows에서 다중 언어를 지원하기 위해 존재하는 캐시
      -MUI(Multilingual User Interface)
      -실행 파일 별로, 유저 언어 이름을 별도로 저장하고 있음
    • 응용프로그램을 실행하면 캐시에 기록이 남음
      -실행 파일 경로, 이름
      -실행 파일이 삭제되거나, 경로가 변경된 경우에도 기록이 지워지지 않음

     

     

    AmCache & ShimCache

    • 응용프로그램과 운영체제의 호환성을 위해 존재하는 캐시
      -운영체제가 업데이트되면 DLL이 생성 혹은 삭제 → 호환성 문제 발생
      -Windows에서는 프로그램 호환성 관리자를 이용하여 이 문제를 해결
    • AmCache
      -모든 실행 파일의 이름, 경로, 크기, 해시값 확인
    • ShimCache(AppCompatCache)
      -실행 파일의 경로, 최초 실행 시간 확인

     

     

    Web Browser Artifacts

     

    Web Browser

    • 인터넷을 이용하기 위해 실행하는 응용 프로그램
    • 브라우저를 통해 하는 일들
      -웹 검색
      -로그인
      -파일 다운로드
      -영상 시청

     

    Web Browser Artifacts

    • 브라우저 아티팩트란?
      웹브라우저가 유저를 위해 해주는 수많은 행동 및 데이터들(포렌식적으로 분석)

     

    • History : 방문한 URL, 방문 횟수, 방문 시각 등
    • Cache : 캐시로 저장되는 이미지, 텍스트, 스크립트, 아이콘, 시간, 크기 등
    • Cookie : 사용자 데이터, 자동 로그인 등
    • Download list : 저장 경로, URL, 크기, 시간, 성공 여부 등

     

     

     

     

    실습 과정

     

    MUICache - Practice

     

     

    첫 번째 경로

     

    두 번째 경로

     

    윈도우+S → regedit → 경로 복붙 → 폴더 쭉 들어가기 → 좌측 경로와 우측 데이터 나옴 → 첫 번째 경로는 윈도우에서 기본으로 제공해 주는 것들(한국어 지원 Good), 두 번째 경로는 우리가 다운로드한 써드파티 응용프로그램들이라 한국어 지원 안 되어있는 것도 있음

     

     

     

    닐소프트꺼 툴 다운로드(Download MUICacheView) → 바탕화면 ProgramExecution 폴더에 압축 풀기 → MUICacheView.exe 실행 → 구조 단순하고 잘 만든 툴, 컴퓨터에 있는 많은 프로그램들 다 나옴, But 타임라인 구성은 어렵지만(언제 실행했는지 정보X), 프리패치나 ShimCache는 타임라인 정보가 나오므로 함께 교차검증을 할 때 파악하기 좋음(어떤 부분만 삭제됐거나 아티팩트가 아예 없으면 안티포렌식을 의심해 볼 수도 있음)

     

     

     

    AmCache & ShimCache - Practice

    • AmCache & ShimCache 경로
      -%SystemDrive%\Windows\AppCompat\Programs\Amcache.hve
      -HKLM\SYSTEM\ControlSet001\Control\Session Manager\AppCompatCache
      -HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\AppCompatCache
    • AmcacheParser, AppCompatCacheParser 이용하여 분석(둘다 CLI 기반 동작, 각각 왼쪽꺼 1.5.1.0이랑 1.5.0.0 다운로드)
      -https://ericzimmerman.github.io/#!index.md

     

     

    cmd에 AmcacheParser.exe 눌렀을 때 나오는 help 중 일부

     

    이번 실습에서는 ~UnassociatedFileEntries.csv

     

    .csv 파일 열었을 때 보이는 Full Path와 Name

     

    툴 2개 다운로드 → 바탕화면 ProgramExecution 폴더에 압축 풀기(새 폴더없이 바로 .exe파일들만) → 파일탐색기로 ProgramExecution 들어와있는 상태에서 경로에 cmd 치면 해당 경로로 cmd창 열림 → AmcacheParser.exe(am만 치고 tab 누르면 자동완성) → help 나옴(-f랑 --csv  옵션은 꼭 있어야 한다고 나옴) → -f옵션 다음에 하이브 파일 두고 --csv옵션 다음에 저장할 경로 두면 됨 → 일단 하이브파일 수집해야 하니까 파일탐색기로 첫 번째 경로 들어가놓기 → FTK Imager 들어가서 Add evidence item - Logical Drive - C드라이브 NTFS 그대로 두고 finish → 파일탐색기에 띄워놓은 경로 그대로 찾아서 들어가기 → Amcache.hve랑 Amcache.hve.LOG1랑 Amcache.hve.LOG2을 Ctrl로 한번에 export files → 바탕화면 ProgramExecution 밑 registry 폴더에 파일 3개 추출(만약 파일탐색기 가봤는데 .LOG1이랑 .LOG2파일 안 보여서 또 추출했는데 .copy0확장자 붙어서 추출되면, 그냥 확장자 .copy0지우고 사용해도 파일 내용은 똑같아서 실습 시 문제 없다고 하심) → cmd에서 AmcacheParser.exe -f registry\Amcache.hve --csv ./ 실행 → 결과 뜨는 거 보면 로그파일을 리플레이한다고 하는데 전에 레지스트리할 땐 dirty랑 clean을 나눠서 dirty를 clean으로 바꿔서 했었는데 얜 프로그램 자체적으로 리플레이를 지원해서 별도로 clean할 필요X → 파일탐색기 ProgramExecution 폴더 안에 csv 파일들 생김 → UnassociatedFileEntries.csv 파일 열기(이번 강의는 응용프로그램 실행 흔적과 관련된 걸 보는 거니까 이 파일만 봄)  → #으로 표현된 것들은 셀 전체 잡고 서식-열 너비 자동 맞춤 → AmCache에서 볼 수 있는 Programid랑 FileKeyLastWriteTimestamp 등등 보이고 가장 중요한 건 Full Path 부분에서 .exe랑 Name에서 이름들 남아있음, 다른 것들은 큰 의미는 없고 사이즈, 이름, 경로, SHA1 해시 등을 통해 응용프로그램들을 찾을 수 있고 찾은 걸 SHA1과 비교해서 변경여부 같은 것들 확인 가능

     

     

    AppCompatCache

     

    AppCompatCacheParser.exe 실행 시 --csv 옵션 필요

     

    폴더에 생긴 csv파일

     

    시간순 정렬

     

    윈도우+S → regedit(레지스트리편집기) → 두 번째 경로 복붙 → AppCompatCache 더블클릭하면 문자열들 있는데 이것들을 파싱해주는 도구로 분석할 거임 → cmd 관리자 권한 실행(AppCompatCacheParser.exe는 관리자 권한만 있으면 자동으로 수집해 줌)  → cd C:\Users\(사용자이름)\Desktop\ProgramExecution → AppCompatCacheParser.exe → 이번에도 help가 나오는데 이번엔 --csv옵션만 넣어주면 된다고 나옴(뒤에 디렉토리 넣어주면 됨, 이것도 -f옵션 주고 하이브파일들 경로 따로 지정할 수 있긴 한데 지정 안 하면 라이브 레지스트리 이용됨) → AppCompatCacheParser.exe --csv ./ → 바탕화면 ProgramExecution 폴더에 Windows10~ csv파일 생김 → 수집한 csv파일 열기 → 서식-열 너비 자동맞춤 → 경로, 마지막 변경시각(마지막 실행) 등의 정보들 확인 가능 → 전체 셀 잡고 정렬-정렬기준 LastModifiedTimeUTC-셀값-오름차순 정렬하면 시간순 정렬됨

     

     

     

    Web Browser Artifacts - Tools & Practice

    • 브라우저별 경로
      -Chrome : %UserProfile%\AppData\Local\Google\Chrome\User Data\Default\
      -Edge : %UserProfile%\AppData\Local\Microsoft\Windows\WebCache\
      -Whale : %UserProfile%\AppData\Local\Naver\Naver Whale\User Data\Default\

     

    • Chrome 아티팩트 분석
      -History(가장 정보 많이 남고 중요)
      -Cache
      -Top Sites(제일 많이 이용한)
      -Shortcuts(바로가기)
      -Bookmarks
      -Last Tabs(최근 닫은)
    • DB Browser for SQLite
      -https://sqlitebrowser.org/

     

    downloads 테이블에 있는 시간데이터

     

    DCode v5.5에 시간 데이터값 넣고 Decode 누른 결과

     

    DB Browser for SQLite에서의 urls 테이블

     

    *이 강의에서는 Chrome 아티팩트는 History만 분석!

    DB Browser for SQLite 실행 → 위 크롬 경로에서 History 파일(데이터베이스 형식)을 DB Browser로 드래그앤드롭(lock 되어있다고 뜨면 크롬 브라우저 다 꺼야함) → 데이터 보기 탭 → 먼저 테이블 드롭박스에서 downloads 테이블 → 언제 다운로드 했는지(시작/끝), 어디에 저장됐는지, 크기, state값은 성공/실패 여부(1이 성공, 2는 실패), 언제 접근했는지, referrer(다운로드 url에 접근하기 이전 사이트), tab_url(그 탭에 띄워져있던 url), type 등 나옴 → 다운로드 직접 받은 url들은 downloads_url_chains에 있음(서로 id 필드를 기반으로 연결) → downloads에서 start_time(시간 데이터) 복사 →  DCode v5.5 실행 후 Value Input의 Format을 Numeric(정수)로 바꿔주고 Value에 start_time 붙여넣고 Decode(설정값 Time Zone은 UTC +09:00 서울로 되어있어야 함) → 좌측에 Chromium Time Microseconds 부분(한국 기준)에 시간 변환됨(start_time, end_time 기준으로 참고해서 변환하여 보면 됨) → DB Browser 돌아와서 urls 테이블 들어가기 → urls 가면 url이랑 title, visit_count, 마지막 방문시각 등 확인 가능(사용자의 방문기록을 다 나타내는 게 아니라 마지막 방문시각 기록만 나타내고 있어서 진짜 기록 찾으려면 마찬가지로 urls의 id값 가지고 visit쪽으로 넘어가서 보면 됨, visit_duration은 얼마나 오랫동안 방문했는지(켜놨는지) 추측은 되지만 정확X)

     

     

     

     

    ESEDatabaseView에서의 Containers 테이블

     

    파일탐색기로 엣지 경로 가놓기 → WebCacheV01.dat 라는 파일 있음 → 다운로드 링크 들어가서 Download ESEDatabaseView → 바탕화면 browser 폴더에 압축 풀기 → esedatabaseview 밑 ESEDatabaseView.exe 실행 → WebCacheV01.dat 파일 던져주기(근데 윈도우 차원에서 잡고 있어서 사용중이라 뜨고 안 열림) → FTK Imager로 추출하고 나서 열 예정(정석적으론 옳지 않은 방법, 제대로 수집하는 방법은 이 강의에서 다루기엔 너무 깊은 내용이라 편의상 이렇게 진행) → FTK Imager에서 Add evidence item → Logical Drive → C의 NTFS 그대로 두고 finish → evidence tree에서 아까 파일탐색기에 띄워놓은 경로 찾아가기 → WebCacheV01.dat을 export files → 바탕화면 browser 폴더에 추출 → ESEDatabaseView에 추출된 거 던지기(엣지 브라우저에서 쓰는 데이터들 거의 다 남아있음, 구조 어려워서 강의에서는 간단히 배움) → 테이블 드롭박스 내려 보면 Blob~은 바이너리값들, 컨테이너는 일반적인 데이터값들, 쿠키, 캐시, dependency~ 의존성, 파티션 등을 갖고 있음 → 먼저 Containers 테이블(어떤 컨테이너(id)에서 어떤 정보(name)를 담고 있는지 간단히 확인 가능, ex.history가 보고 싶으면 name필드가 history인 id들 다 보면 됨(드롭박스에서 2번 컨테이너, 21번 컨테이너 등등), Container_2 가보면 접속기록들(url필드 참고) 남아 있음) → synctime, modifiedtime, accessedtime, expirytime 등 타임데이터들이 남아있는데 아까 Dcode에서 본 것과 유사한 포맷, accesscount는 접근 횟수 → containers 테이블의 name 필드가 content인 건 웹사이트에서 쓰는 캐시를 담고 있는듯(들어가서 뭔지 파악하면 좋은데 보기 어려워서 아래에서 다른 것들도 추천해주심)

     

     

    *Whale 브라우저는 Chrome이랑 거의 똑같아서 별도 설명 생략

     

     

     

     

    BrowsingHistoryView.exe 실행

     

    위 링크 들어가서 Download BrowsingHistoryView 64-bit → 바탕화면 browser 폴더에 압축 풀기 → Browsinghistoryview-x64 안에 BrowsingHistoryView.exe 실행 → Advanced Options 창에서 첫 번째 드롭박스 Load history items from any time으로 선택(컴퓨터에 존재하는 모든 브라우징 히스토리를 불러오는 것(다른 것들은 며칠을 좁혀서 보거나, 범위를 조정하는 등의 기능들)  → 위 사진처럼 나머지 다 선택 해제하고 웹 브라우저 영역(웹 브라우저 굉장히 많이 지원)만 다 체크한 상태로 OK → 수집 다 됨(윗부분은 인터넷익스플로러/엣지의 아티팩트들, 아랫부분은 크롬꺼 데이터도 많이 나옴, url, visit count, title, visit time(한국시간), visit duration(얼마나 오래 접속했는지), 웹브라우저 종류, 히스토리 파일 경로 위치 등등 확인 가능) → 보기 편함(시간순 정렬 가능), But 아쉬운 점은 히스토리만 보여준다는 점(history가 제일 중요하긴 하지만, 나머지 cache, cookie, download list는 안 보여줌) → 그래서 다른 다양한 도구들을 더 써주기, But BrowsingHistoryView처럼 여러 브라우저들을 통합해서 가지고 있는 게 잘 없음 → 오늘은 브라우저별 도구 목록만 소개

     

     

     

     

    새로 알게 된 것

    지난 시간에 배운 프리패치와 이번 시간에 배운 MUICache, AmCache & ShimCache를 이용하여 교차검증을 하는 법을 알게 되었다. 강의자님 말씀에 따르면, 브라우저 아티팩트 실습은 우리에게 정말 친숙하지만, 깊은 내용으로 들어가면 어려워진다고 하셨다. 각종 툴들로 실습해보며 어떤 식으로 분석을 진행해야 하는지 간단히 알게 되었고, 이 강의에서는 기초만을 다루고 있어서 실습하는 데에 큰 어려움은 없었다.

     

     

     

     

     

    https://www.inflearn.com/course/%EA%B8%B0%EC%B4%88-%EB%94%94%EC%A7%80%ED%84%B8-%ED%8F%AC%EB%A0%8C%EC%8B%9D

     

    [무료] 기초부터 따라하는 디지털포렌식 - 인프런 | 강의

    기초부터 따라하는 디지털포렌식 강의입니다. 강의를 따라하다보면 "물 흐르듯, 자연스럽게" 실력이 늘어가는 강의를 추구합니다., 초보자 눈높이에 딱 맞춘, 원리를 이해하는 디지털포렌식 입

    www.inflearn.com

     

     

    본 글은 위의 인프런 강의를 듣고 작성하였습니다.

     

Designed by Tistory.