- 파이썬으로 파일시스템 깊이 있게 분석하기 -1-(http://maj3sty.tistory.com/1115)


이전 글에서는 이미지(Raw 포맷)에 접근하여 볼륨 정보 등을 얻어내는 작업을 해보았다. 이번에는 실제 파이썬 스크립트가 실행되는 로컬 환경 볼륨에 접근하는 방법을 살펴보자.


이미지 파일은 파일이기 때문에 파일 오픈 핸들을 pytsk3 모듈에 입력해 주면 됐지만 로컬 환경은 장치 핸들을 pytsk3 모듈에 입력을 해주어야 한다. 장치와 파일의 차이는 크지만, 코드는 이전 코드와 많이 다르지 않다. 아래 코드는 글쓴이의 가상환경에서 작성한 파이썬 스크립트와 실행 결과이다.




이번에는 NTFS 파일시스템 2개 존재하는 것을 확인할 수 있다. 로컬 환경과 이미지 파일은 접근하는 대상만 다를 뿐 다루는 방법은 동일하다는 것을 알 수 있다. 위 소스코드는 아래 첨부해 두었으니 한번 확인해 보기 바란다.


Day2.zip


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

디지털 포렌식에서는 기본으로 다뤄야 할 부분이 파일시스템이다. 휘발성 데이터 뿐만 아니라 비휘발성 데이터까지 모두 파일시스템에 저장되기 때문에 실제 업무에서나 챌린지 문제 풀이에서나 파일시스템 분석은 중요하다고 볼 수 있다.


그래서, 시간이 되는대로 파이썬으로 파일시스템을 다뤄보는 글을 쓸 예정이다. 언어는 사람들이 쉽게 가장 많이 쓰는 파이썬(파이썬 언어 자체의 설명은 생략한다.)으로 하여 파일시스템 이미지 포맷인 E01과 Raw 포맷을 대상으로 여러가지 분석을 할 수 있는 코드를 작성해보고 해당 소스코드는 제공할 생각이다.


일단 먼저, 파이썬 모듈이 필요하다. 우리가 주로 사용할 모듈은 파일시스템을 분석해 주는 'pytsk' 모듈이다. 각 모듈에 대한 설명은 다음과 같다.


 - pytsk : pytsk 모듈은 SluethKit과 Autopsy의 파이썬 버전이라고 생각하면 된다. 여러 운영체제의 파일시스템 분석을 지원하는 아주 유용한 툴이다. 분석 기능이 많아 사용법은 조금 까다롭다. 해당 모듈의 사용법 또한 소스코드를 작성하며 알아보도록 하자.


pytsk3-4.1.3-20140506.win32-py2.7.msi


각 모듈의 설치는 쉬우므로 설명을 생략하도록 하겠다.



소스코드 작성 환경은 다음과 같다.

 - 운영체제 : Windows 7 / 8 32/64bit

 - 파이썬 버전 : Python 2.7 32bit

 - 에디터 : PyCharm 4.x


[이미지 파일 접근 해보기]

이미지 파일은 이미지 대상 크기와 이미지 파일 포맷에 따라 처리하는 방법이 다르다. 일단 처음이니 만큼 용량이 작은 Raw 포맷을 대상으로 처리 방법을 알아보자. 모듈이 설치 되었다면 아래와 같이 'pytsk3' 모듈을 import 하여 사용하면 된다.



볼륨 파싱이 완료되면 볼륨 정보를 가지고 있는 클래스 개체 하나를 반환하며, 각 클래스 개체는 Property 함수로 필요한 데이터를 반환하도록 되어 있다. 소스코드에 나온 정보 말고도 다양한 정보가 있으니 각자 확인해보도록 하자. 스크립트를 실행하면 결과는 다음과 같다.




출력을 보면 4개의 결과가 나왔지만, "Primary Table"과 "Unallocated" 항목을 제외하면 "NTFS" 파일시스템 하나만 있는 것을 확인할 수 있다. 그러므로 해당 파일시스템을 타겟팅하여 분석을 진행해 나가면 된다.


해당 소스코드와 프로젝트는 아래에 첨부하여 두었다.


Day 1.zip


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

+ Recent posts

티스토리 툴바