
Ansible 기반 공격 플랫폼으로, 표준화된 Linux 침투 테스트 환경을 배포 및 관리하며 자동화된 도구 설치, 버전 추적, SSH/VNC 액세스를 제공합니다.
ThreatBox는 표준화되고 제어된 Linux 기반 공격 플랫폼입니다. 저는 이 플랫폼의 버전을 수년간 사용해 왔습니다. 처음에는 스크립트 모음으로 시작했으며, 롤링 가상 머신으로 유지되다가, Linux ISO를 빌드하는 코드로 존재했고, 이제는 ansible 플레이북 세트로 변환되었습니다. 왜 Ansible일까요? 왜 안 될까요? 이것이 표준 공격 플랫폼 구성의 다음 자연스러운 진화처럼 보였습니다.
이 프로젝트는 ansible 플레이북과 역할을 사용하여 Linux 대상(Ubuntu 18.04에서 테스트됨)에 사후 배포 구성을 수행합니다.
이 프로젝트는 레드 팀 운영 또는 침투 테스트를 위한 표준 공격 플랫폼을 생성, 관리 및 사용하는 시작 프로세스로 사용되도록 설계되었습니다.
표준 공격 플랫폼의 개념에 대한 자세한 내용은 Joe Vest와 James Tubberville이 작성한 책 Red Team Development and Operations - A practical guide에서 확인할 수 있습니다. Red Team Guide

threatbox.yml의 ansible_port 변수를 사용하여 대상 시스템을 원하는 SSH 포트로 재구성합니다.pipenv shell다음 목록은 이 프로젝트의 주요 구성 요소를 강조합니다.
| 파일/디렉토리 | 설명 | 사용법 |
|---|---|---|
| host | Ansible 호스트 파일 | 대상 ansible 시스템의 IP 주소로 업데이트 |
| group_vars/threatbox.yml | 공통 변수 | 프로젝트에 사용되는 변수. 필요에 따라 업데이트. |
| threatbox_playbox.yml | 기본 ansible 플레이북 | 필요에 따라 추가 역할이나 기능을 추가하도록 업데이트 |
| roles/common | 공통 OS 플랫폼 구성 | 공통 OS 설정 구성 (예: 배경 또는 빌드에서 버전 설정) |
| roles/. | 도구를 구성하거나 배포하는 기타 특정 역할 | roles/에 역할을 추가하거나 수정 |
하나 이상의 대상을 프로비저닝하세요.
참고: 이 프로젝트는 Digitalocean에 배포된 Ubuntu 18.04에서 테스트되었습니다.
hosts.sample을 hosts로 복사hosts 편집group_vars\threatbox.yml.sample을 group_vars\threatbox.yml로 복사group_vars\threatbox.yml 편집
# OSX issue https://github.com/ansible/ansible/issues/32499
if [[ "$(uname)" == "Darwin" ]]
then
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=yes;
fi
# Ansible Logging
rm ./ansible.log
export ANSIBLE_LOG_PATH="ansible.log"
# Ansible Debugging
export ANSIBLE_DEBUG=False
# Execute playbook
ansible-playbook -e ansible_python_interpreter=/usr/bin/python3 -i hosts threatbox_playbook.yml
참고: 상당한 성능 향상을 위해 Mitogen for Ansible 사용을 고려하세요. https://mitogen.networkgenomics.com/ansible_detailed.html
[defaults]
host_key_checking = False
pipelining = True
forks = 100
timeout = 600
stdout_callback = yaml
bin_ansible_callbacks = True
callback_whitelist = profile_roles, profile_tasks, timer
#mitogen
strategy_plugins = ~/Documents/mitogen-0.2.9/ansible_mitogen/plugins/strategy
strategy = mitogen_linear
참고: 설정 중 SSH가 비표준 포트로 설정될 수 있습니다. 이 값은 group_vars/threatbox.yml 파일에 설정되어 있습니다.
threatboxip=10.10.10.10
sshport=52222
ssh -p $sshport -i ~/.ssh/threatbox_id_rsa root@$threatboxip
참고: VNC는 설정되어 있지만 네트워크를 통한 접근은 허용되지 않습니다. SSH 터널을 사용하여 접속해야 합니다.
threatboxip=10.10.10.10
sshport=52222
ssh -p $sshport -i ~/.ssh/threatbox_id_rsa -L 5901:localhost:5901 root@$threatboxip
이 프로젝트는 ansible 역할을 사용합니다. 이 역할들은 ansible 스타일을 정확히 따르지 않을 수 있습니다. 이 프로젝트의 일부로 사용되도록 설계되었으며, 단일 '변수' 파일을 사용하여 프로젝트를 제어합니다. 역할은 약간의 수정으로 다른 프로젝트에서 쉽게 사용할 수 있습니다.
ThreatBox 사용자 정의 명령어 
도구 카테고리 
모든 설치된 도구 추적 ![]()
자동 터미널 로깅 
더 많은 컨텍스트를 제공하는 사용자 정의 터미널 옵션 
터미널의 라이트 버전
Pipenv는 파이썬 프로젝트를 독립적으로 유지합니다 
pipenv 환경에서 실행 중인 SilentTrinity 예제 