
ماسح ضعف معياري مع إمكانيات توليد تقارير تلقائية.
Artemis هو ماسح ضعف معياري. إنها الأداة التي تشغل أنشطة المسح لدى CERT PL من خلال التحقق من جوانب مختلفة من أمان المواقع وبناء رسائل سهلة القراءة جاهزة للإرسال إلى المؤسسات الممسوحة.
إذا كنت ترغب في استخدام وحدات إضافية لم يتم تضمينها هنا بسبب تراخيص غير متوافقة مع BSD، فتصفح مستودع Artemis-modules-extra.
إذا كنت ترغب في تعديل/تطوير Artemis، اقرأ التطوير أولاً.
Artemis هو برنامج تجريبي، قيد التطوير النشط - استخدمه على مسؤوليتك الخاصة.
للدردشة حول Artemis، انضم إلى خادم Discord!
تم تقديم Artemis في BlackHat USA 2024 في لاس فيغاس وBlackHat Europe 2025 في لندن. لمزيد من المعلومات حول Artemis في BlackHat انقر هنا وهنا.
كما تم تقديم المشروع في الاجتماع 71 لـ TF-CSIRT في كوبنهاغن، والاجتماع 69 لـ TF-CSIRT في بوخارست ومؤتمر CONFidence ، من بين آخرين.

تم دعم تطوير Artemis من قبل Google Summer of Code 2024 و2025.
للحصول على قائمة محدثة بالميزات، يرجى الرجوع إلى الوثائق. أهمها هي إمكانية تصدير التقارير بسهولة مثل:
العناوين التالية تحتوي على بيانات نظام التحكم في الإصدارات:
جعل مستودع الكود عامًا قد يسمح للمهاجم بمعرفة التفاصيل الداخلية للنظام، وإذا كان يحتوي على كلمات مرور أو مفاتيح API - فقد يكتسب أيضًا وصولًا غير مصرح به. لا ينبغي أن تكون هذه البيانات متاحة للعموم.
العناوين التالية تحتوي على إصدارات قديمة من Joomla:
- https://subdomain2.example.com:443 - Joomla 2.5.4
إذا لم يعد الموقع مستخدمًا، نوصي بإيقاف تشغيله للقضاء على خطر استغلال الثغرات المعروفة في الإصدارات الأقدم من Joomla. وإلا، نوصي بتحديثات منتظمة لنواة Joomla والإضافات.
أتاحت لنا إمكانية إعداد مثل هذه التقارير تلقائيًا إخطار الكيانات في دائرتنا الانتخابية حول مئات الآلاف من الثغرات.

لتشغيل نسخة معدلة محليًا من Artemis، شغّل:
./scripts/start --mode=development
يقوم هذا البرنامج النصي بنسخ ملف البيئة النموذجي (env.example) تلقائيًا إلى .env إذا لم يكن موجودًا. يمكنك بعد ذلك تهيئة الإعدادات في ملف .env وفقًا لاحتياجاتك. يتضمن ذلك تخصيص وكيل المستخدم عن طريق تعيين متغير CUSTOM_USER_AGENT، بالإضافة إلى معايير أخرى ذات صلة. للحصول على قائمة كاملة بمتغيرات التهيئة وأوصافها، يرجى الرجوع إلى قسم التهيئة في الوثائق.
ثم يتم بناء صورة Artemis محليًا (من الكود الذي تطوره) وليس تنزيلها من Docker Hub. بالنسبة لـ web، ستتمكن أيضًا من رؤية نتائج تعديلات الكود على الصفحة دون إعادة تحميل الحاوية بأكملها.
لتشغيل الاختبارات، استخدم:
./scripts/test
[!WARNING] تجنب استخدام
python -m unittestمباشرة كـcommand:فيdocker-compose.test.yaml. عندما يعمل Python كـ PID 1، تعاني العمليات الفرعية، خاصة ملفات Go الثنائية مثل Nuclei، من بطء أو تدهور في الإدخال/الإخراج لأن PID 1 يتعامل مع الإشارات و stdout/stderr بشكل مختلف. استخدم unittest-parallel بدلاً من ذلك، لأن عمليات العامل الخاصة به تتجنب مشكلة PID 1.
يستخدم Artemis pre-commit لتشغيل المدققات وتنسيق الكود. يتم تنفيذ pre-commit على CI للتحقق من أن الكود منسق بشكل صحيح.
لتشغيله محليًا، استخدم:
pre-commit run --all-files
لإعداد pre-commit بحيث يتم تشغيله قبل كل التزام، استخدم:
pre-commit install
نستخدم pip-tools لإدارة التبعيات. لإضافة أو تحديث تبعية:
requirements.in (أو docs/requirements.in لتبعيات التوثيق)،./scripts/compile-requirements لإنشاء ملف(ملفات) requirements.txt المجمدة،.in و .txt.لبناء الوثائق، استخدم:
cd docs
python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
make html
يرجى الرجوع إلى الوثائق.
نرحب بالمساهمات! سنقدر كل من الأفكار لوحدات Artemis الجديدة (المضافة كـ قضايا GitHub) وكذلك طلبات السحب مع وحدات جديدة أو تحسينات في الكود.
ومع أنه قد يبدو واضحًا، نذكرك بلطف أنه بالمساهمة في Artemis، فإنك توافق على أن ترخيص BSD 3-Clause ينطبق تلقائيًا على مدخلاتك، دون الحاجة إلى أي تصريحات إضافية.
قبل فتح طلب السحب، يرجى التأكد من تثبيت pre-commit:
pre-commit installوتشغيله على تغييراتك.
شكر جزيل للأشخاص التاليين الذين ساهموا في تطوير Artemis، وخاصة نادي KN Cyber العلمي في جامعة وارسو للتكنولوجيا الذي بدأ المشروع!
![]() cyberamt 💻 🤔 |
![]() martclau 💻 🤔 |
![]() szymsid 💻 👀 |
![]() bulek 💻 👀 | ![]() Michel Le Bihan 💻 | ![]() Grzegorz Eliszewski 💻 🤔 📦 | ![]() kshitij kapoor 💻 🤔 | ![]() Delfin 💻 | ![]() Bornunique911 💻 | ![]() Ridham Bhagat 💻 |
![]() Mateusz Borkowski 💻 🤔 | ![]() jxdv 💻 | ![]() kvothe 💻 🤔 | ![]() lukigruszka 💻 | ![]() Abhinav Karn 💻 | ![]() Juraj Virgovič 💻 | ![]() Emmanuel Ferdman 💻 |
![]() ap74062 💻 |