
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/内のロールを追加または変更 |
1つ以上のターゲットをプロビジョニングします。
注: このプロジェクトはDigitaloceanにデプロイされたUbuntu 18.04でテストされています
hosts.sample を hosts にコピーhosts を編集し、ターゲットシステムのIPアドレスを追加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
注: AnsibleにMitogenを使用すると、大幅なパフォーマンス向上が期待できます。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でPythonプロジェクトを独立に保つ 
pipenv環境で実行されているSilentTrinityの例 