기본 콘텐츠로 건너뛰기

버추얼박스(VirtualBox) 설치

1. VM(Virtual Machine)이란?
  일반적으로 물리적인 시스템 OS위에 논리적인 가상 OS를 올려서 독립적인 동작이 가능하도록 하는 시스템 차원의 가상 머신을 말한다.  또 다른 관점에서는 JVM이나 .NET과 같이 시스템내에 프로세스 수준의 가상화를 지원하는 애플리케이션 VM으로도 설명 할 수 있는데 여기서 설명하고자 하는 VM은 논리적/개념적인 컴퓨터 OS로서의 가상머신을 설명한다.

일반적으로 시스템 VM에서 VM이 설치되는 기본 OS를 호스트 OS라고 정의하고, 호스트OS 위에 설치되는 가상 OS를 게스트 OS로 정의 한다.

  물리적인 하드웨어상에 설치되는 OS의 다중 설치에는 멀티 부팅을 위한 다중 OS 설치와 VM을 이용한 게스트 OS 설치가 있는데 두가지의 차이점은 다음과 같다
  - 멀티 부팅 : 하나의 물리적인 H/W에 동일 레벨의 OS가 여러개 설치된 것으로 한 시점에서 하나의 OS밖에 사용할 수가 없지만 하나의 컴퓨터에서 여러 OS를 사용이 가능하다.
  - VM 부팅 : 하나의 물리적인 H/W위에 호스트 OS가 있고 이 호스트 OS위에 여러 게스트 OS를 올릴 수 있으며 하드웨어의 성능에 따라 동시에 여러 OS를 운영할 수 있는 장점이 있다.


2. 시스템 VM의 종류 및 비교

 구분
VirtualBox
Parallels 
 VMWare
Host OS
 Windows / Linux / Mac / Solaris /
FreeBSD등
 Windows / Linux / Mac
Windows / Linux / Mac 
 Guest OS
 DOS/Windows/Linux/
FreeBSD/Solaris등
 DOS/Windows/Linux/OS2
DOS/Windows/Linux/
FreeBSD/Solaris 
 제공사
Oracle 
 Parallels IP Holdings
 VMWare
라이센스 
 무료(오픈소스)
 유료(49$ ~ $79)
 쉐어웨어/상용($79 ~ $189)

