-
Digital Forensic Challenge 2019 IR100$ 포렌식 $/$ 포렌식 문제 풀이 $ 2020. 3. 28. 00:27
문제를 확인해 보면 다음과 같습니다.
문제를 기반으로 문제 풀이를 진행 하겠습니다.
mft.zip 파일을 압축 해제 하면 $MFT 파일을 찾을 수 있습니다.
$MFT 파일을 가시적으로 보기 쉽도록 .csv 파일로 변환 해주는 analyzeMFT.exe 툴이있습니다.
MFT.csv로 변환했기 때문에 한번 $Recycle.bin 파일을 찾아 보겠습니다.
총 25개의 $Recycle.Bin 문자열이 포함된 Filename을 찾았습니다.
그중 가장 눈에 띄는 것이 $Recycle.Bin/7.exe 입니다.
기본적으로 $Recycle.Bin 폴더는 윈도우 운영체제에서 사용되는 휴지통을 의미 하는데, 사용자가 삭제를 했을 때 휴지통에 데이터가 들어가게 됩니다.
그렇게 되면 다음과 같은경로로 데이터가 들어가게 됩니다.
\$Recycle.Bin\{USER SID} 의 경로 하위에 데이터가 들어가게 되는데, $Recycle.Bin/7.exe 라는 경로에 데이터가 있다는 것은 파일 삭제의 방식이 아닌 직접 생성된 파일 이라는 것을 알 수 있습니다.
또한 실제로 $Recycle.Bin\{USER SID} 하위가 아닌 $Recycle.Bin 하위에 데이터 파일을 은닉 시킨 악성코드 사례도 존재 했습니다.
악성코드 선호 경로(Malware Favorite Path) : http://forensic-proof.com/archives/6520
그렇기 때문에 해당 파일이 악성코드일 가능성이 매우 큽니다.
해당 $MFT 파일을 Active@ Disk Editor 툴을 이용해서 파일을 분석해 보겠습니다.
[ 전체 구조확인은 Active@ Disk Editor을 사용하고 세부 분석은 010 editor를 이용하겠습니다. ]
$Recycle.Bin\7.exe 파일의 시작 레코드는 141268 입니다.
$MFT 파일에서 위치(offset)를 찾기 위해서는 레코드 번호 * 1024 = 144658432( 0x89F5000 ) 에 위치 합니다.
$MFT 파일에서 해당 섹터를 찾기 위해서는 레코드 번호 * 2 = 282536 섹터 에 위치합니다.
(1024를 곱하는 이유는 MFT 엔트리 크기가 1024(2섹터)로 고정 되어 있기 때문에)
기본적으로 MFT Entry Header 구조를 확인해 보겠습니다.
0x00 ~ 0x03 : Signature ("FILE")
0x04 ~ 0x05 : Offset to fixup array
0x06 ~ 0x07 : Number of entries in fixup array
0x08 ~ 0x0F : $LogFile Sequence Number (LSN)
0x10 ~ 0x11 : Sequence Number
0x12 ~ 0x13 : Link count
0x14 ~ 0x15 : Offset to first attribute
0x16 ~ 0x17 : Flags (in-use and directory)
0x18 ~ 0x1B : Used size of MFT entry
0x1C ~ 0x1F : Allocated size of MFT Entry
0x20 ~ 0x27 : File reference to base record
0x28 ~ 0x29 : Next attribute id
0x2A ~ 0x2B : Align to 4B boundary
0x2C ~ 0x2F : Number of this MFT Entry
이 중 중요한 내용은 아래와 같습니다.
- Offset to fixup array : fixup 배열(연속된 fixup 값)의 시작 위치
- Sequence Number : 해당 MFT 엔트리가 할당, 해제될 때마다 1씩 증가하는 값
- Offset to first attribute : 첫 번째 속성의 위치
- Flags : MFT 엔트리의 속성
- Used size of MFT Entry : 실제 사용되는 크기
- Allocated size of MFT Entry : MFT 엔트리 크기 (1024 바이트)
- File reference to base record : base record의 MFT 엔트리 주소 값
7.exe 파일의 구조를 살펴 보겠습니다.
해당 7.exe 파일은 아래와 같은 데이터를 담고 있습니다.
7.exe 파일에서는 $10, $30, $80 이 있기 때문에 $STANDARD_INFORMATION, $FILE_NAME, $DATA 를 다루고 있습니다.
$10에는 파일의 최근 생성, 접근, 수정 시간, 소유자 등의 일반적인 정보가 포함되어 있습니다.
$30에는 파일이름(유니코드). 최근 생성, 접근, 수정 시간이 포함되어 있습니다.
$80에는 파일 내용이 있습니다.
Attribute $10 ($STANDARD_INFORMATION) 의 데이터를 확인해 보겠습니다.
위의 박스는 Attribute $10의 헤더 부분이고 아래의 박스는 Attribute $10 에 들어있는 실질적인 데이터 들이 담겨 있습니다.
Attribute $30 ($FILE_NAME) 의 데이터를 확인해 보겠습니다.
마지막으로 Attribute $80 ($DATA) 를 확인해 보겠습니다.
'$ 포렌식 $ > $ 포렌식 문제 풀이 $' 카테고리의 다른 글
Digital Forensic Challenge 2019 MOI300 문제 풀이 (1) 2020.01.17 Digital Forensic Challenge 2019 MOI200 문제 풀이 (3) 2020.01.17 Digital Forensic Challenge 2018 VOI200 문제 풀이 (0) 2020.01.15 Digital Forensic Challenge 2018 AF100 문제 풀이 (0) 2020.01.03 Digital Forensic Challenge 2019 ART100 문제풀이 (0) 2019.11.17