
Plataforma de ataque basada en Ansible para implementar y gestionar un entorno estandarizado de pruebas de penetración en Linux con instalación automatizada de herramientas, seguimiento de versiones y acceso SSH/VNC.
ThreatBox es una plataforma de ataque estándar y controlada basada en Linux. He utilizado una versión de esto durante años. Comenzó como una colección de scripts, existió como una máquina virtual continua, se convirtió en código para construir una ISO de Linux, y ahora se ha convertido en un conjunto de playbooks de Ansible. ¿Por qué Ansible? ¿Por qué no? Esto parecía ser la siguiente evolución natural en la configuración de plataformas de ataque estándar.
Este proyecto utiliza playbooks y roles de Ansible para realizar la configuración posterior al despliegue en un objetivo Linux (probado en Ubuntu 18.04).
El proyecto está diseñado para usarse como un proceso inicial en la creación, gestión y uso de una plataforma de ataque estándar para red teaming o pruebas de penetración.
Los detalles sobre el concepto de una Plataforma de Ataque Estándar se pueden encontrar en el libro Red Team Development and Operations - A practical guide, escrito por Joe Vest y James Tubberville. Red Team Guide

ansible_port en threatbox.ymlpipenv shell en el directorio del proyecto para acceder. Consulte https://realpython.com/pipenv-guide/ para obtener orientación sobre el uso de pipenvLa siguiente lista destaca los componentes clave de este proyecto.
| Archivo/Directorio | Descripción | Uso |
|---|---|---|
| host | Archivo de hosts de Ansible | Actualizar con las direcciones IP de los sistemas objetivo de Ansible |
| group_vars/threatbox.yml | variables comunes | variable utilizada para el proyecto. actualizar según sea necesario. |
| threatbox_playbook.yml | Playbook principal de Ansible | Actualizar según sea necesario para agregar roles o características adicionales |
| roles/common | Configuración común de la plataforma del SO | Configurar ajustes comunes del SO (por ejemplo, establecer la versión en el fondo o compilación) |
| roles/. | otros roles específicos para configurar o desplegar herramientas | agregar o modificar roles en roles/ |
Aprovisionar uno o más objetivos.
Nota: Este proyecto fue probado en Ubuntu 18.04 desplegado en Digitalocean
hosts.sample a hostshosts con las direcciones IP de sus sistemas objetivogroup_vars\threatbox.yml.sample a group_vars\threatbox.ymlgroup_vars\threatbox.yml con las variables actualizadas que desee usar
# 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
Nota: Considere usar Mitogen para Ansible para obtener un aumento significativo del rendimiento. 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
Nota: SSH puede configurarse con un puerto no estándar durante la instalación. Este valor se establece en el archivo group_vars/threatbox.yml
threatboxip=10.10.10.10
sshport=52222
ssh -p $sshport -i ~/.ssh/threatbox_id_rsa root@$threatboxip
Nota: VNC está configurado pero no se permite a través de la red. Debe usar un túnel SSH para acceder.
threatboxip=10.10.10.10
sshport=52222
ssh -p $sshport -i ~/.ssh/threatbox_id_rsa -L 5901:localhost:5901 root@$threatboxip
Este proyecto utiliza roles ansbile. Estos roles pueden no seguir exactamente el estilo de ansible. Fueron diseñados para ser usados como parte de este proyecto y utilizan un único archivo 'variable' para controlar el proyecto. Los roles pueden ser fácilmente utilizados en otros proyectos con ajustes menores.
Comandos personalizados de ThreatBox 
Categorías de herramientas 
Seguimiento de todas las herramientas instaladas ![]()
Registro automático de terminal 
Las opciones de terminal personalizadas proporcionan más contexto 
Versión clara de la terminal
Pipenv mantiene los proyectos de Python independientes 
Ejemplo de SilentTrinity ejecutándose en entorno pipenv 