
فرز الثغرات مع تتبّع المصدر. يستخرج مراجع CVE من مجموعات بيانات مبنية محليًا (NVD/KEV/EPSS، ExploitDB، nmap script.db) ويُصدر أوامر تحقّق مصنّفة وفقًا لأثر تنفيذها على الهدف.
أداة فرز الثغرات الأمنية. تأخذ ما وجده الفحص بالفعل، وتحدد أي ثغرات CVE يُحتمل انطباقها، وتخبرك بمدى ثقتها وبالسبب، وتمنحك الأوامر للتحقق بنفسك.
لا تفحص أي شيء، ولا تستغل أي شيء.
git clone https://github.com/xGhst0/reconkg && cd reconkg && pip install -e . --break-system-packages && python -m reconkg.selfcheck
تلك الخطوة الأخيرة تُبلِّغ عمّا يمكنها رؤيته وما لا يمكنها رؤيته: ما إذا كان قد تم العثور على script.db الخاص بـ nmap، وأي المجموعات مُهيَّأة، وكم عدد البصمات الواقعية التي تُنتج دليلاً فعلياً. شغِّلها أولاً. في الوضع الافتراضي تكون الإجابة "تسع ثغرات CVE مكتوبة يدوياً"، ويقول selfcheck ذلك بدلاً من أن يدعك تفترض خلاف ذلك.
المدخلات التسعة المدمجة هي عيّنة توضيحية. لأي استخدام حقيقي:
export NVD_API_KEY=... # free: https://nvd.nist.gov/developers/request-an-api-key
python -m reconkg.fetch --dest ~/.reconkg/feeds --all
python -m reconkg.builddb --feeds ~/.reconkg/feeds --out ~/.reconkg/vuln.db
export RECONKG_VULN_DB=~/.reconkg/vuln.db
export RECONKG_EXPLOIT_DB=~/.reconkg/exploits.db
export RECONKG_SCRIPT_DB=/usr/share/nmap/scripts/script.db
بدون مفتاح API، يحدّ NVD من الطلبات إلى 5 طلبات كل 30 ثانية، ويستغرق السحب الكامل نحو أربع ساعات بدلاً من خمس وعشرين دقيقة. وهو يحفظ نقاط التقدم، لذا يستأنف السحب المتوقف. أما --since فيسحب ما تغيّر فقط.
إذا تم تعيين متغير corpus وتعذّر فتح الملف، يرفض reconkg البدء. فتقديم تسعة مدخلات بهدوء بينما طلبت 300,000 يعني فحصًا لا يجد شيئًا ويبدو وكأنه نجح.
python -m reconkg.app # serves http://127.0.0.1:8765/ui
python -m reconkg.console # REPL
app يرتبط بواجهة loopback فقط، دون وجود علم لتغيير ذلك. تحتفظ هذه العملية بنتائج الفحص الخاصة بك وتصدر أوامر موجهة إلى المضيفين الذين تختبرهم؛ يُعدّ نفق SSH ثمنًا بسيطًا مقابل جعل ذلك قابلاً للوصول من بقية الشبكة. ينقله --port، ويضبط RECONKG_PORT قيمة افتراضية.
المصادقة. تحتاج كل مسار إلى Authorization: Bearer <token>، من RECONKG_TOKENS بالصيغة name:role:token (الأدوار: viewer، scanner، operator، admin؛ الرموز لا تقل عن 16 حرفًا). إذا لم يكن مضبوطًا، يُنشئ app رمزًا لتلك العملية فقط ويطبعه عند بدء التشغيل — لا يُكتب على القرص، ويختلف عند كل إعادة تشغيل.
لا يستطيع المتصفح إرفاق ترويسة بعملية تنقل عادية، لذا فإن فتح /ui مباشرة سيؤدي إلى 401. استخدم إضافة تحقن الترويسات، أو تعامل مع الـ API:
export RECONKG_TOKENS="me:admin:$(openssl rand -hex 16)"
curl -H "Authorization: Bearer ${RECONKG_TOKENS##*:}" \
http://127.0.0.1:8765/api/corpus
تعرض الواجهة الرسم البياني المعرفي مع مصدر البيانات عند النقر، بحيث يمكنك رؤية لماذا ارتبطت ثغرة CVE بمضيف بدلاً من الوثوق بدرجة ما، وسجل مرتب حسب أولوية الفرز مع احتساب KEV وEPSS.
كل أمر مقترح يحمل فئة NSE تصف ما يفعله تشغيله بالهدف. تلك المفردات هي مفردات nmap، وليست مبتكرة هنا.
| الفئة | ما يفعله reconkg |
|---|---|
safe، discovery، version | يُركَّب، ويُعرض افتراضيًا |
intrusive، vuln، unclassified | يُركَّب، ويُعرض عند تحديد المربع، مع تحذير التفويض |
exploit، dos، fuzzer، brute | يُسمّى، ولا يُركَّب أبدًا |
الصف الأخير هو الحد الفاصل. إذا وُجد استغلال فعّال لخيط ما،
يخبرك reconkg بالوحدة أو القالب وأين تجده. لكنه لا
يجمّع ذلك في استدعاء يحتوي هدفك مسبقًا. تتوقف اقتراحات Metasploit
عند show options — الخطوة التي تقرأ فيها RHOSTS مرة أخرى وتتأكد
من أنه المضيف المصرّح لك به.
هذا فرق ضغطة مفتاح واحدة على جهاز تملكه، وفرق أكبر بكثير في ماهية الأداة.
تُصنَّف السلامة لكل فحص، وليس لكل أداة أبدًا. وهذا ليس تدقيقًا مفرطًا:
فقوالب CVE الحالية في nuclei تحقق الكشف عن طريق الاستغلال — أحدها ينشر
حمولة subprocess.run('cat /etc/passwd') عبر ثغرة RCE في Langflow
ويطابق على root:.*:0:0:. أي شيء يفترض أن "nuclei يكشف، وMetasploit
يستغل" يكون مخطئًا عند أول قالب يصادفه، لذا تُعامَل nuclei على أنها
غير مصنّفة وتقع خلف خيار الاشتراك.
selfcheck معدل
الإصابة الحقيقي بدلًا من معدل مُجمَّل.describe() علامة على مجموعة البيانات بأنها قديمة بعد 30 يومًا ويسمّي أي
مصدر تغذية قديم.pip install -r requirements-dev.txt
python -m pytest tests/ -q # 1219 tests
python -m audit.mutation # mutation testing, 12 targets at 100%
python -m audit.scale_bench # corpus scale benchmark
docs/ يحمل ملاحظات التصميم والأسباب الكامنة وراء القرارات أعلاه. audit/AUDIT.md هو سجل النتائج: 47 نتيجة عبر عشر جولات خصومية، بما في ذلك تحليل لنمط الخلل الواحد الذي يفسّر 13 منها، وتقييم صادق لما حال دون وقوعه وما لم يحل دونه.
MIT — انظر LICENSE.
لا يشحن reconkg أي بيانات ثغرات. تُبنى المجموعات على جهازك من مصادر تجلبها بنفسك، مما يُبقي تراخيصها مسؤوليتك أنت؛ فهرس ExploitDB على وجه الخصوص مرخّص بموجب GPL-2.0-or-later ولا يُعاد توزيعه هنا عمدًا.
كل ما يصدره reconkg هو اقتراح لينفّذه إنسان. تشغيل فحوصات intrusive أو vuln ضد نظام لا تملكه أو لا تملك تفويضًا مكتوبًا لاختباره غير قانوني في معظم الولايات القضائية.