ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Digital Forensic Challenge 2019 ART100 문제풀이
    $ 포렌식 $/$ 포렌식 문제 풀이 $ 2019. 11. 17. 14:07

     

    문제를 보면 이미지 디스크 안에 들어있는 프리패치 파일과 이벤트 추적 로그를 분석하는 것이 문제인것 같습니다.

     

    일단 프리패치파일(Prefetch File) 과 이벤트 추적 로그(Event Trace)에 대해서 먼저 알아보겠습니다.

     

    1. Prefetch File?

    일반적으로 응용 프로그램의 페이지를 미리 로드 하여 시스템 성능을 높이는 기능을 하는 파일을 프리패치 파일(Prefetch File) 이라고 이야기 합니다.

    실행 파일이 사용하는 특정 파일을 미리 저장 해서 윈도우 부팅시에 프리패치 파일을 모두 메모리에 로드시켜서 실행속도를 향상시킵니다.

    캐시 관리자는 모든 파일 및 디렉터리를 모니터링하고 .pf파일로 매핑을 하는데 각 .pf는 실행의 마지막 시간. 실행 횟구 및 프로그램 날짜/시간 파일에서 사용하는 장치 및 파일 핸들을 해당 이름과 경로를 포함하고 있어서 이를 통해 프로그램 실행 시간을 알 수 있습니다.

     

    아래와 같이 기본적으로 프리패치 파일은 %SystemRoot%Prefetch 경로에 저장됩니다.

     

     

    2. Event Trace Log?

    Event Trace Log는 Event Tracing for Windows(ETW)라는 파일로  Windows 2000에 처음 나왔고, 현재는 .etl 이라는 확장자로 배포되고 있습니다.

    EVTX와 유사하며, 윈도우 내에 존재하는 다양한 시스템 폴더에 존재 합니다.

    ETL에는 시스템 로그인 및 종료, 업데이트, 디버깅 로그 등 다양한 로그를 저장합니다.

     

     

    위의 ETL 파일은 기본적인 ETL 파일의 위치입니다.

     

    Prefetch File 과 ETL File 이 들어있는 디렉터리를 추출해 보겠습니다.

    파일을 보면 E01 File 부터 E19 까지 있고, 모든 파일의 크기가  2,096,690KB이고, 마지막 E19 파일만 나머지 크기를 갖는 파일을 하나의 큰 디스크 파일을 chain 압축기법을 이용한 파일이므로 FTK Imager 를 이용해서 E01 파일만 마운트 하면 모든파일이 Chain 처럼 연결되어 마운트가 됩니다.

     

    ↑ chain 압축 

     

    위와 같이 마운트를 하고 관련 디렉터리를 추출해 보겠습니다.

     

    위의 파일들의 경로는 아래와 같습니다.

     

    먼저 WinPrefetchView 를 이용해서 Prefetch File 의 데이터를 분석해 보겠습니다.

     

    실행된 프로그램 및 프로세스를 한번 정리해 보겠습니다.

     

    Prefetch File 에서 실제로 사용자가 자주 사용하는 프로그램의 프리패치 파일을 타임라인 순서대로 나열해보면 아래와 같습니다.

     

     

    안티 포렌식 툴인 ERASER.EXE 프로그램을 실행한것이 확인 됩니다.

     

    ETL 파일을 확인하기 위해서 Microsoft에서 개발한 Microsoft Message Analyzer를 이용해 보겠습니다.

     

    ~\WDI\LogFiles 에 2개의 etl 파일이 존재하는데 드래그 한뒤 Microsoft Message Analyzer로 열면 아래와 같이 엄청 많은 데이터가 있는 것을 확인 할 수 있습니다.

     

    Summary를 보면 EventTrace_Header , Header_Extension_TypeGroup , Header_PartitionInfoExtension_TypeGroup , Process_V4_TypeGroup 등등 etl 파일 내부의 데이터를 설명하는 부분이 있는데, 문제에서 실행한 프로세스에 대한 데이터를 분석하는 것이기 때문에 Process_V4_TypeGroup1 에 대해서 필터링을 걸고 .csv 파일로 export 해보겠습니다.

     

     

    .csv 파일을 열어보면 아래와 같습니다.

     

    .csv 파일에서 MessageNumber, Timestamp, TimeDelta, PID, PPID, ImageFileName, CommandLine 을 parsed 해보겠습니다.

     

     

    SQLite Studio 를 이용해서 csv 파일을 db에 import 해보겠습니다.

     

    ImageFileName은 ProcessName 이기 도 하는데, Prefetch File 에서도 중요해보였던 안티 포렌식 프로세스인 Eraser.exe 에 대해서 타임라인 기준으로 데이터를 수집해 보도록 하겠습니다.

     

    [ column2 에 있는 TimeStamp의 시간은 -9:00 을 해야 원래의 시간이 나옵니다. ]

     

    해당 PC에서 실행된 가장 유의미한 프로세스는 안티 포렌식 도구인 Eraser.exe 라고 생각합니다.

     

    그리고 디스크 이미지 파일에 있는 폴더를 보면 Windows 폴더 말고도 Windows.old 파일이 있습니다.

    해당 폴더는 윈도우 업데이트를 했을때 이전 버전은 Windows.old 폴더에 남고 새로운 업데이트 버전은 Windows 폴더에 남게 됩니다.

     

    $MFT 파일의 생성시각이 19-04-24 03:40:57이고 Windows.old폴더의 setup.etl의 레코드 시작 시각이 2019-04-24 03:45:08인 점을 보면 포맷된 시각은 19-04-24 03:40:57, 윈도우는10586버전이 설치되었으며 설치 시작 시각은 2019-04-24 03:45:08인 것을 확인 할 수 있습니다.

     

    또한 Windows폴더의 setup.etl의 레코드가 2019-04-24 06:32:18.7218154에 시작하고 Windows.old 디렉토리의 수정시각이 2019-04-24 06:35:29이고 windeploy.exe 종료 시각이 2019-04-24 06:35:29로 일치하는 점, Registry에 남은 설치 시각이 2019-04-24 06:35:29임을 고려하면 최종적으로 윈도우가 17763 버전으로 업데이트가 완료된 시각은 2019-04-24 06:35:29이라는 것을 확인할 수 있다.

    댓글

Designed by Tistory.