Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
atomic-operator — حزمة بايثون تُستخدم لتنفيذ اختبارات Atomic Red Team (Atomics) عبر بيئات أنظمة تشغيل متعددة. | Kitploit
أدوات/GitHubGitHub/swimlane/atomic-operator
أدوات دفاعيةالبرمجة النصية والأتمتةاختبار الاختراقأمن السحابةالتعلم والتعليمالفريق الأحمرArchived
GitHubswimlane/atomic-operator

atomic-operator

حزمة بايثون تُستخدم لتنفيذ اختبارات Atomic Red Team (Atomics) عبر بيئات أنظمة تشغيل متعددة.

عرض المستودع
15631منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

PyPI Status Python Version [License][license]

Read the documentation at https://atomic-operator.com/ Code Quality & Tests

Black

atomic-operator

تُستخدم حزمة Python هذه لتنفيذ اختبارات فريق الأحمر الذري (Atomics) عبر بيئات أنظمة تشغيل متعددة.

(ما الجديد؟)

لماذا؟

يتيح atomic-operator لمحترفي الأمن اختبار قدراتهم في الكشف والدفاع ضد التقنيات المحددة داخل atomic-red-team. باستخدام إطار اختبار مثل atomic-operator، يمكنك تحديد قدراتك الدفاعية وكذلك الفجوات في التغطية الدفاعية.

بالإضافة إلى ذلك، يمكن استخدام atomic-operator في العديد من المواقف الأخرى مثل:

  • توليد التنبيهات لاختبار المنتجات
  • اختبار EDR وأدوات الأمن الأخرى
  • تحديد طرق التهرب الدفاعي من منظور الخصم
  • والمزيد.

الميزات

  • دعم التنفيذ المحلي والبعيد لاختبارات فريق الأحمر الذري على أنظمة Windows وmacOS وLinux
  • دعم تشغيل الاختبارات الذرية ضد iaas:aws
  • يمكنه طلب وسائط الإدخال ولكن ليس إلزاميًا
  • المساعدة في تنزيل مستودع فريق الأحمر الذري
  • يمكن أتمتته بشكل أكبر بناءً على ملف تكوين
  • واجهة سطر أوامر وحزمة Python قابلة للاستيراد
  • اختيار اختبارات محددة عند تحديد تقنية واحدة أو أكثر
  • البحث عبر جميع الذريات للحصول على الاختبار المثالي
  • تمرير input_arguments كمدخلات للاختبارات عبر سطر الأوامر
  • والمزيد

البدء

atomic-operator هي حزمة Python فقط مستضافة على PyPi وتعمل مع Python 3.6 والإصدارات الأحدث.

إذا كنت تبحث عن إصدار PowerShell، فراجع Invoke-AtomicRedTeam.

root@kitploit:~
pip install atomic-operator

الخطوات التالية ستوجهك خلال إعداد وتشغيل atomic-operator.

  • احصل على Atomics تثبيت / استنساخ مستودع فريق الأحمر الذري
  • atomic-operator فهم الخيارات المتاحة في atomic-operator
  • تشغيل الاختبارات عبر سطر الأوامر أو تشغيل الاختبارات داخل سكريبت
  • تشغيل الاختبارات عبر ملف تكوين

التثبيت

يمكنك تثبيت atomic-operator على OS X أو Linux أو Windows. يمكنك أيضًا تثبيته مباشرة من المصدر. للتثبيت، انظر الأوامر أسفل عنوان نظام التشغيل المناسب أدناه.

المتطلبات الأساسية

المكتبات التالية مطلوبة ويتم تثبيتها بواسطة atomic-operator:

root@kitploit:~
pyyaml==5.4.1
fire==0.4.0
requests==2.26.0
attrs==21.2.0
pick==1.2.0

macOS و Linux و Windows:

root@kitploit:~
pip install atomic-operator

macOS باستخدام معالج M1

root@kitploit:~
git clone https://github.com/swimlane/atomic-operator.git
cd atomic-operator

# حل خطأ ModuleNotFoundError: No module named 'setuptools_rust'
brew install rust
pip3 install --upgrade pip
pip3 install setuptools_rust

# العودة إلى برنامجنا المعتاد . . .
pip install -r requirements.txt
python setup.py install

التثبيت من المصدر

root@kitploit:~
git clone https://github.com/swimlane/atomic-operator.git
cd atomic-operator
pip install -r requirements.txt
python setup.py install

مثال على الاستخدام (سطر الأوامر)

يمكنك تشغيل atomic-operator من سطر الأوامر أو داخل نصوص Python الخاصة بك. لاستخدام atomic-operator في سطر الأوامر، ما عليك سوى إدخال ما يلي في الطرفية:

root@kitploit:~
atomic-operator --help
atomic-operator run -- --help

