이 글에서는 침투 테스트(penetration testing) 과정에서 사용하도록 설계된 도구 모음인 Veil 프레임워크를 활용해 백신(안티바이러스) 탐지를 우회하는 방법을 단계별로 소개합니다. Veil은 현재 다음과 같은 핵심 모듈들로 구성되어 있습니다.
- Veil-Evasion − 다양한 기법과 프로그래밍 언어를 활용해 백신 회피형 페이로드를 생성하는 도구
- Veil-Catapult − Veil-Evasion과 통합된 psexec 방식의 페이로드 전달(delivery) 시스템
- Veil-PowerView − Windows 도메인 환경에서 네트워크 상황 인식(situational awareness)을 확보할 수 있는 PowerShell 기반 도구
- Veil-Pillage − Veil-Evasion과 통합된 모듈형 후속 공격(post-exploitation) 프레임워크
설치 요구 사항
Veil 프레임워크를 설치하려면 먼저 시스템에 최신 버전의 Python 패키지가 구성되어 있어야 합니다. 의존성 문제를 예방하려면 설치 전에 Python 환경을 미리 점검해 두는 것이 좋습니다.
Veil 설치 방법
설치 시 가장 중요한 점은 슈퍼유저(superuser) 권한으로 작업을 진행해야 한다는 것입니다. 루트(root) 계정을 사용하지 않는 경우(Kali Linux는 기본적으로 root 계정 사용), 명령어 앞에 sudo를 붙이거나 루트 사용자로 전환한 후 시작하세요.
Veil-Framework는 백신 소프트웨어의 페이로드 탐지를 효과적으로 피할 수 있는 강력한 도구입니다. 설치하려면 먼저 GitHub에서 저장소를 내려받은 뒤 아래 명령어를 순서대로 실행합니다.
git clone https://github.com/Veil-Framework/Veil.git
cd Veil/
./config/setup.sh --force --silent

페이로드 생성하기
1단계
페이로드를 생성하려면 메뉴 목록에서 Evasion 옵션을 선택합니다.

2단계
사용 가능한 모든 페이로드를 확인하려면 list 옵션을 선택하면 됩니다. 그러면 아래 이미지와 같이 이용 가능한 페이로드 전체 목록이 화면에 표시됩니다.

3단계
이제 use 명령어를 입력해 원하는 페이로드를 선택합니다.

4단계
마지막으로 페이로드 선택을 마친 후 py2exe 옵션을 지정하고 generate 명령어를 실행하면 원하는 FUD(Fully Undetectable) 페이로드가 생성됩니다.

위 이미지에서 확인할 수 있듯이, 어떤 백신 엔진에서도 탐지되지 않는 완전 무탐지 페이로드인 runme.bat 파일이 생성되어 /usr/share/veil-output/source 디렉터리에 저장됩니다. 생성된 페이로드는 실제 대상 환경에 배포하기 전에 반드시 자신만의 통제된 테스트 환경에서 동작 여부를 검증하는 것이 좋습니다.