
Ansible-आधारित हमला मंच जो एक मानकीकृत Linux पैठ परीक्षण वातावरण को तैनात और प्रबंधित करने के लिए है, जिसमें स्वचालित उपकरण स्थापना, संस्करण ट्रैकिंग, और SSH/VNC पहुँच शामिल है।
ThreatBox एक मानक और नियंत्रित Linux आधारित आक्रमण प्लेटफॉर्म है। मैं वर्षों से इसके एक संस्करण का उपयोग कर रहा हूँ। इसकी शुरुआत स्क्रिप्ट के संग्रह के रूप में हुई, यह एक रोलिंग वर्चुअल मशीन के रूप में रहा, Linux ISO बनाने के लिए कोड के रूप में मौजूद रहा, और अब इसे Ansible प्लेबुक के एक सेट में परिवर्तित कर दिया गया है। Ansible क्यों? क्यों नहीं? यह मानक आक्रमण प्लेटफॉर्म के कॉन्फ़िगरेशन का अगला स्वाभाविक विकास प्रतीत हुआ।
यह प्रोजेक्ट एक Linux लक्ष्य (Ubuntu 18.04 पर परीक्षित) पर पोस्ट-डिप्लॉयमेंट कॉन्फ़िगरेशन करने के लिए Ansible प्लेबुक और भूमिकाओं का उपयोग करता है।
यह प्रोजेक्ट रेड टीमिंग या पेनिट्रेशन टेस्टिंग के लिए एक मानक आक्रमण प्लेटफॉर्म बनाने, प्रबंधित करने और उपयोग करने में आरंभिक प्रक्रिया के रूप में उपयोग करने के लिए डिज़ाइन किया गया है।
मानक आक्रमण प्लेटफॉर्म की अवधारणा का विवरण पुस्तक Red Team Development and Operations - A practical guide, जो Joe Vest और James Tubberville द्वारा लिखित है, में पाया जा सकता है। Red Team Guide

threatbox.ymlansible_portpipenv shell का उपयोग करें। pipenv उपयोग मार्गदर्शन के लिए https://realpython.com/pipenv-guide/ देखें।निम्नलिखित सूची इस प्रोजेक्ट के प्रमुख घटकों को उजागर करती है।
| फ़ाइल/निर्देशिका | विवरण | उपयोग |
|---|---|---|
| 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
नोट: महत्वपूर्ण प्रदर्शन बढ़ावा पाने के लिए 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
इस प्रोजेक्ट में ansbile roles का उपयोग किया गया है। ये भूमिकाएँ ansible शैली का बिल्कुल पालन नहीं कर सकती हैं। इन्हें इस प्रोजेक्ट के हिस्से के रूप में उपयोग करने के लिए डिज़ाइन किया गया है और प्रोजेक्ट को नियंत्रित करने के लिए एकल 'वेरिएबल' फ़ाइल का उपयोग किया गया है। भूमिकाओं का उपयोग मामूली बदलावों के साथ अन्य प्रोजेक्ट में आसानी से किया जा सकता है।
ThreatBox कस्टम कमांड्स 
उपकरण श्रेणियाँ 
सभी स्थापित उपकरणों की ट्रैकिंग ![]()
स्वचालित टर्मिनल लॉगिंग 
कस्टम टर्मिनल विकल्प अधिक संदर्भ प्रदान करते हैं 
टर्मिनल का हल्का संस्करण
Pipenv Python प्रोजेक्ट को स्वतंत्र रखता है 
Pipenv वातावरण में SilentTrinity चलने का उदाहरण 