08. Site/01. Redraccoon

[BHPT] 02. 환경설정 - exegol 설치

인러너 2024. 1. 3. 13:12

 

1.  What is Exegol?

 

Exegol 은 Docker를 사용하여 침투 테스트 환경을 쉽게 구성하는 도구

 

  • 도커 기반 칼리 리눅스 라고 생각하면 이해하기 쉽다

 

2.  Exegol vs Virtual Machines

 

  • 여기서 virtual machines은 대표적으로 virtual box, vmware등이 있다.
  • Exegol과 VM의 차이점은 결국 도커와 가상머신의 차이점이라고 볼 수 있다.

  1. Docker 컨테이너는 가상 머신보다 가볍다.
    일반 가상 머신 처럼 OS를 호스트 OS와 독립하는 방식이 아닌 호스트 커널을 공유 하여 '프로세스'로 실행하는 개념이다. 따라서 전체 운영 체제를 포함할 필요가 없다. 이를 통해 컨테이너 시작 속도가 빨라지고 시스템 리소스가 덜 필요하며 단일 물리적 시스템에서 더 많은 컨테이너를 실행할 수 있다.

  2. 다양한 아키텍처에서 동작한다.
    windos, Linux, macOS(intel/ARM) 모두 가능하다.

  3. 쉬운 사용성 및 격리성
    컨테이너는 쉽게 시작, 중지, 삭제가 가능하다. 컨테이너는 호스트에서 실행되는 애플리케이션과 효과적인 격리를 제공 하므로 잠재적인 호환성 문제가 제거된다.

  4. 사전에 구성된 여러 Docker 이미지가 존재한다.
    아래와 같이 종류 별 이미지가 존재 하므로 필요한 이미지만 다운 받은 후 컨테이너 생성 시 해당이미지로 생성만 하면 된다.
    따라서 필요없는 도구들로 인한 리소스 낭비를 줄일 수 있다.

[그림 1] exegol image 종류

 

 

3.  Requirements

 

1.  현재 환경

OS - mac
version - sonoma
cpu - m3 pro
homebrew - installed

 

2.  git

  • 현재 설치 되어있음
git

 

3.  Python3

// python3 설치
brew install python3

// 이름 변경
alias python=python3

 

 

4.  docker desktop 설치

  1. https://docs.docker.com/desktop/install/mac-install/
  2. docker desktop 어플리케이션 실행
  3. docker desktop 자체 동영상 학습 설명이 직관적이기 때문에 어렵지 않아 따라 해보시는걸 추천 드립니다.

 

5.  X11 설치

  • X11은 추후 윈도우 원격데스크톱 접속 시 필요

   1. xquartz 설치

https://www.xquartz.org/

 

   2. xquartz 실행

$ open -a XQuartz

// 실행 여부 확인
ps aux | grep Xquartz
// 실행중일 경우
> /opt/X11/bin/Xquartz :0 -listen tcp

 

 

4.  exegol 본격 설치

 

 

   1. git 소스 설치

git clone "<https://github.com/ThePorgs/Exegol>"

 

   2. 사용자로 exegol requirement 설치

python3 -m pip install --user --requirement "Exegol/requirements.txt"

 

   3. exegol wraper 추가

sudo ln -s "$(pwd)/Exegol/exegol.py" "/usr/local/bin/exegol"

 

   4. exegol 자동 업그레이드

    • 일단 패스 - 현재까지 문제 없음

 

   5. exegol image install

exegol install

 

5. exegol 실행 및 사용법

 

  1. Exegol start (최초 실행 컨테이너가 생성됨)
    • 실행 후 ifconfig 해서 tun0가 나오는지 확인 !
    • 컨테이너 생성시 --env 옵션은 docker-compose.yml 에 environment에 추가하는 옵션이다.
// 최초 실행 (컨테이너 생성)
// vpn 옵션을 줘야 기능이 추가됨
exegol start [컨테이너명] --vpn /[bhpt랩ovpn파일경로]/[bhpt랩ovpn파일명].ovpn --env TZ="Asia/Seoul"

full (원하는 옵션으로 설치 full은 모든 기능이 있어 용량이 큼)

// ex)
exegol start bhpt --vpn /Users/mac/Desktop/redraccoon/BHPT/2200610613922425384.ovpn --env TZ="Asia/Seoul"

// 컨테이너 실행
exegol start bhpt

 

 

   2.  시간변경 (혹시 위 --env 옵션으로 잘 동작 하지 않는 경우)

// exegol 컨테이너 접속 후 해당 명령어 실행
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

// 도커 컨테이너 전체리스트
docker ps -a

// 현재 도커컨테이너 시간
docker exec 9751544bd9b9 date

 

 

reference
[exegol] https://exegol.readthedocs.io/en/latest/getting-started/install.html
[docker-desktop]https://docs.docker.com/desktop/install/mac-install/