brunch

You can make anything
by writing

C.S.Lewis

by 복지CEO 조정원 Mar 03. 2017

베일프레임워크 이해(1)

보안프로젝트 매거진

※ 주의사항

아래 공격 코드는 연구 목적으로 작성된 것이며, 허가 받지 않은 공간에서는 테스트를 절대 금지합니다.

악의 적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 자신한테 있습니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다.

해당 문서의 저작권은 저자들에게 모두 있습니다. 다른 목적으로 이용할 시 법적 조치가 가해질 수 있습니다.

 

해당 원고는 보안프로젝트에서 추진한 책 출간되기 전에 공개되는 일부 내용입니다.


베일프레임워크(Veil-Framework) 안티바이러스와 보안 필터링의 정책 우회에 초점을 두고 제작된 공격용 프레임워크(Framework)이다대상 시스템이나 네트워크에 설치된 보안 장비나 솔루션에 탐지되지 않고 공격에 성공하기 위해 필요한 프로그램을 손쉽게 사용할  있도록 제작된 프로그램 모음이다물론 이전부터 공격이 탐지되지 않기 위한 목적으로 개발된 프로그램들은 꾸준히 존재했다하지만 대부분의 프로그램들은 사용  제약 사항이 많거나다루기 어렵고 불편하다는 단점이있었다하지만 베일프레임워크는 사용자가 프로그램에서 요구하는 입력값만 설정하면 보안 장비나 솔루션에 탐지되지 않고 공격을 수행할 있다.

 

베일프레임워크는 아래와 같은 프로그램을 포함하고 있다.

 

-            베일오드넌스

-            베일이베이전

-            베일캐터펄트

-            베일필리지

 

베일오드넌스는 인코딩된 쉘코드를 생성하는 역할을 담당하는 프로그램이다베일 오드넌스는 사용하면 단 줄로 이뤄진 명령 구문을 실행하여안티바이러스에 탐지되지 않는 쉘코드를 생성할 있다.

 

베일이베이전은 안티바이러스를 우회하는 페이로드를 생성하는 역할을 담당하는 프로그램이다일반적으로 베일프레임워크를 통해 시스템이 침투하려면 먼저 베일 오드넌스를 통해 인코딩된 쉘코드를 생성하고생성된 쉘코드를 이용하여 베일이베이전으로 안티 바이러스에 탐지되지 않는 페이로드를 생성한다.

 

다음으로 베일캐터펄트는 침투된 대상 시스템에 페이로드를 전달하고 최종적으로 실행하는 역할을 담당한다.

 

마지막으로 베일필리지(Veil-Pillage) 베일 프레임워크의 향상된 포스트익스플로잇 기술을 사용하여 내부 침투를 수행하기 위해 추후에 포함된 도구이며기존 베일프레임워크의 강력하고 확장된 기능을 모듈 형태로 추가하였다그리고 다양한 기능을 지원하는 모듈을 통해 공격자가 필요한 형태의 페이로드를 제작할 있다또한공격하는 과정에서 베일프레임워크 이외의 도구를 연동하거나공개된 베일프레임워크 소스코드를 사용자가 수정할  있으므로 사용자가 기존의 기능을 변경하거나 새로운 기능을 추가할 수도 있다.

 

일반적으로 베일프레임워크에 포함된 프로그램을 사용하여 공격하는 과정은 먼저 베일오드넌스(Veil-Ordnance) 실행하여 인코딩된 쉘코드를 생성한다해당 쉘코드를 베일이베이전(Veil-Evasion)에서 안티바이러스를 우회하는 페이로드로 생성한다생성된 페이로드는 베일캐터펄트(Veil-Catapult) 이용하여 침투된대상 시스템에 페이로드를 전송되고전송이 완료되면 시스템 외부에서 보낸 트리거 신호를 통해 실행된다.

 

우리는 이제 베일프레임워크를 설치하는 방법과 업데이트하는 방법에 대해 알아보고 프로그램의 역할과 사용법을 상세히 알아볼것이다그리고 이론 학습을 완료하면 학습한 이론을 바탕으로 실습을 진행할 것이다.


이번 장에서는 베일프레임워크 환경을 구성하는 방법을 소개할 것이다. 베일프레임워크에 포함된 프로그램은 모두 파이썬으로 작성되었다. 따라서 베일프레임워크를 설치하려면 파이썬 실행 환경과 베일프레임워크를 실행하기 위해 필요한 파이썬 라이브러리가 사전에 구성되어야 한다. 파이썬과 필요한 라이브러리는 칼리리눅스에서 기본적으로 제공하기 때문에 곧바로 베일프레임워크 설치할 수 있다.

