
getsploit v3.0.1
ابحث وحمِّل الأدوات الاستغلالية العامة من قاعدة بيانات Vulners — عبر الإنترنت، أو دون اتصال بالكامل من فهرس SQLite FTS5 المحلي.
Getsploit
ابحث ونزّل الاستغلالات العامة من قاعدة بيانات Vulners — عبر الإنترنت، أو دون اتصال بالكامل من فهرس محلي.
احصل على مفتاح API · بحث Vulners · سجل التغييرات · البنية المعمارية · سياسة الأمان

لماذا Getsploit؟
- 🔎 استعلام واحد، كل المجموعات. Exploit-DB وMetasploit وPacket Storm وZero Day Initiative وإثباتات المفهوم على GitHub والمزيد، كما يفهرسها Vulners.
- 📴 يعمل والشبكة مفصولة. أمر واحد
--updateيبني فهرس SQLite FTS5 محليًا لمجمل نصوص الاستغلال؛ وكل بحث لاحق يكون استعلامًا محليًا. - 🧠 يبحث عمّا كتبته كما هو تمامًا.
wordpress 4.7وCVE-2024-3094وms17-010تُطابَق حرفيًا، بينما يحصل التعبير النصي الكامل المتعمّد على صيغة FTS5 الكاملة. - 📊 تقدّم يمكنك الوثوق به. كل مرحلة من مراحل التحديث تعرض أرقامًا حقيقية، والمرحلتان اللتان لا يمكن معرفة حجمهما تقولان ذلك بدلًا من اختلاق نسبة مئوية.
- 🧾 مناسب للأنابيب (Pipe). JSON وخطوط JSON (JSON Lines) وسجلات ثابتة مفصولة بعلامات جدولة عند إعادة توجيه المخرجات. لا يصل أي لون أو زخرفة إلى صيغة الآلة أبدًا.
- 💾 يحتفظ بالمصدر.
--mirrorيكتب محتوى كل استغلال في ملف مستقل له. - 🔐 حريص على بياناتك. لا يُمرَّر المفتاح أبدًا كوسيط لسطر الأوامر، ويُفتح ملف المفتاح دون تتبّع الروابط الرمزية، ولا يُنفَّذ المحتوى المُنزَّل أبدًا.
- 🧪 مُتحقَّق منه. تغطية 100% للعبارات والفروع على Python 3.11 حتى 3.14، وعلى Linux وmacOS وWindows.
التثبيت
يتطلب Getsploit إصدار Python 3.11 أو أحدث.
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
مفتاح API
أنشئ مفتاحًا في حساب Vulners الخاص بك، ثم اعرضه عبر بيئة التشغيل:
$ export VULNERS_API_KEY="your-key" # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key" # pragma: allowlist secret
يخزّن getsploit --set-key المفتاح عبر موجه تأكيد مخفي، في ملف خاص داخل المجلد الرئيسي لـ Getsploit. بيئة التشغيل لها الأولوية على ذلك الملف وهي الخيار الأفضل للأتمتة. لا يوجد خيار --api-key: المفتاح الذي يُمرَّر عبر سطر الأوامر ينتهي به المطاف في سجل الأوامر وفي قائمة العمليات.
البحث عبر الإنترنت و--update يحتاجان إلى مفتاح. أما --local و--status فلا يحتاجان.
الاستخدام
البحث عبر الإنترنت
$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25
يصل الاستعلام إلى Vulners دون تغيير، لذا تعمل صيغة Lucene الخاصة به كما هي موثّقة:
$ getsploit 'title:wordpress AND description:"code execution"'
عند --count أكثر من 100 تُقسَّم النتائج إلى صفحات تلقائيًا وبشفافية؛ إذ لا يحمل استجابة API واحدة أكثر من 100 مستند أبدًا.
البحث دون اتصال
$ getsploit --update # download the archive and build the FTS5 index
$ getsploit --status # where it is, how big, how many documents
$ getsploit --local wordpress 4.7
تُطابَق كلمات البحث العادية حرفيًا، لذا تعمل المعرّفات وأرقام الإصدارات كما كُتبت تمامًا: wordpress 4.7 وCVE-2024-3094 وms17-010. أي استعلام يستخدم عوامل تصفية للأعمدة أو عوامل منطقية أو علامات اقتباس أو أقواسًا أو * أو ^ يُعامَل كـتعبير SQLite FTS5 ويُبلِّغ عن خطئه الخاص عندما يكون غير سليم:
$ getsploit --local 'title:eternalblue AND NOT description:metasploit'
الأعمدة القابلة للبحث هي id وtitle وpublished وdescription وsource_data. ما زالت الصيغة القديمة sourceData: مقبولة.
حفظ مصادر الاستغلال
$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue
تُحفظ الملفات في مجلد مُشتق من الاستعلام، ملف واحد لكل استغلال، وتُنشأ دون تتبّع الروابط الرمزية ودون استبدال أي شيء موجود مسبقًا.
[!WARNING] ملفات النسخ (Mirrored) هي كود غير موثوق من جهة خارجية. اقرأها قبل تشغيلها.
مخرجات قابلة للقراءة آليًا
$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv # redirected output is tab-separated
يظل --json اسمًا مستعارًا لـ--format json.
التحكم في الطرفية
$ getsploit --color always query | less -R
$ getsploit --color never query
اللون الافتراضي هو auto. تحصل الطرفية الواسعة على جدول، والضيقة على سجلات مكدّسة، والدفق المعاد توجيهه على قيم مفصولة بعلامات جدولة — نفس البيانات في الحالات الثلاث.
شغّل getsploit --help للحصول على قائمة الخيارات الكاملة.
قاعدة البيانات المحلية
| الموقع | ~/.getsploit/getsploit.db، أو $GETSPLOIT_HOME |
| الصيغة | SQLite مع فهرس FTS5 بمحتوى خارجي |
| المُرمِّز | unicode61 remove_diacritics 2 |
| الحجم | حوالي 1.7 جيجابايت للمجموعة الكاملة |
| التحديث | ذري: قاعدة البيانات الجديدة تستبدل القديمة في عملية واحدة |
يُنزِّل التحديث الأرشيف عبر ثمانية اتصالات نطاقية متوازية، ويفك ضغطه ويحوّله بجانب الوجهة، ويتحقق منه، وعندها فقط يُثبِّت التغيير. لا يعتمد استخدام الذاكرة على حجم الأرشيف. البحث الجاري بالفعل على قاعدة البيانات القديمة يُكمِل عمله عليها دون أن يتأثر.
قواعد البيانات التي بنتها Getsploit 2.x تبقى قابلة للبحث؛ و--update التالية ترحّلها من FTS4 إلى FTS5. يجب إعادة كتابة تعبيرات التقارب FTS4 مثل one NEAR/5 two بصيغة NEAR(...) الخاصة بـ FTS5.
التوافق
| Python | 3.11, 3.12, 3.13, 3.14 |
| أنظمة التشغيل | Linux, macOS, Windows |
| Vulners SDK | 4.1 والإصدارات الأحدث من 4.x |
| تبعيات وقت التشغيل | click, rich, vulners |
التطوير
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
| الأمر | الغرض |
|---|---|
make format | تنسيق الملفات المصدرية وإصلاحها تلقائيًا |
make lint | التحقق من التنسيق والفحص (lint) والأنواع |
make test | تشغيل الاختبارات بالتوازي |
make coverage | فرض تغطية 100% للعبارات والفروع |
make leaks | فحص الملفات المتعقَّبة بحثًا عن الأسرار |
make build | بناء حزمة wheel والتوزيعة المصدرية |
make release | تشغيل كل البوابات والتحقق من كلتا التوزيعتين |
make check | كل ما سبق مما يشكّل بوابات الدمج |
يحتوي CONTRIBUTING.md على قواعد المساهمة، ويوضّح ARCHITECTURE.md حدود الوحدات وثوابت قاعدة البيانات.
الإصدار هو وسم v<version> مُدفوع. من هناك، يعيد سير عمل الإصدار تشغيل كل البوابات على الالتزام المُوسوم، وينشر إلى PyPI عبر النشر الموثوق، ويكتب إصدار GitHub من سجل التغييرات. لا يوجد رمز PyPI يمكن تسريبه.
الأمان
ملفات مصادر الاستغلال هي محتوى غير موثوق: راجعها قبل فتحها أو تشغيلها. Getsploit نفسه لا ينفّذ أبدًا ما يُنزّله.
تُنشر الإصدارات من GitHub Actions عبر النشر الموثوق لـ PyPI، لذا لا يوجد رمز API طويل العمر يمكن تسريبه، ويحمل كل ناتج (artifact) شهادة إثبات مصدر البناء (build provenance). للإبلاغ عن ثغرة أمنية في Getsploit، اتبع SECURITY.md.
الترخيص
MIT © فريق Vulners والمساهمون.