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

--update يبني فهرس SQLite FTS5 محليًا لمجمل نصوص الاستغلال؛ وكل بحث لاحق يكون استعلامًا محليًا.wordpress 4.7 وCVE-2024-3094 وms17-010 تُطابَق حرفيًا، بينما يحصل التعبير النصي الكامل المتعمّد على صيغة FTS5 الكاملة.--mirror يكتب محتوى كل استغلال في ملف مستقل له.يتطلب Getsploit إصدار Python 3.11 أو أحدث.
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
أنشئ مفتاحًا في حساب 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 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 |
| تبعيات وقت التشغيل |
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
يحتوي CONTRIBUTING.md على قواعد المساهمة، ويوضّح ARCHITECTURE.md حدود الوحدات وثوابت قاعدة البيانات.
الإصدار هو وسم v<version> مُدفوع. من هناك، يعيد سير عمل الإصدار تشغيل كل البوابات على الالتزام المُوسوم، وينشر إلى PyPI عبر النشر الموثوق، ويكتب إصدار GitHub من سجل التغييرات. لا يوجد رمز PyPI يمكن تسريبه.
ملفات مصادر الاستغلال هي محتوى غير موثوق: راجعها قبل فتحها أو تشغيلها. Getsploit نفسه لا ينفّذ أبدًا ما يُنزّله.
تُنشر الإصدارات من GitHub Actions عبر النشر الموثوق لـ PyPI، لذا لا يوجد رمز API طويل العمر يمكن تسريبه، ويحمل كل ناتج (artifact) شهادة إثبات مصدر البناء (build provenance). للإبلاغ عن ثغرة أمنية في Getsploit، اتبع SECURITY.md.
MIT © فريق Vulners والمساهمون.
| الموقع | ~/.getsploit/getsploit.db، أو $GETSPLOIT_HOME |
| الصيغة | SQLite مع فهرس FTS5 بمحتوى خارجي |
| المُرمِّز | unicode61 remove_diacritics 2 |
| الحجم | حوالي 1.7 جيجابايت للمجموعة الكاملة |
| التحديث | ذري: قاعدة البيانات الجديدة تستبدل القديمة في عملية واحدة |
click, rich, vulners |
| الأمر | الغرض |
|---|
make format | تنسيق الملفات المصدرية وإصلاحها تلقائيًا |
make lint | التحقق من التنسيق والفحص (lint) والأنواع |
make test | تشغيل الاختبارات بالتوازي |
make coverage | فرض تغطية 100% للعبارات والفروع |
make leaks | فحص الملفات المتعقَّبة بحثًا عن الأسرار |
make build | بناء حزمة wheel والتوزيعة المصدرية |
make release | تشغيل كل البوابات والتحقق من كلتا التوزيعتين |
make check | كل ما سبق مما يشكّل بوابات الدمج |