يرجى ملاحظة أنه لرؤية تفاصيل حول أمر التشغيل، قم بتشغيل atomic-operator run -- --help وليس atomic-operator run --help

استرداد الاختبارات الذرية

لاستخدام atomic-operator يجب أن يكون لديك اختبار واحد أو أكثر من atomic-red-team (Atomics) على نظامك المحلي. يوفر لك atomic-operator القدرة على تنزيل مستودع فريق الأحمر الذري. يمكنك القيام بذلك عن طريق تشغيل ما يلي في سطر الأوامر:

root@kitploit:~
atomic-operator get_atomics 
# يمكنك تحديد دليل الوجهة باستخدام العلامة --destination
atomic-operator get_atomics --destination "/tmp/some_directory"

تشغيل الاختبارات محليًا

لتشغيل اختبار، يجب عليك توفير بعض الخصائص الإضافية (والخيارات إذا رغبت في ذلك). الطريقة الرئيسية لتشغيل الاختبارات تسمى run.

root@kitploit:~
# هذا سيشغل جميع الاختبارات المتوافقة مع نظام التشغيل المحلي لديك
atomic-operator run --atomics-path "/tmp/some_directory/redcanaryco-atomic-red-team-3700624"

يمكنك تحديد اختبارات فردية عند توفير تقنية واحدة أو أكثر. على سبيل المثال، تشغيل ما يلي في سطر الأوامر:

root@kitploit:~
atomic-operator run --techniques T1564.001 --select_tests

سيطالب المستخدم بقائمة اختيار للاختبارات المرتبطة بتلك التقنية. يمكن للمستخدم اختيار اختبار واحد أو أكثر باستخدام مفتاح المسافة لتمييز الاختبار المطلوب:

root@kitploit:~
 تحديد الاختبار (الاختبارات) للتقنية T1564.001 (إخفاء القطع الأثرية: الملفات والأدلة المخفية)

 * إنشاء ملف مخفي في دليل مخفي (61a782e5-9a19-40b5-8ba4-69a4b9f3d7be)
   Mac Hidden file (cddb9098-3b47-4e01-9d3b-6f5f323288a9)
   Create Windows System File with Attrib (f70974c8-c094-4574-b542-2c545af95a32)
   Create Windows Hidden File with Attrib (dadb792e-4358-4d8d-9207-b771faa0daa5)
   Hidden files (3b7015f2-3144-4205-b799-b05580621379)
   Hide a Directory (b115ecaf-3b24-4ed2-aefe-2fcb9db913d3)
   Show all hidden files (9a1ec7da-b892-449f-ad68-67066d04380c)

ما يلي سيتيح لك توفير وسائط إدخال مخصصة للاختبارات. يمكنك القيام بذلك عن طريق توفير قاموس من المفاتيح والقيم كقاموس لمعامل input_arguments في طريقة التشغيل.

root@kitploit:~
atomic-operator run --techniques T1564.001 --input_arguments '{"project-id": "some_value", "another_key": "another value"}'
# يرجى تضمين علامات الاقتباس المفردة حول قيمة input_arguments.

تشغيل الاختبارات عن بُعد

لتشغيل اختبار عن بُعد، يجب عليك توفير بعض الخصائص الإضافية (والخيارات إذا رغبت في ذلك). الطريقة الرئيسية لتشغيل الاختبارات تسمى run.

root@kitploit:~
# هذا سيشغل جميع الاختبارات المتوافقة مع نظام التشغيل المحلي لديك
atomic-operator run --atomics-path "/tmp/some_directory/redcanaryco-atomic-red-team-3700624" --hosts "10.32.1.0" --username "my_username" --password "my_password"

عند تشغيل الأوامر عن بُعد ضد مضيفات Windows قد تحتاج إلى تكوين PSRemoting. راجع التفاصيل هنا: Windows Remoting

معاملات إضافية

يمكنك رؤية المعاملات الإضافية عن طريق تشغيل الأمر التالي:

root@kitploit:~
atomic-operator run -- --help

يجب أن ترى مخرجات مشابهة لما يلي:

root@kitploit:~
NAME
    atomic-operator run - الطريقة الرئيسية التي نشغل بها اختبارات فريق الأحمر الذري.

SYNOPSIS
    atomic-operator run <flags>

DESCRIPTION
    الطريقة الرئيسية التي نشغل بها اختبارات فريق الأحمر الذري.

