티스토리 뷰
해당 포스트는 Start up 디스크 포렌식의 악성코드 감염 MBR을 복구하는 내용의 실습입니다.
3.20 악성코드는 MBR영역과 VBR , BR을 모두 특정 문자열로 덮어씌워 부팅이 불가능하도록 한 악성코드이다.
일단 해당 이미지 파일을 HxD로 열어보면 예약 영역이 나오게 된다. MBR구조가 오는 것이 아니라 예약 영역을 제외하고 보기 위해 FTK Imager를 열어 확인해보자.
확인해보니 MBR 영역이 모두 HASTSTI. 이라는 문자열로 뒤덮인 것을 볼 수 있었다.
이 문자열을 추가적으로 더 검색해보니 MBR영역 말고도 2곳에서 더 뒤덮인건 확인 할 수 있었다.
일단 먼저 MBR을 복구하기 위해서는 정상적인 OS가 필요하다.
이것은 실습이기 때문에 정상적인 OS파일을 구해놨다.
복구하려는 하드디스크는 OS가 설치된 시스템으로 부팅플래그 값 0x80을 설정해야한다.
일단 MBR을 확인 했으니 이제 다시 FTK Imager로 넘어가서 파티션을 복구해보자.
두번째로 HASTATI. 문자열이 검색되는 영역은 2048섹터이다. 이것으로 우리는 파티션 시작위치임을 추측할 수 있다.
이곳이 시작위치임을 추측했으니 이 파티션이 FAT32일지 NTFS일지 확인해야한다.
FAT32는 시작위치에서 6번째 섹터에 BR 백업이 존재해야한다. 확인해보니 존재하지 않았다.
이제 다음 파티션은 206848섹터에 존재하는것을 확인 할 수 있었다.
근데 아까 첫번째 파티션의 타입은 NTFS였다. 이 타입의 BR 백업본은 파티션의 마지막에 저장된다.
그렇기에 첫번째 파티션의 백업본은 206847 섹터에 존재한것을 볼 수 있었다.
이것을 새 파일로 해서 HxD에 만들어주자.
이제 두번째 파티션의 백업BR을 구하면 된다. 이것또한 시작 주소에서 6섹터에 백업BR이 존재하지 않으므로 NTFS일 것으로 추측한다. 하지만 NTFS는 파티션의 마지막에 백업 BR이 위치한다. 하지만 두번째 파티션은 길이가 어느정도인지 알 수 없다. 그렇기에 우린 아까 찾은 NTFS BR 시그니처를 가지고 찾아야한다.
시그니처는 아까 찾은 첫번째 파티션의 백업 BR에서의 처음인 EB 52 90 4E 54 46 53이다.
이것도 HxD에 만들어준다.
이제 다 구했으니 찾은 정보들을 HxD로 수정만 해주면 된다.
그전에 HxD에 파티션의 시작주소와 총 섹터를 알아야한다.
구하는 방법은 FTK Imager에서 HASTATI.으로 뒤덮인 두번째의 영역의 주소에서 16진수로 표현된 값을 섹터 단위로 변환해주면 된다. 0x200으로 나누면 된다. 그래서 첫번째 파티션의 시작주소는 0x100000 / 0x200 = 0x800이다.
총 섹터의 개수는 두번째 파티션 시작주소인 0x6500000에서 첫번째 파티션 시작주소 0x100000를 빼고 섹터단위0x200으로 나누어주면 총 섹터 개수는 0x32000이된다.
그럼 아래와 같이 첫번째 파티션 테이블 정보를 알 수 있다.
내용 | 오프셋 |
부팅정보 | 80 |
파티션 타입 | 07 |
BR 시작주소 | 00 80 00 00 |
총 섹터 개수 | 00 20 03 00 |
두 번째 파티션 주소도 위와 같이 똑같이 구하면 된다.
두 번째 파티션 테이블 정보도 아래와 같다.
내용 | 오프셋 |
부팅정보 | 80 |
파티션 타입 | 07 |
BR 시작주소 | 00 28 03 00 |
총 섹터 개수 | 00 D0 FC 04 |
위 정보들을 HxD에서 정상적인 MBR 파일에 넣어준다.
또한 이것을 모두 복사해 HxD에서 감염된 디스크에서 첫 HASTSTI. 문자열이 나온 부분에 붙여 넣어준다.
앞서 찾아낸 백업본 BR들도 두번째 HASTSTI.문자열에 세번째 문자열에 붙여넣어준다.
그럼 아래와 같이 복구된 것을 볼 수 있었다.
'Digital Forensics > DISK Forensic' 카테고리의 다른 글
파일시스템 구조이해 (1) | 2024.07.07 |
---|---|
PeTya 랜섬웨어 감염 MBR 복구 (0) | 2024.07.02 |
다중 파티션 이해 (0) | 2024.06.26 |
FAT32 파티션 복구 (0) | 2024.06.21 |
파일 삭제 복구 (0) | 2024.02.17 |