3. 왜 VirtualBox?
  버추철 박스(VirtualBox)는 오라클(Oracle)사에서 제공하는 오픈소스 프로젝트로 기업을 위한 일부 기능에 대한 소스 폐쇄 외에 사용에 제한이 없는 오픈소스 라이센스 정책을 유지함에 따라 자유롭게 이용이 가능하다. 또한 다른 VM보다도 설치 용량이 작고 설치가 간단하며 호스트 OS의 주변기기의 거의 대부분을 쉽게 이용할 수 있다는 장점이 있고, 현존하는 거의 대부분의 OS를 게스트 OS로 지원이 가능하다는 점이 강점으로 가지고 있다. 그러나 국내 IT환경의 특징상 VM도 유행을 많이 타는 것으로 보이는데 국내 윈도우즈 호스트 OS 환경에서는 VMWare를 많이 선호한는 것으로 보이고, 맥(MAC)환경에서는 패러럴즈(Parallels)를 많이 사용하는데 이는 상용 VM으로서 마케팅에 한 발 앞서 있기 때문으로 생각 되어 진다. 필자는 MAC / Windows 호스트 OS상에서 버츄얼 박스를 설치하여 운영해 본 경험상 패러럴즈나 VMWare등 상용 VM과 큰 기능성, 편리성 등에 있어서 큰 차이를 느끼지 못하였다. 오히려 설치 및 관리 측면에서 버츄얼 박스가 용이한 측면이 있다. VM은 사실상 데스크탑용으로 보다는 서버용으로 설치하거나 어플리케이션에 대한 다양한 테스트 용도로 사용하는 측면이 강하기 때문에 안정성이 취약하지 않은 이상은 어떤 VM을 사용하더라도 운영상의 문제는 없을 것으로 보인다.

 4. 버츄얼 박스 설치

  이제 버츄얼박스(VirtualBox)를 설치해 보자

  가. 버츄얼박스 다운로드

  버츄얼 박스는 오라클사가 제공하는 VirtualBox 홈페이지에서 최신 버전을 다운로드 받을 수 있는데 다음 URL로 접속해보자.

  버츄얼박스 공식 홈페이지 : https:/www.virtualbox.com
  버츄얼박스 다운로드 페이지 : 다운로드 링크
  일반적으로 윈도우즈 환경에서 VM을 설치 한다고 가정 할 경우에 다음과 같이 VM과 VM-Extension Pack을 모두 설치해 주어야 호스트 OS의 주변기기를 게스트 OS에서 원할하게 활용할 수 있다.


  나. 버츄얼박스(virtualBox VM) 설치
      - 현재 시점(2014.09.12)의 최신 버전은 4.3.1로 "VirtualBox-4.3.16-95972-Win.exe"가 다운로드 된다. 
      - 설치 절차에 따라서 기본 옵션으로 설치하면 무리가 없겠다. 다만 설치 경로를 다르게 하려면 두번째 설치 화면에서 경로를 변경해 주자.

  나. 버츄얼박스(virtualBox VM) VM 이미지 생성
    - 버추얼박스 실행 초기 화면


  - 게스트 OS를 설치하기 위해서는 버추얼 박스에서 해당 OS를 담을 그릇이 필요한데 이를 위한 작업이 VM 이미지를 만드는 작업이다. 이는 게스트 OS를 설치할 컴퓨터를 가상으로 한 대 만드는 것과 같은 개념으로 이해하면 된다. 컴퓨터는 CPU,HDD,RAM,주변기기 등이 당연히 필요 할 것이다. 이에 대한 설정으로 보면 된다.

  - 이름 및 운영체제 지정 : 가상머신의 이름에 기존 운영체제명 Windows / Linux / FreeBSD등이 포함되면 자동으로 종류가 지정되는데 이는 수동으로 재지정 하여 가상 머신의 종류를 명확히 지정할 수 있다.(예제로 FreeBSD 버전 설치를 위한 VM을 만든다)
  - 운영체제의 버전 : 운영체제가 32bit CPU를 지원하는가 64Bit를 지원하는가에 대해 지정이 가능하다.




  - VM이미지가 사용할 RAM크기 지정


    - VM이미지가 사용할 Hard DISK(HDD) 생성 또는 지정
      추천하는 HDD 용량과 관계없이 향후 사용 목적에 적합한 용량을 지정하면 된다.
      새로 가상 HDD를 만들 수 있고, 기존에 생성된 가상 HDD가 있다면 별도 지정이 가능하다.


    - VM HDD 이미지 생성
      . Default : VDI(VirtualBox 디스크 이미지) : 버추얼박스에서 사용하는 기본 디스크 이미지
      . VMDK : VirtualBox만이 아닌 다른 가상머신에서도 사용할 디스크 이미지일 경우 선택
      . VHD / HDD : 버추얼박스에서 기본 디스크 이미지(VDI)외에 별도 가상 HDD를 추가할 수 있는데 이때 사용한다.

    - DISK생성 방식 지정(VM자체가 오버로드가 걸리기 때문에 고정크기 방식이 속도면에서 유리하다)

    - HDD크기 지정 / 생성 위치 지정(FreeBSD 테스트를 위해서는 20G면 아주 충분하다, FreeBSD는 커널 외에 군더더기 없이 필요한 모듈만 설치 관리할 수 있기 때문에 최소 용량으로 서버를 구축할 수 있는 장점이 있다)


    - 생성된 VM 이미지 최종 정보(상기 과정을 따랐다면 아래 화면과 같이 생성된 VM 이미지 정보를 확인 할 수 있다.)
    - 기 생성된 VM에 대한 세부 정보는 "설정" 버튼을 클릭하여 변경이 가능하다.



 5. 버츄얼 박스 확장팩 설치

  호스트 OS의 각종 주변기기(USB 등)를 활용하기 위해서는 버추어박스 확장팩(VirtualBox Extension Pack)을 설치 해야 한다.
상기 버추어박스 다운로드 링크에서 "All supported platform"을 클릭하면 확장팩을 다운로드 받을 수 있다.

  다운로드 받은 확장팩 파일(Oracle_VM_VirtualBox_Extension_Pack-4.x.x-xxxx.vbox-extpack)은 VirtualBox와 자동연결되어 더블클릭하면 버추어박스를 실행후 자동을 설치가 진행 된다.