FLAGS
    --techniques=TECHNIQUES
        Type: list
        Default: ['all']
        تقنية واحدة أو أكثر محددة بواسطة معرف attack_technique. القيمة الافتراضية 'all'.
    --test_guids=TEST_GUIDS
        Type: list
        Default: []
        معرف GUID واحد أو أكثر لاختبار ذري. القيمة الافتراضية None.
    --select_tests=SELECT_TESTS
        Type: bool
        Default: False
        تحديد اختبار واحد أو أكثر من التقنيات المقدمة. القيمة الافتراضية False.
    --atomics_path=ATOMICS_PATH
        Default: '/U...
        مسار الاختبارات الذرية. القيمة الافتراضية os.getcwd().
    --input_arguments={}
        Default: {}
        قاموس من وسائط الإدخال لتمريرها إلى الاختبار.
    --check_prereqs=CHECK_PREREQS
        Default: False
        ما إذا كان سيتم التحقق من تبعيات المتطلبات الأساسية (prereq_comand). القيمة الافتراضية False.
    --get_prereqs=GET_PREREQS
        Default: False
        ما إذا كنت ترغب في استرداد المتطلبات الأساسية. القيمة الافتراضية False.
    --cleanup=CLEANUP
        Default: False
        ما إذا كنت ترغب في تشغيل أوامر التنظيف. القيمة الافتراضية False.
    --copy_source_files=COPY_SOURCE_FILES
        Default: True
        ما إذا كنت ترغب في نسخ أي ملفات مصدر ذات صلة (src, bin, إلخ) إلى مضيف بعيد. القيمة الافتراضية True.
    --command_timeout=COMMAND_TIMEOUT
        Default: 20
        مدة المهلة الزمنية لكل أمر. القيمة الافتراضية 20.
    --debug=DEBUG
        Default: False
        ما إذا كنت ترغب في إخراج تفاصيل حول الاختبارات التي يتم تشغيلها. القيمة الافتراضية False.
    --prompt_for_input_args=PROMPT_FOR_INPUT_ARGS
        Default: False
        ما إذا كنت ترغب في المطالبة بوسائط الإدخال لكل اختبار. القيمة الافتراضية False.
    --return_atomics=RETURN_ATOMICS
        Default: False
        ما إذا كنت ترغب في إرجاع الذريات بدلاً من تشغيلها. القيمة الافتراضية False.
    --config_file=CONFIG_FILE
        Type: Optional[]
        Default: None
        مسار إلى ملف تكوين يُستخدم لأتمتة atomic-operator في البيئات. القيمة الافتراضية None.
    --config_file_only=CONFIG_FILE_ONLY
        Default: False
        ما إذا كنت ترغب في تشغيل الاختبارات بناءً على ملف التكوين المقدم فقط. القيمة الافتراضية False.
    --hosts=HOSTS
        Default: []
        قائمة بمضيف بعيد واحد أو أكثر لتشغيل اختبار عليه. القيمة الافتراضية [].
    --username=USERNAME
        Type: Optional[]
        Default: None
        اسم المستخدم لمصادقة الاتصالات البعيدة. القيمة الافتراضية None.
    --password=PASSWORD
        Type: Optional[]
        Default: None
        كلمة المرور لمصادقة الاتصالات البعيدة. القيمة الافتراضية None.
    --ssh_key_path=SSH_KEY_PATH
        Type: Optional[]
        Default: None
        مسار مفتاح SSH لمصادقة الاتصالات البعيدة. القيمة الافتراضية None.
    --private_key_string=PRIVATE_KEY_STRING
        Type: Optional[]
        Default: None
        سلسلة مفتاح SSH خاص تُستخدم لمصادقة الاتصالات البعيدة. القيمة الافتراضية None.
    --verify_ssl=VERIFY_SSL
        Default: False
        ما إذا كان سيتم التحقق من SSL عند الاتصال عبر RDP (Windows). القيمة الافتراضية False.
    --ssh_port=SSH_PORT
        Default: 22
        منفذ SSH لمصادقة الاتصالات البعيدة. القيمة الافتراضية 22.
    --ssh_timeout=SSH_TIMEOUT
        Default: 5
        مهلة SSH لمصادقة الاتصالات البعيدة. القيمة الافتراضية 5.
    يتم قبول العلامات الإضافية.
        إذا تم توفيرها، سيتم استبدال المفاتيح المطابقة للمدخلات للاختبار. القيمة الافتراضية None.

تشغيل atomic-operator باستخدام ملف تكوين

بالإضافة إلى القدرة على تمرير المعاملات مع atomic-operator، يمكنك أيضًا تمرير مسار إلى config_file يحتوي على جميع الاختبارات الذرية ومدخلاتها المحتملة. يمكنك رؤية مثال على ملف التكوين هذا هنا:

root@kitploit:~
atomic_tests:
  - guid: f7e6ec05-c19e-4a80-a7e7-241027992fdb
    input_arguments:
      output_file:
        value: custom_output.txt
      input_file:
        value: custom_input.txt
  - guid: 3ff64f0b-3af2-3866-339d-38d9791407c3
    input_arguments:
        second_arg:
          value: SWAPPPED argument
  - guid: 32f90516-4bc9-43bd-b18d-2cbe0b7ca9b2

