VirtualBox 란 virtual machine의 한 종류로 다양한 OS를 자신의 컴퓨터에서 사용할 수 있게 만들어주는 프로그램이다. 별도로 컴퓨터를 마련해서 다른 OS 환경을 갖추기에는 다양하고 번잡하기 때문에 가상머신으로 사용하는 것이 효율적이다. 또한 기업에서 바로 사용할 수 있으며 Windows OS 사용자를 위해 개발된 무료 가상화 소프트웨어이다.
Virtual Box에서 이야기하는 장점은 아래와 같다. (출처 : VirtualBox)
대다수의 많은 사람들은 가상 머신을 사용할 때 2가지 플렛폼을 가장 많이 사용하는데, 이번에 소개한 VirtualBox와 VMware Workstation이다. 필자는 VMware Workstation을 주로 많이 사용한다.
분석이미지나 문제풀이에서 제공되는 파일로 가상머신 이미지 덤프 파일이 자주 제공된다.
VMware Workstation에서 사용중인 머신에서 메모리 파일을 추출하는 방법은 매우 간단하다.
위와 같이 그냥 VMware Workstation을 실행하는 것만으로도 vmem 파일이 생성되기 때문에 따로 추출할 필요가 없다. 하지만 VirtualBox에서의 메모리 덤프 파일 추출은 다르다.
가상머신 실행 후 폴더 (메모리 파일이 없음)
자동생성되는 메모리 덤프파일이 있는것도 아니며, 특정 명령어를 통해서 mem파일을 추출할 수 있지만 기본적으로 ELF 파일에서 메모리 덤프 파일을 추출할 수 있는데, 여기서 이야기 하는 ELF 파일은 우리가 아는 리눅스 실행파일이 아닌 VirtualBox ELF Core 파일이다.
이 글을 작성하는 이유는 VirtualBox에서 메모리 덤프 파일 제공으로 ELF Core 파일을 준다는 점이 신기했었고, CTF 문제를 푸는데 제공된 파일이 ELF 시그니처를 가지고 있어서 문제를 해결하는데 어려움을 받았었다. 아래의 풀이는 ELF Core 파일을 제공했던 문제의 풀이이다.
간단한 Memory 덤프 파일에서 사용자 Password를 찾는 문제였지만, 제공된 파일이 ELF 파일이였고, 단순히 Password를 찾으라는 문제였기 때문에 VirtualBox의 메모리 덤프파일의 Header가 ELF 파일 구조로 되어 있다는 것을 모르고 문제를 접했다면 꽤나 난해한 문제였을 것이다.