
منصة هجومية تعتمد على Ansible لنشر وإدارة بيئة اختبار اختراق موحدة على لينكس، مع تثبيت أدوات تلقائي، وتتبع الإصدارات، ووصول عبر SSH/VNC.
ثريت بوكس هي منصة هجوم قياسية ومتحكم بها تعمل على لينكس. لقد استخدمت نسخة منها لسنوات. بدأت كمجموعة من النصوص البرمجية، وعاشت كآلة افتراضية متجددة، ثم تحولت إلى كود لبناء ISO لينكس، والآن تم تحويلها إلى مجموعة من أدوار أنسيبل. لماذا أنسيبل؟ لم لا؟ بدا هذا كالتطور الطبيعي التالي لتكوين منصات الهجوم القياسية.
يستخدم هذا المشروع أدوار أنسيبل وملفات التشغيل (playbooks) لإجراء التكوين بعد النشر على هدف لينكس (تم اختباره على Ubuntu 18.04).
صُمم المشروع لاستخدامه كعملية بدائية في إنشاء وإدارة واستخدام منصة هجوم قياسية للفريق الأحمر أو اختبار الاختراق.
يمكن العثور على تفاصيل حول مفهوم منصة الهجوم القياسية في كتاب "تطوير وعمليات الفريق الأحمر - دليل عملي"، من تأليف Joe Vest و James Tubberville. دليل الفريق الأحمر

ansible_port في threatbox.ymlpipenv shell في دليل المشروع للوصول. راجع https://realpython.com/pipenv-guide/ للحصول على إرشادات استخدام pipenvتسلط القائمة التالية الضوء على المكونات الرئيسية لهذا المشروع.
| الملف/الدليل | الوصف | الاستخدام |
|---|---|---|
| host | ملف hosts لأنسيبل | قم بتحديثه بعناوين IP لأنظمة أنسيبل الهدف |
| group_vars/threatbox.yml | متغيرات مشتركة | متغير مستخدم للمشروع. قم بتحديثه حسب الحاجة. |
| threatbox_playbox.yml | ملف التشغيل الرئيسي لأنسيبل | قم بتحديثه حسب الحاجة لإضافة أدوار أو ميزات إضافية |
| roles/common | تكوين منصة نظام التشغيل المشترك | إعداد إعدادات نظام التشغيل المشتركة (مثل تعيين الإصدار في الخلفية أو البناء) |
| roles/. | أدوار أخرى محددة لتكوين أو نشر الأدوات | أضف أو عدل الأدوار في roles/ |
قم بتجهيز هدف أو أكثر.
ملاحظة: تم اختبار هذا المشروع على Ubuntu 18.04 المنشور في Digitalocean
hosts.sample إلى hostshosts بعنوان (عناوين) IP لأنظمتك الهدفgroup_vars\threatbox.yml.sample إلى group_vars\threatbox.ymlgroup_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 مع أنسيبل للحصول على تحسين كبير في الأداء. 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
يستخدم هذا المشروع أدوار أنسيبل. قد لا تتبع هذه الأدوار نمط أنسيبل تمامًا. لقد تم تصميمها لاستخدامها كجزء من هذا المشروع وتستخدم ملف 'متغير' واحد للتحكم في المشروع. يمكن استخدام الأدوار بسهولة في مشاريع أخرى مع تعديلات طفيفة.
أوامر ثريت بوكس المخصصة 
فئات الأدوات 
تتبع جميع الأدوات المثبتة ![]()
تسجيل طرفي تلقائي 
خيارات طرفية مخصصة توفر سياقًا أكبر 
نسخة خفيفة من الطرفية
يحافظ Pipenv على استقلالية مشاريع بايثون 
مثال على SilentTrinity يعمل في بيئة pipenv 