مثال على الاستخدام (النصوص البرمجية)

لاستخدام atomic-operator يجب عليك إنشاء كائن AtomicOperator.

root@kitploit:~
from atomic_operator import AtomicOperator

operator = AtomicOperator()

# هذا سيقوم بتنزيل نسخة محلية من مستودع فريق الأحمر الذري

print(operator.get_atomics('/tmp/some_directory'))

# هذا سيشغل الاختبارات على نظامك المحلي
operator.run(
    technique: str='All', 
    atomics_path=os.getcwd(), 
    check_dependencies=False, 
    get_prereqs=False, 
    cleanup=False, 
    command_timeout=20, 
    debug=False,
    prompt_for_input_args=False,
    **kwargs
)

الحصول على المساعدة

يرجى إنشاء issue إذا كانت لديك أسئلة أو واجهت أي مشكلات.

تم البناء باستخدام

  • carcass - قالب تغليف Python

المساهمة

يرجى قراءة CONTRIBUTING.md للحصول على تفاصيل حول مدونة قواعد السلوك الخاصة بنا، وعملية تقديم طلبات السحب إلينا.

التحكم في الإصدارات

نستخدم SemVer للتحكم في الإصدارات.

المؤلفون

  • Josh Rickard - العمل الأولي - MSAdministrator

راجع أيضًا قائمة المساهمين الذين شاركوا في هذا المشروع.

الترخيص

هذا المشروع مرخص بموجب ترخيص MIT - راجع ملف LICENSE للحصول على التفاصيل

تحية شكر

  • شكرًا لـ keithmccammon للمساعدة في تحديد المشكلات المتعلقة بمعالج macOS M1 وتقديم إصلاح
تنزيل الأداة
اسم المعاملالنوعالقيمة الافتراضيةالوصف
techniqueslistallتقنية واحدة أو أكثر محددة بواسطة معرف attack_technique.
test_guidslistNoneمعرف GUID واحد أو أكثر لاختبار ذري.
select_testsboolFalseتحديد اختبار ذري واحد أو أكثر لتشغيله عند تحديد التقنيات.
atomics_pathstros.getcwd()مسار الاختبارات الذرية.
input_argumentsdict{}قاموس من وسائط الإدخال لتمريرها إلى الاختبار.
check_prereqsboolFalseما إذا كان سيتم التحقق من تبعيات المتطلبات الأساسية (prereq_command).
get_prereqsboolFalseما إذا كنت ترغب في استرداد المتطلبات الأساسية.
cleanupboolFalseما إذا كنت ترغب في تشغيل أوامر التنظيف.
copy_source_filesboolTrueما إذا كنت ترغب في نسخ أي ملفات مصدر ذات صلة (src, bin, إلخ) إلى مضيف بعيد.
command_timeoutint20مدة المهلة الزمنية لكل أمر قبل انتهاء الوقت.
debugboolFalseما إذا كنت ترغب في إخراج تفاصيل حول الاختبارات التي يتم تشغيلها.
prompt_for_input_argsboolFalseما إذا كنت ترغب في المطالبة بوسائط الإدخال لكل اختبار.
return_atomicsboolFalseما إذا كنت ترغب في إرجاع الذريات بدلاً من تشغيلها.
config_filestrNoneمسار إلى ملف تكوين يُستخدم لأتمتة atomic-operator في البيئات.
config_file_onlyboolFalseما إذا كنت ترغب في تشغيل الاختبارات بناءً على ملف التكوين المقدم فقط.
hostslistNoneقائمة بمضيف بعيد واحد أو أكثر لتشغيل اختبار عليه.
usernamestrNoneاسم المستخدم لمصادقة الاتصالات البعيدة.
passwordstrNoneكلمة المرور لمصادقة الاتصالات البعيدة.
ssh_key_pathstrNoneمسار مفتاح SSH لمصادقة الاتصالات البعيدة.
private_key_stringstrNoneسلسلة مفتاح SSH خاص تُستخدم لمصادقة الاتصالات البعيدة.
verify_sslboolFalseما إذا كان سيتم التحقق من SSL عند الاتصال عبر RDP (Windows).
ssh_portint22منفذ SSH لمصادقة الاتصالات البعيدة.
ssh_timeoutint5مهلة SSH لمصادقة الاتصالات البعيدة.
**kwargsdictNoneإذا تم تمرير علامات إضافية إلى أمر التشغيل، فسنحاول مطابقتها مع المدخلات المحددة داخل الاختبارات الذرية واستبدال قيمتها بالقيمة المقدمة.