
Piattaforma di attacco basata su Ansible per distribuire e gestire un ambiente standardizzato di penetration testing su Linux con installazione automatizzata degli strumenti, monitoraggio delle versioni e accesso SSH/VNC.
ThreatBox è una piattaforma di attacco standard e controllata basata su Linux. Ho usato una versione di questa per anni. È iniziata come una raccolta di script, è vissuta come una macchina virtuale rolling, è esistita come codice per costruire un ISO Linux, ed è ora stata convertita in un insieme di playbook Ansible. Perché Ansible? Perché no? Questa sembrava essere la prossima evoluzione naturale per la configurazione di piattaforme di attacco standard.
Questo progetto utilizza playbook e ruoli Ansible per eseguire la configurazione post-deploy su un target Linux (testato su Ubuntu 18.04).
Il progetto è progettato per essere utilizzato come processo iniziale per creare, gestire e utilizzare una piattaforma di attacco standard per red teaming o penetration testing.
I dettagli sul concetto di Piattaforma di Attacco Standard si trovano nel libro Red Team Development and Operations - A practical guide, scritto da Joe Vest e James Tubberville. Red Team Guide

ansible_port in threatbox.ymlpipenv shell nella directory del progetto per accedervi. Vedi https://realpython.com/pipenv-guide/ per indicazioni sull'uso di pipenvIl seguente elenco evidenzia i componenti chiave di questo progetto.
| File/Directory | Descrizione | Utilizzo |
|---|---|---|
| host | File hosts di Ansible | Aggiornare con gli indirizzi IP dei sistemi Ansible di destinazione |
| group_vars/threatbox.yml | variabili comuni | variabile utilizzata per il progetto. aggiornare secondo necessità. |
| threatbox_playbox.yml | Playbook Ansible principale | Aggiornare secondo necessità per aggiungere ulteriori ruoli o funzionalità |
| roles/common | Configurazione comune della piattaforma OS | Imposta le impostazioni comuni del sistema operativo (ad esempio imposta la versione nello sfondo o nella build) |
| roles/. | altri ruoli specifici per configurare o distribuire strumenti | aggiungere o modificare ruoli in roles/ |
Eseguire il provisioning di uno o più target.
Nota: Questo progetto è stato testato su Ubuntu 18.04 distribuito su Digitalocean
hosts.sample in hostshosts con gli indirizzi IP dei tuoi sistemi targetgroup_vars\threatbox.yml.sample in group_vars\threatbox.ymlgroup_vars\threatbox.yml con le variabili aggiornate che desideri utilizzare
# 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: Considera l'uso di Mitogen per Ansible per ottenere un significativo aumento delle prestazioni. 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: La porta SSH potrebbe essere impostata su una porta non standard durante l'installazione. Questo valore è impostato nel file group_vars/threatbox.yml
threatboxip=10.10.10.10
sshport=52222
ssh -p $sshport -i ~/.ssh/threatbox_id_rsa root@$threatboxip
Nota: VNC è configurato ma non è consentito sulla rete. Devi utilizzare un tunnel SSH per accedervi.
threatboxip=10.10.10.10
sshport=52222
ssh -p $sshport -i ~/.ssh/threatbox_id_rsa -L 5901:localhost:5901 root@$threatboxip
Questo progetto utilizza ruoli ansbile. Questi ruoli potrebbero non seguire esattamente lo stile di Ansible. Sono stati progettati per essere utilizzati come parte di questo progetto e utilizzano un singolo file di 'variabili' per controllare il progetto. I ruoli possono essere facilmente utilizzati in altri progetti con piccole modifiche.
Comandi Personalizzati di ThreatBox 
Categorie di Strumenti 
Tracciamento di tutti gli strumenti installati ![]()
Registrazione automatica del terminale 
Opzioni personalizzate del terminale forniscono più contesto 
Versione chiara del terminale
Pipenv mantiene i progetti Python indipendenti 
Esempio di SilentTrinity in esecuzione nell'ambiente pipenv 