주의) 64비트 윈도우의 경우 확장팩 설치시 다음과 같은 설치 오류가 나타나는데 이는 권한 문제로 여러가지 해결 방법이 있지만 VirtualBox.exe를 관지자 권한으로 실행시켜 주면 오류 없이 잘 설치 되니 당황하지 말자..
(C:\Program Files\Oracle\VirtualBox 경로에서 VirtualBox.exe를 선택 후 오른쪽 마우스 버튼을 클릭해서 "관리자권한으로 실행"을 클릭하면 된다


이때에는 VirtualBox의 "파일>환경설정" 메뉴를 클릭하여 환경설정에 들어가서 왼쪽 항목에서 "확장"을 선택하여 다운로드 받은 확장팩 파일을 지정해 주면 자동으로 설치 과정이 진행 된다.

댓글

이 블로그의 인기 게시물

보안 공부 링크

SSLsplit - SSL/TLS기반의 네트워크 포렌식 및 침투테스트(중간자공격) 도구 http://www.roe.ch/SSLsplit 가상화 서버운영 및 구축을 위한 Xenserver가 오픈소스로 공개 http://www.xenserver.org/ Python과 Fabric를 사용한 SSH 봇넷 C&C 구축 예제 http://raidersec.blogspot.kr/2013/07/building-ssh-botnet-c-using-python-and.html 파워쉘을 이용한 비밀번호 정보 획득 http://www.obscuresecurity.blogspot.kr/2013/07/get-gpppassword.html niktoHelper - Nmap의 Grepable형식을 Nikito와 연동하기 위한 파이썬 스크립트 http://milo2012.wordpress.com/2013/07/07/niktohelper-bridge-between-nmap-grepable-output-and-nikto/ 루비를 통한 심도있는 XSS 방어 방법 http://homakov.blogspot.com.es/2013/07/xss-defense-in-depth-with-rackrails-demo.html IT관련 E-Book 모음 http://www.cyberhades.com/2013/07/04/unos-libritos-tecnicos-para-el-veranito JJEncode 스크립트 분석 http://www.kahusecurity.com/2013/jjencode-script-leads-to-drive-by/ 웹브라우저 호환성 검증 및 분석결과 제공 http://www.modern.ie/ko-kr/ http://browsershots.org/ html 색상 선택 도구 https://kuler.adobe.com/create/color-wheel/ Windows 메모리 보호 메커니즘 http://resources.infosecinstitute.com/window...

dns2proxy 해킹툴

dns2proxy Offensive DNS server This tools offer a different features for post-explotation once you change the DNS server to a Victim. <Referer to help (-h) to new params options> Feature 1 Traditional DNS Spoof adding to the response the original IP address. Using spoof.cfg file: hostname ip.ip.ip.ip root@kali:~/dns2proxy# echo " www.s21sec.com  1.1.1.1" > spoof.cfg // launch in another terminal dns2proxy.py root@kali:~/dns2proxy# nslookup  www.s21sec.com  127.0.0.1 Server: 127.0.0.1 Address: 127.0.0.1#53 Name:  www.s21sec.com Address: 1.1.1.1 Name:  www.s21sec.com Address: 88.84.64.30 or you can use domains.cfg file to spoof all host of a same domain: root@kali:~/demoBH/dns2proxy# cat dominios.cfg .domain.com 192.168.1.1 root@kali:~/demoBH/dns2proxy# nslookup aaaa.domain.com 127.0.0.1 Server: 127.0.0.1 Address: 127.0.0.1#53 Name: aaaa.domain.com Address: 192.168.1.1 Hostnames at nospoof.cfg will no be spoofed. Featu...

어셈블리어(Assembly) 기초

0x01.  어셈블리 언어란 ? &  배우는 목적 CPU  에는 해당 프로세서에 명령을 내리기 위해 고유의 명령어 세트가 마련되어 있는데 이  명령어 세트를 기계어라고 한다 .  이 기계어는 숫자들의 규칙조합임으로 프로그래밍에 상당 히 난해하다 .  그래서 이 기계 명령어를 좀더 이해하기 쉬운 기호 코드로 나타낸것 ( 기계어와  1:1 로 대응된 명령을 기술하는 언어 ) 이 어셈블리어이다 .  어셈블리 언어는 그 코드가 어떤  일을 할지를 추상적이 아닌 ,  직접적으로 보여준다 .  논리상의 오류나 ,  수행 속도 ,  수행 과정 에 대해 명확히 해준다는 점에서 직관적인 언어이다 .  어셈블리 언어를 사용하면 메모리에 대한 이해도도 높아진다 .  어셈블리를 익히고 ,  배우는데 있어서는 여러 가지 목적이 있을 수 있다 .  컴퓨터 시스템 & 구조를 좀 더 깊게 이해하고 ,  메모리상의 데이터나  I/O 기기를 직접 액 세스 하는등의 고급언어에서는 할 수 없는 조작을위해서이다 .  프로그램의 최적화 및 리버 스 엔지니어링을 위해서도 필요하다 . + 2 줄 요약  + -  어셈블리 언어는 기계어와  1:1  대응을 하는 언어이다 . -  어셈블리 언어를 배우면 시스템을 이해하는데 도움이 된다 . 0x02.  어셈블리를 위한 기본 지식 (1)  기본적인 하드웨어 1) CPU -  메모리에 있는 내용을 읽고 ,  쓰고 데이터를 메모리와 각 레지스터로 보낸다 . 프로그램의 명령을 해석하고 실행한다 . 하나의 프로세서는  12~14 개의 레지스터를 가 지고 있으며 , CPU 의 연산 ,  논리 장치는 숫자와 기호에 관한 연산자를...