안녕하세요 EnIaC 입니다.


저희가 디지털포렌식 이라는 분야 중에서도 파일시스템 부분을 공부하게 되면 실제 물리 디스크 혹은 VMDK 와 같은 가상 디스크에서 실습을 하게 됩니다. 근데 공부 도중 HxD 프로그램 혹은 Winhex 프로그램을 사용하여 디스크 내용을 편집중인데 [그림 1] 과 같은 화면을 보신적이 있으실 겁니다. (없으면 Windows XP 를 사용 중이실 가능성이 높습니다. 혹시 UAC 를 끄면 해결될 일일지도 모르겠지만 해보질 않아서... 제보 부탁드립니다.)



[그림 1. HxD Access Denied]


위와 같은 오류를 해결하기 위해 혹시 "관리자 권한" 으로 실행 하지 않은것이 아닐지 먼저 체크 해보지만, 관리자 권한으로 실행 하여도 같은 오류만 뿜을 뿐입니다. 대충 구글링을 통해 알아보니 Windows Vista 이후 계열의 OS 들은 보안상의 문제로 직접 데이터를 수정하는것을 막는것 같습니다. (확실한 내용은 아닙니다 영알못이라) 물론 OS 가 관여하는 부분은 디스크가 정상적으로 물려있고 작동에 문제 없는 경우 입니다. 하드디스크 혹은 파티션 스케쥴러에 관여하는 프로세스들 때문이라네요. 같은 이유로 Windows XP 에서는 그냥 HxD 로 열어서 데이터를 수정하고 저장해도 아무런 문제가 없습니다. 저장 아주 잘 되지요... 근데 여러 이유로 인해 XP 보다는 상위 계열의 OS 를 선호할 수 밖에 없는 상황이 있습니다. 그리고 작업의 효율성을 위해 XP 보다는 상위 계열을 선호하게 됩니다. 필자의 경우 XP 에서만 작업 하다가 위 사실을 모른채로 Windows 7 에서 작업한 적이 있었는데, 장장 2시간의 삽질 결과물을 엑세스 거부로 인해 메모장에 일일이 기록하여 저장해 두었다가 어찌어찌 편법을 발견하여 겨우 해결한 경우도 있고, 처음엔 안되서 XP 에 VMDK 를 교체하여 인식시킨 뒤 XP 에서 편집, 저장을 하고 다시 디스크를 윈7에 물려 사용하기도 하였습니다. 다시는 필자와 같은 피해자가 없길 바라며..... 위 오류를 임시 방편(?)으로 해결한 방법은 아래와 같습니다.


1. MBR 영역으로 이동

2. 수정하고자 하는 파티션의 LBA Addr 을 고의로 훼손 (원본값 백업)

3. 재부팅

4. 디스크 정상 인식 불가

5. Hex 편집기 등으로 데이터 편집

6. LBA Addr 원본 값으로 복원 후 저장

7. 재부팅

8. 데이터 편집, 저장 성공



[그림 2. LBA Addr intentionally damaged]


[그림 2] 와 같이 MBR 영역에서 자신이 원하는 특정 파티션에 LBA Addr 을 고의로 훼손합니다. 필자의 경우 그냥 0x00 으로 채웠습니다. MBR 영역은 편집/저장 이 가능한 영역이라 그나마 이 편법이 먹혀 들어가는 상황입니다. 위와 같이 해주시고 저장 후 재부팅 해주시면 아래 [그림 3] 과 같이 디스크는 물려있는데 정확한 정보를 얻어오지 못하는 상태 즉, 제대로 인식되지 못하는 상황으로 만들 수 있습니다.



[그림 3. Unrecognizable disc]


재부팅 해보시면 위와 같이 제대로 인식이 안되는 상황을 고의적으로 만들어낼 수 있습니다. 포렌식을 하기 위해 고의로 망가트리는(?) 어의없는 상황이 만들어지기도 했네요.



[그림 4. diskmgmt.msc]


근데 LBA Addr 을 바꿨을 뿐인데 전체 디스크의 용량을 못뽑아내는 신기한 상황입니다. 이런 경우는 처음보네요. Windows 7 에서는 없었는데 어째 Windows 10 에서는 볼 수 있는 오류인건지는 모르겠습니다만 Windows 10 으로 VMware 상에서 돌리다보니 별 경험을 다하네요. 확실한건 Windows 7 에서는 전체 용량 표시는 잘 되었습니다.



[그림 5. Total Sector]


여담으로 HxD 에서 총 섹터수가 표시됩니다. 아니더래도 가장 마지막까지 스크롤을 내려 마지막 섹터가 무엇인지 볼 수 있죠. 20971520*512/1024/1024/1024 를 했을때 본 디스크의 용량은 10GB 임을 계산해 낼 수 있습니다.




[그림 6. Just edit]


이제 데이터를 마음대로 편집하고 저장할 수 있게 되었습니다. 데이터를 편집, 저장 후 가장 마지막으로 LBA Addr 를 원본으로 바꿔주는 작업은 필수 입니다. 그렇지 않으면 디스크가 정상적으로 인식되지 않을테니까요. 근데 굳이 정상적으로 인식시키지 않아도 되는 상황이거나, 계속하여 편집 작업을 수행할 경우 굳이 먼저 LBA Addr 를 원본으로 바꿔줄 필요는 없습니다. 이 작업이 귀찮다고 생각되시는 분은 애초에 LBA Addr 를 복원 저장 해 두시고 작업하신 뒤 맨 마지막에 재부팅 한번만 해주시면 끝나는 방법을 이용하셔도 됩니다.



이제 엑세스 오류로 인해 헥스 편집이 안된다는 핑계로 포렌식 공부를 못할 일은 없게 되었습니다~ ^^ ㅋㅋㅋㅋㅋㅋㅋㅋㅋ (씨익)



본 방법은 고의로 LBA Addr 를 손상시켜 파티션 위치를 못찾게 하여 훼손된 디스크로 속인(?) 뒤 데이터 편집을 할 수 있게 하는 방법입니다. 아직 Windows Vista 이후의 OS 에서는 제가 성공한 방법은 위 방법밖엔 없으며, 다른 방법이 존재한다면 댓글을 통해 제보 부탁드립니다.



감사합니다!


WRITTEN BY
EnIaC
WhiteHackerGroup 『LockDown』 EnIaC 입니다.

,