
إطار عمل معياري لاكتشاف الأصول مكتوب بلغة بايثون لأتمتة العمل اليدوي المتكرر
Cygor هو إطار عمل نمطي لاكتشاف الأصول يجمع بين المسح والتحليل وتعداد الخدمات في سير عمل واحد. فهو يستبدل مجموعة الأدوات المنفصلة بعملية آلية تتولى الاكتشاف والإثراء والتعداد الموجّه بسلاسة — مما يقلل العبء اليدوي ويتيح لك التركيز على النتائج بدلاً من إدارة الأدوات.
توفر واجهة الويب الخاصة بـ Cygor مركز قيادة مرئيًا موحّدًا ينظّم فوضى بيانات المسح الأولية. فبدلاً من البحث في ملفات XML أو JSON أو النصوص المسطحة التي لا نهاية لها، يتم تحليل النتائج وإثراؤها وعرضها تلقائيًا في مساحة واحدة مصممة للفرز السريع واتخاذ القرار.
بفضل FastAPI و Bootstrap 5، تتيح لوحة المعلومات ما يلي بسهولة:
واجهة الويب ليست للعرض فقط — بل تهدف إلى الكفاءة والوضوح. فمن خلال جمع كل البيانات في مساحة عمل تفاعلية واحدة، تقلّل الوقت المستغرق في تحليل الملفات أو مواءمة المخرجات، وتتيح للمختبرين التركيز على ما يهم: فهم البيئة والتفاعل معها.
الكثير من الأدوات والتقنيات والأساليب التي أصنعها مستوحاة من عالم Spawn. إذا لم تكن قد قرأت أي قصة مصورة من Spawn من قبل، فلا بأس؛ سأشارك بعض المعلومات حول سبب اختياري لهذه الشخصية لتصبح اسم هذه الأداة.
اسم Cygor مستوحى من Cy-Gor، وهو بطل مضاد مأساوي في عالم Spawn. كان مايكل كونيتشني — عميل حكومي وصديق مقرب من آل سيمونز — قد حاول كشف الفساد بعد مقتل سيمونز. ومع ذلك، تم القبض عليه وإجباره على المشاركة في مشروع Sim، تجارب الدكتور فريدريك ويلهايم على القرود، حيث تم دمج جسد غوريلا مع عقل كونيتشني عبر التحكم الآلي الاختراقي. وكانت النتيجة الوحش المعروف باسم Cy-Gor — اختصارًا لـ Cybernetic Gorilla.
بعد هروبه من الأسر، شنّ Cy-Gor هجمات عنيفة، حتى أنه اخترق مراكز بيانات حكومية في نوبات من الارتباك والغضب. ورغم أنه طورد وأُعيد أسره عدة مرات، إلا أنه في النهاية قاوم الأنظمة التي سعت للسيطرة عليه — فأزال الغرسات التعقبية وحرر نفسه ليشق طريقه الخاص، ممزقًا بين الآلة والوحش والإنسان.
webenum (يتم تشغيل الأدوات المثبتة فقط).هناك عدة طرق مدعومة لتثبيت Cygor: pip و pipx و uv و docker.
بعض التبعيات (مثل gssapi الخاصة بـ Kerberos/WinRM) تُنشئ امتدادات C، لذا قم أولاً بتثبيت مجموعة أدوات البناء وملفات رؤوس Kerberos:
# Debian/Ubuntu/Kali:
sudo apt install -y build-essential python3-dev libkrb5-dev
# Stable version:
pipx install cygor
# Install from source:
git clone https://github.com/tjnull/cygor
cd cygor
pipx install .
إعداد Docker الخاص بـ Cygor يشمل التطبيق وخدمة قاعدة بيانات PostgreSQL معًا. يتحول النظام تلقائيًا إلى SQLite إذا كانت PostgreSQL غير متوفرة.
الإنتاج (موصى به):
# Option 1: Use the wrapper script (automatically handles port conflicts)
./docker-compose-up.sh up --build
# Option 2: Direct docker compose (uses default ports)
docker compose up --build
التطوير (مع تثبيت الكود المصدري):
# Option 1: Use the wrapper script (automatically handles port conflicts)
./docker-compose-up.sh dev up --build
# Option 2: Direct docker compose (uses default ports)
docker compose -f docker-compose-dev.yaml up --build
يتضمن إعداد Docker Compose ما يلي:
results/: مخرجات المسح ونتائج credrecon وملفات قاعدة البياناتcygor-config/: وحدة تخزين التكوين المحلي (تُنشأ تلقائيًا)افتراضيًا:
5432 (إذا كان متاحًا)5434 (إذا كان متاحًا)5432 داخليًا (شبكة Docker)إذا كانت المنافذ مستخدمة، يمكنك:
استخدام السكربت المُغلّف (wrapper) (موصى به - يكتشف المنافذ المتاحة تلقائيًا):
./docker-compose-up.sh up --build
تعيين المنفذ يدويًا:
export POSTGRES_HOST_PORT=5435
docker compose up --build
إزالة تعيين المنفذ (إذا لم تكن بحاجة إلى وصول خارجي إلى PostgreSQL):
علّق على قسم ports: في ملف docker-compose.yaml
لبناء صورة Docker يدويًا:
docker build -t cygor .
تشغيل حاوية واحدة (بدون خدمة PostgreSQL):
docker run --rm -v ./results:/opt/cygor/results \
-e CYGOR_RESULTS_DIR=/opt/cygor/results \
cygor web --host 0.0.0.0 --port 8080 --load-dir /opt/cygor/results
CYGOR_DB_URL)متغيرات البيئة الأساسية لـ Docker:
البيانات ومساحة العمل:
CYGOR_RESULTS_DIR: دليل النتائج (الافتراضي: /opt/cygor/results)CYGOR_WORKSPACE: دليل مساحة العمل (الافتراضي: /opt/cygor/results)CYGOR_RESULTS_PATH: مسار المضيف لحجم النتائج (الافتراضي: ./results)CYGOR_CONFIG_PATH: مسار المضيف لحجم تكوين المصادقة (الافتراضي: ./cygor-config)قاعدة البيانات:
CYGOR_DB_URL: سلسلة اتصال قاعدة البيانات (يتم تعيينها تلقائيًا بواسطة docker-compose)CYGOR_DB_USER: مستخدم قاعدة بيانات PostgreSQL (الافتراضي: cygor)CYGOR_DB_PASSWORD: كلمة مرور قاعدة بيانات PostgreSQLPOSTGRES_HOST_PORT: تعيين منفذ مضيف PostgreSQL (لحل تعارض المنافذ)التصحيح والتفصيل:
CYGOR_DEBUG: تفعيل وضع التصحيح (اضبطه على 1 للتفعيل)CYGOR_VERBOSE: مستوى التفصيل (0=عادي، 1=مفصّل، 2=تصحيح)توجد الأدلة المفصلة في cygor/wiki/ — التثبيت، وحدات التعداد المدمجة الإحدى عشرة، تطوير الإضافات، إدارة مساحات العمل، والمزيد. يعرض GitHub الدليل كموقع توثيق قابل للتصفح (ابدأ من cygor/wiki/README.md). كما يتم تقديم الصفحات نفسها عبر واجهة الويب في /docs بمجرد تشغيل cygor web start.