본문 바로가기
9. 디지털 포렌식

디지털 포렌식 Sub 6 - 보안 프로그램으로 위장한 악성코드

by Robert8478 2023. 12. 14.

실습 파일은 받아지지 않아 필기로 대체
목표 - MBR이 손상된 파일시스템 복구 | 3.20과 같음

보안로그 수집기로 위장한 악성코드에 의해 감염된 디스크 복구의 목표.
로컬PC면 IP와 MAC 등을 수집하고 가상머신이면 MBR을 파괴시키는 악성코드이다.

과정 1- 파티션 테이블정보 복구 , 과정 2- MBR 복구

1. 우선 FTK Imager로 Windows 7.vmdk를 연다
MBR이 변조되어있고 446byte의 부트코드 영역의 MBR이 포함되어있다.
파티션 테이블 완성을 위해 부팅플래그,파티션 타입,파티션 시작주소, 파티션 총 섹터 수를 찾아야한다.
OS가 설치된 부팅가능 시스템이므로 부팅플래그는 0x80
시그니처 검색으로 찾았을때 첫번째 파티션 시작주소와 BR 백업본 위치를 파악해서 파티션 타입을 확인한다.
맨 마지막에 백업본이 있으면 NTFS 이다. NTFS의 시그니처인 [EB 52 90 4E 54 46 53]을 검색한다.
검색 하면 2048 섹터가 나오는데 6섹터 뒤에 BR 백업본이 없으므로 NTFS가 맞다.파티션 타입은 0x07

총 섹터 개수는 첫번째 파티션의 마지막에 BR 백업본이 있을 것이고 두번째 파티션의 맨앞에 BR영역이 나올것이므로 연달아 BR이 있는 곳까지 개수를 잡으면 된다.

총 섹터 개수는 첫번째 파티션 끝나는 주소에서 첫번째 파티션 시작주소를 빼준다. 그 후 16진수로 변환한다.
206848 - 2048 = 204800 = 0x32000

두번째 파티션도 총 섹터개수를 구하는데 BR 일부를 복사해서 시그니처 방식으로 검색해서 찾아내면 된다.
83884031 섹터에서 BR 백업본을 발견해서 83884032 - 206848 을 해주었고 이는 4FCD000 총 섹터수가 나왔다.

필요한 정보를 모두 얻었으면 446byte 부트코드 뒤에 64byte인 00 00 들을 얻은 정보들로 채워주면 된다.

이제 이것을 가상머신의 MBR 영역에 붙여넣어주면 되는데 MBR영역을 모두 0으로 채우는데 어떻게 찾을까?
vmdk파일 헤더구조를 분석하면 메타데이터 시작위치에 실질적으로 vmdk에 저장된 파일들의 위치를 저장하고있다.
즉, OS가 설치된 vmdk는 메타데이터 시작위치에 MBR이 있으며 이는 40 offset이다.

MBR 시작위치를 분석해보면 40~47 오프셋에 8byte로 주소가 저장되어있으며, 거꾸로 읽는 리틀-엔디안 방식이다.
0x2880이라 되어있는것을 10진수로 변환하니 10368이 나왔다.
10368 섹터부터 MBR영역이 시작되는 섹터인 것이다. vmdk가 아닌 다른 가상환경 파일의 경우 헤더 구조를 확인해야 한다. 이 영역에 아까 만들었던 MBR 값을 붙여넣어주면 된다.