Always-Try(정보보안 및 일상)

포렌식 기초 - 삭제된 파일 복구 본문

Forensic

포렌식 기초 - 삭제된 파일 복구

Always-Try 2021. 2. 27. 17:02
본 게시글은 인프런 '맥으로 배우는 윈도우즈 포렌식'를 참고하여 작성했습니다. (www.inflearn.com/course/forensic-2/dashboard)
 

맥으로 배우는 윈도우즈 포렌식 - 인프런

유료 도구가 아닌 무료 포렌식 도구를 통해 더욱 깊이 있는 포렌식 분석 방법을 배웁니다. 초급 보안 Forensic Microsoft Windows 정보보안 온라인 강의 forensic

www.inflearn.com

#1. FAT32 Deleted

1-1. Directory Entry의 Name에서 삭제 흔적 찾기

삭제된 파일은 Directory Entry Name의 처음이 "0xE5"로 시작한다.

 

그럼 지난 실습에서 사용한 Forensic.jpg가 담긴 fat32.dd 파일의 Directory Entry의 첫부분을 E5로 바꿔서 OS에서 삭제된 것으로 인식하는지 확인해보자.

 

먼저 기존 FAT32의 FileName 부분이다. 46으로 시작한다.

46을 E5로 바꾸고 fat32_delete.dd로 저장하자.

 

그리고 fat32.ddfat32_delete.dd를 각각 마운트해서 forensic.jpg가 삭제된 것인지 비교해보자.

FAT 마운트는 mac 터미널 상에서 아래와 같이 진행한다.

sudo mkdir /Volumes/fat32_deleted
hdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount fat32_deleted.dd 
(attach: 디스크 이미지를 디스크 형태로 인식 시킴, -imagekey diskimage-class=CRawDiskImage: 이미지는 Raw 형태임, -nomount: 마운트는 하지 않음)
sudo mount -t msdos -o noexec,noowners,rdonly /dev/disk2 /Volumes/fat32_deleted/
(-t msdos: fat32 타입으로 마운트함, -o noexec,noowners,rdonly: 실행 불가, 권한 무시, 읽기만 허용으로 마운트)

* 파란색 부분은 파일명, 터미널 결과에 따라 변경 가능하며, 테스트 이후에는 sudo umount /Volumes/fat32_deleted 

 

먼저 fat32.dd 원본이다. forensics.jpg 파일이 보인다.

 

다음으로 Directory Name의 앞부분을 E5로 바꾼 fat32_delete.dd를 마운트 한 것이다. forensics.jpg 파일이 삭제된 것으로 인식한다.

 

 

1-2. 삭제 데이터 복원

복구 프로그램들은 삭제된 데이터의 복원은 "0xE5"로 시작하는 Directory Entry의 Name을 확인하고 Starting Cluster High와 Starting Cluster Low 를 확인해서 데이터를 복구한다. 이 점을 이용하면 fat32_delete.dd를 이용해서 다시 복구할 수 있는데 어차피 복구가 될 거라는 것을 알고 있으므로 진행은 생략하겠다. 복구 방법은 아래 내용을 참고 바란다.

2021/02/27 - [Forensic] - 포렌식 기초 - FAT32 and NTFS - 이론편

2021/02/27 - [Forensic] - 포렌식 기초 - FAT32 and NTFS - 실습편 (with 010 Editor)

 

그리고 참고로 "0xE5"가 있는 경우, 010 Editor에서는 친절하게 "Erased name..."이라고 표시해주고 있다.

 

 

 

 

#2. NTFS Deleted

1-1. MFT Entry의 Header에서 삭제 흔적 찾기

NTFS 에서는 MFT Entry에서 삭제된 파일 및 폴더를 확인할 수 있다. 아래 사진의 네모박스인 FILE0은 MFT안에 있는 하나의 Entry가 시작된다는 의미이며, 헤더가 시작 되는 부분이다. 

 

헤더의 시작점(FILE0)에서 16h 떨어진 곳에 아래와 같이 파일/폴더 삭제 유무에 대한 필드가 존재한다.

파일의 경우 값이 1이면 존재, 0이면 삭제되었다는 것이다. 폴더의 경우, 3이면 존재 2이면 삭제되었다는 것이다.

 

FAT와 같이 해당 값을 바꿔보고 마운트해서 실제로 삭제되었는지 비교해보자.

NTFS 마운트는 mac 터미널 상에서 아래와 같이 진행한다.

sudo mkdir /Volumes/ntfs_deleted
hdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount ntfs_deleted.dd 
(attach: 디스크 이미지를 디스크 형태로 인식 시킴, -imagekey diskimage-class=CRawDiskImage: 이미지는 Raw 형태임, -nomount: 마운트는 하지 않음)
sudo mount_ntfs -o noexec,noowners,rdonly /dev/disk2 /Volumes/ntfs32_deleted/
(-t msdos: fat32 타입으로 마운트함, -o noexec,noowners,rdonly: 실행 불가, 권한 무시, 읽기만 허용으로 마운트)

* 파란색 부분은 파일명, 터미널 결과에 따라 변경 가능하며, 테스트 이후에는 sudo umount /Volumes/ntfs_deleted 

위와 같이 진행후 비교해보면 아래의 결과를 얻을 수 있다.

복원은 마찬가지로 아래 내용을 참고해서 진행해보자.

2021/02/27 - [Forensic] - 포렌식 기초 - FAT32 and NTFS - 이론편

2021/02/27 - [Forensic] - 포렌식 기초 - FAT32 and NTFS - 실습편 (with 010 Editor)

 

 

 

 

 

끝.

Comments