베일프레임워크의 소스 파일은 베일프레임워크의 깃허브 사이트(https://github.com/Veil-Framework/)에서 제공한다. 그리고 깃허브 사이트에는 베일프레임워크에 포함된 각 프로그램별로 저장소로 분류되어 있다. 각 저장소의 README.md 파일에는 해당 프로그램에 대한 설명이나 사용법, 설치 방법 등이 기록되어 있다..

이제부터 본격적으로 베일프레임워크의 설치방법을 하나씩 구성해보도록 한다. 먼저 베일프레임워크의 소스 파일을 내려받기 위해 브라우저로 깃허브 사이트(https://github.com/Veil-Framework/)로 이동한다.

  


그림 2 1 베일프레임워크 깃허브 사이트(https://github.com/Veil-Framework/)

깃허브 사이트에는 그림 2 1과 같이 5개의 저장소로 분류되어 있다. Veil이라는 저장소에는 베일프레임워크 전부 설치 및 업데이트용 파일이 저장되어 있으며, 다른 저장소에는 해당 프로그램의 소스 파일이 포함되어 있다. 사용자는 베일프레임워크 전체를 설치할 수도 있으며, 필요한 프로그램 소스 파일만 개별로 다운로드하여 설치할 수도 있다. 우리는 베일프레임워크 전체 프로그램을 활용할 것이기 때문에 프레임워크 전체를 설치해야 한다. 베일프레임워크 전체 설치를 위해 Veil 저장소로 접근한다.
 


그림 2 2 베일프레임워크 설치 파일


저장소 내부에는 그림 2 2과 같이 Install.sh 파일과 README.md 파일이 저장되어 있다. 여기서 Install.sh 파일은 베일프레임워크에 포함된 모든 프로그램을 한꺼번에 설치하거나 업데이트하기 위해 작성된 쉘 스크립트 파일이다. 
 


그림 2 3 깃허브의 소스 다운로드 UI


저장소 파일 리스트의 상단을 보면 그림 2 3과 같은 화면이 보인다. 이 메뉴를 활용하여 저장소의 주소를 복사하거나, 저장소 내의 파일을 ZIP 파일로 압축하여 저장할 수있다. 깃허브 저장소의 주소를 활용하기 위해서는 현재 사용하는 리눅스에 git 패키지가 설치되어 있어야 한다. 만약 git 패키지가 설치되어 있지 않다면 yum(#yum install git)이나 apt-get(apt-get install git)을 이용하여 설치한다 . 이번 장에서는 Git명령어를 이용한 설치 방법과 각 도구별 소스 파일을 통한 설치 방법을 소개하려 한다.


깃(git) 명령어를 이용한 설치 방법


베일프레임워크 설치를 위해 칼리리눅스에서 터미널을 실행한다. 그리고 깃허브 저장소의 소스를 가져오기 위해 터미널에서 git clone 명령을 사용해야 한다. 여기서 베일프레임워크 저장소의 소스를 가져오기 위해 터미널에서 “git clone https://github.com/Veil-Framework/Veil.git” 를 실행한다. 그리고 git clone 명령을 통해 개별 프로그램을 설치할 때도 해당 프로그램의 깃주소가 제공되므로 사용자는 git clone 명령을 사용하여 필요한 도구만 설치할 수도 있다.

 
그림 2 4 베일프레임워크에 대한 git clone 명령

그림 2 4과 같이 깃허브 저장소의 파일을 현재 사용자가 위치한 경로에 다운로드한다. 설치된 디렉터리 내부에는 Install.sh 파일과 README.md 파일이 저장되어 있다. 베일프레임워크 전체 설치를 진행하기 위해 Install.sh 파일을 실행한다.
  


그림 2 5 Install.sh 실행 화면


 Install.sh 를 그대로 실행하면 그림 2 5과 같이  Install.sh 의 사용법이 출력된다. Install.sh 를 이용하여 베일프레임워크를 전체 설치하려면 -c 옵션을 사용하고, 업데이트를 적용하려면 -u 옵션을 사용한다..

 

그림 2 6 Veil-인스톨러를 통한 설치 과정

우리는 베일프레임워크를 처음 설치하기 때문에 -c 옵션으로 Install.sh 파일을 실행한다. 그림 2 6과 같이 베일프레임워크 전체 도구를 깃허브 저장소에서 다운로드 받은 후 자동으로 설치를 진행한다. 베일프레임워크에서 사용하는 프로그램 중 윈도우즈 환경에서만 실행되는 프로그램이 존재한다. 따라서 해당 프로그램을 사용하기 위해 리눅스 내에서 가상 윈도우즈 환경 구성을 위해 우선 wine 을 설치하고 wine 환경 내부에 파이썬을 설치한다. 파이썬 실행환경이 wine 환경에 구성되면 wine 내부에 파이썬과 해당 프로그램을 설치한다. 

지금까지 설명한 설치 과정은 Install.sh를 실행한 콘솔에서 출력되는 메시지(단순히 “Yes” 또는 “Next” 버튼을 클릭하는 게 전부이다.)에 따라 설치를 진행하면 문제없이 환경을 구성할 수 있을 것이다.
 

그림 2 7 베일프레임워크 설치 완료
 
베일프레임워크 설치가 완료되면 그림 2 7처럼 베일프레임워크의 설정된 내용과 설치 완료를 의미하는 “All Repos Cloned”라는 메세지가 출력된다. 현재 위치에서 사용자가 ls 명령을 실행하면 베일프레임워크의 도구가 각 디렉터리별로 저장된다. 각 도구에 대한 설명과 사용법에 대해서는 다음 장부터 순차적으로 설명할 것이다.

 


매거진의 이전글 베일프레임워크 이해(2) - 베일이베이전 활용
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari