ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [FileSystem] FILE Record - Filename, Contents
    $ Wargame $/$ digital forensic $ 2020. 1. 29. 12:48

     

    문제파일을 받아서 hex값을 확인해 보면 46 49 4c 45 의 FILE Header Signature 를 가지고 있습니다.

    디스크 조각의 일부라고 하는데, MFT File 이라는 것을 알게 되었습니다.

     

    실제 MFT 파일의 HEX값을 확인해보면 아래와 같습니다.

     

    아래의 파일은 첨부된 File인 filerecord01의 Hex값을 확인해 보면 아래와 같습니다.

     

    그렇기 때문에 첨부된 파일은 MFT File의 조각이라는 것을 알수 있습니다.

     

    MFT File 이란?

    NTFS 상의 모든 파일들의 MFT Entry 정보를 유지하고 있으며, MFT 영역의 크기, 위치, 할당 정보를 저장하고 있는 파일입니다.

     

    또한 기본적으로 MFT 파일에 데이터를 저장하지는 않지만 파일의 용량이 700바이트 이하면 MFT Entry에 데이터가 남게 됩니다.

     

    먼저 위의 첨부된 파일의 구조를 확인해 보겠습니다.

     

    위의 구조가 가지는 Attribute $N의 값은 아래의 표에 있는 값을 의미 합니다.

     

    위의 파일에서는 $10 , $30, $80 이 있기 때문에 파일의 기본적인 정보들, 파일의 이름, 파일의 내용이 들어 있다는 것을 알 수 있습니다.

     

    저희는 파일명과 파일 내용을 찾아야 하기 때문에 $30과 $80만 주로 보면 될 것 같습니다.

     

    그렇기 때문에 파란색 부분과 녹색 부분을 확인 하면 될 것 같습니다.

     

    .txt 라는 확장자가 보이는 거로 보아 저부분이 파일 명으로 판단이 됩니다.

     

    앞부분의 값이 영어나 한글로 보기 힘든 hex 값을 가지고 있기 때문에 유니코드 라는 것을 알 수 있습니다.

    파이썬을 이용해서 파일명을 찾아 보겠습니다.

     

    포렌식.txt 라는 것을 알 수 있습니다.

     

    이제 $80 부분인 DATA를 확인해보겠습니다.

    파일 내용이라고 판단되는 곳은 아래와 같습니다.

     

    하지만 이부분은 유니코드로 저장되어 있지 않고 어떠한 인코딩 기법을 이용해서 값이 저장되어 있습니다.

    파일명을 떠올려보면 "포렌식.txt" 이므로 메모장에서 데이터를 입력했을 가능성이 커보입니다.

     

    python을 이용해서 decoding하는 코드를 작성해 보겠습니다.

     

    cp949로 한 이유는 메모장 문자열 인코딩 기법을 cp949로 하기 때문입니다.

    위의 코드의 실행 결과는 아래와 같습니다.

     

    파일명은 포렌식.txt 

    파일내용은 인베스티게이터 입니다.

     

    Flag : 포렌식.txt_인베스티게이터

    '$ Wargame $ > $ digital forensic $' 카테고리의 다른 글

    [FileSystem] FILE Record - Fixup Array  (0) 2020.01.29
    [FileSystem] Hash this file  (0) 2020.01.27
    [Network] FTP - file upload  (0) 2020.01.27
    [FileSystem] FAT - Directory Entry  (0) 2020.01.27

    댓글

Designed by Tistory.