Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/samjoan/droopescan
ماسحات الثغرات الأمنيةجمع المعلوماتأمن الويب
GitHubsamjoan/droopescan

droopescan

ماسح ضوئي قائم على الإضافات يساعد الباحثين في مجال الأمن على تحديد المشكلات في العديد من أنظمة إدارة المحتوى، خاصة دروبال وسيلفرسترايب.

عرض المستودع
1.4k274منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

droopescan

Build Status PyPI version AGPL license

ماسح ضوئي قائم على الإضافات يساعد باحثي الأمن في تحديد المشكلات المتعلقة بعدة أنظمة إدارة محتوى (CMS).

استخدام droopescan لمهاجمة أهداف دون موافقة مسبقة متبادلة غير قانوني. تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. لا يتحمل المطورون أي مسؤولية ولا يتحملون مسؤولية أي إساءة استخدام أو ضرر يسببه هذا البرنامج. يرجى ملاحظة أنه على الرغم من أن droopescan يخرج الإصدار الأكثر احتمالاً لنظام إدارة المحتوى المثبت على المضيف البعيد، إلا أن أي ارتباط بين أرقام الإصدارات والثغرات الأمنية يجب أن يتم يدويًا بواسطة المستخدم.

أنظمة إدارة المحتوى المدعومة هي:

  • SilverStripe
  • Wordpress
  • Drupal

وظائف جزئية لـ:

  • Joomla (تعداد الإصدار وعناوين URL المثيرة للاهتمام فقط)
  • Moodle (الإضافة والقالب محدودان جدًا، كن حذرًا)
root@kitploit:~
computer:~/droopescan$ droopescan scan drupal -u http://example.org/ -t 32
[+] No themes found.

[+] Possible interesting urls found:
    Default changelog file - https://www.example.org/CHANGELOG.txt
    Default admin - https://www.example.org/user/login

[+] Possible version(s):
    7.34

[+] Plugins found:
    views https://www.example.org/sites/all/modules/views/
        https://www.example.org/sites/all/modules/views/README.txt
        https://www.example.org/sites/all/modules/views/LICENSE.txt
    token https://www.example.org/sites/all/modules/token/
        https://www.example.org/sites/all/modules/token/README.txt
        https://www.example.org/sites/all/modules/token/LICENSE.txt
    pathauto https://www.example.org/sites/all/modules/pathauto/
        https://www.example.org/sites/all/modules/pathauto/README.txt
        https://www.example.org/sites/all/modules/pathauto/LICENSE.txt
        https://www.example.org/sites/all/modules/pathauto/API.txt
    libraries https://www.example.org/sites/all/modules/libraries/
        https://www.example.org/sites/all/modules/libraries/CHANGELOG.txt
        https://www.example.org/sites/all/modules/libraries/README.txt
        https://www.example.org/sites/all/modules/libraries/LICENSE.txt
    entity https://www.example.org/sites/all/modules/entity/
        https://www.example.org/sites/all/modules/entity/README.txt
        https://www.example.org/sites/all/modules/entity/LICENSE.txt
    google_analytics https://www.example.org/sites/all/modules/google_analytics/
        https://www.example.org/sites/all/modules/google_analytics/README.txt
        https://www.example.org/sites/all/modules/google_analytics/LICENSE.txt
    ctools https://www.example.org/sites/all/modules/ctools/
        https://www.example.org/sites/all/modules/ctools/CHANGELOG.txt
        https://www.example.org/sites/all/modules/ctools/LICENSE.txt
        https://www.example.org/sites/all/modules/ctools/API.txt
    features https://www.example.org/sites/all/modules/features/
        https://www.example.org/sites/all/modules/features/CHANGELOG.txt
        https://www.example.org/sites/all/modules/features/README.txt
        https://www.example.org/sites/all/modules/features/LICENSE.txt
        https://www.example.org/sites/all/modules/features/API.txt
    [... snip for README ...]

[+] Scan finished (0:04:59.502427 elapsed)

يمكنك الحصول على قائمة كاملة بالخيارات عن طريق تشغيل:

root@kitploit:~
droopescan --help
droopescan scan --help

لماذا ليس X؟

لأن droopescan:

  • سريع
  • مستقر
  • محدث
  • يسمح بالمسح المتزامن لمواقع متعددة
  • هو 100% بايثون

التثبيت

باستخدام pip (موصى به)

التثبيت سهل باستخدام pip:

root@kitploit:~
apt-get install python-pip
pip install droopescan

من المصادر

التثبيت اليدوي كالتالي:

root@kitploit:~
git clone https://github.com/droope/droopescan.git
cd droopescan
pip install -r requirements.txt
./droopescan scan --help

فرع master يتوافق مع أحدث إصدار (ما هو موجود في pypi). فرع development غير مستقر ويجب توجيه جميع طلبات السحب ضده.

BlackArch

تثبيت حزمة BlackArch package (يتم صيانتها بواسطة طرف ثالث):

root@kitploit:~
sudo pacman -S droopescan

Docker

يمكنك بناء صورة docker وتشغيل droopescan من Docker:

root@kitploit:~
git clone https://github.com/droope/droopescan.git
cd droopescan
docker build -t droope/droopescan .
# عرض المساعدة
docker run --rm droope/droopescan
# مثال لمسح موقع drupal
docker run --rm droope/droopescan scan drupal -u https://drupal.example.com

الميزات

أنواع المسح

يهدف Droopescan إلى أن يكون الأكثر دقة افتراضيًا، مع عدم تحميل الخادم الهدف بسبب الطلبات المتزامنة المفرطة. لهذا السبب، افتراضيًا، سيتم إجراء عدد كبير من الطلبات بأربعة خيوط؛ قم بتغيير هذه الإعدادات باستخدام الوسيطات --number و --threads على التوالي.

هذه الأداة قادرة على إجراء أربعة أنواع من الاختبارات. افتراضيًا، يتم تشغيل جميع الاختبارات، ولكن يمكنك تحديد أحد الاختبارات التالية باستخدام العلم -e أو --enumerate:

  • p -- فحص الإضافات: يقوم بعدة آلاف من طلبات HTTP ويعيد قائمة بجميع الإضافات التي تم العثور عليها مثبتة على المضيف الهدف.
  • t -- فحص القوالب: كما هو مذكور أعلاه، ولكن للقوالب.
  • v -- فحص الإصدار: يقوم بتنزيل عدة ملفات وبناءً على مجاميع اختبار هذه الملفات، يعيد قائمة بجميع الإصدارات المحتملة.
  • i -- فحص عناوين URL المثيرة للاهتمام: يتحقق من عناوين URL المثيرة للاهتمام (لوحات الإدارة، ملفات readme، إلخ.)

تحديد الهدف

يمكنك تحديد مضيف معين لمسحه عن طريق تمرير المعامل -u أو --url:

root@kitploit:~
    droopescan scan drupal -u example.org

يمكنك أيضًا حذف الوسيطة drupal. سيؤدي هذا إلى تشغيل "تحديد CMS"، مثل:

root@kitploit:~
    droopescan scan -u example.org

يمكن مسح عناوين URL متعددة باستخدام المعامل -U أو --url-file. يجب تعيين هذا المعامل إلى مسار ملف يحتوي على قائمة عناوين URL.

root@kitploit:~
    droopescan scan drupal -U list_of_urls.txt

يمكن أيضًا حذف المعامل drupal في هذا المثال. لكل موقع، سيقوم بعدة طلبات GET لتحديد CMS، وإذا تم اعتبار الموقع CMS مدعومًا، يتم مسحه وإضافته إلى قائمة الإخراج. يمكن أن يكون هذا مفيدًا، على سبيل المثال، لتشغيل droopescan عبر جميع مواقع مؤسستك.

root@kitploit:~
    droopescan scan -U list_of_urls.txt

يحتوي كتلة الكود أدناه على مثال لقائمة عناوين URL، واحد لكل سطر:

root@kitploit:~
http://localhost/drupal/6.0/
http://localhost/drupal/6.1/
http://localhost/drupal/6.10/
http://localhost/drupal/6.11/
http://localhost/drupal/6.12/

ملف يحتوي على عناوين URL وقيمة لتجاوز رأس المضيف الافتراضي مفصولة بعلامات تبويب أو مسافات مقبول أيضًا لملفات URL. يمكن أن يكون هذا مفيدًا عند إجراء مسح عبر نطاق كبير من المضيفات وتريد منع استعلامات DNS غير الضرورية. للتوضيح، مثال أدناه:

root@kitploit:~
192.168.1.1	example.org
http://192.168.1.1/	example.org
http://192.168.1.2/drupal/	example.org

من المغري جدًا اختبار ما إذا كان الماسح يعمل مع CMS معين عن طريق مسح الموقع الرسمي (على سبيل المثال wordpress.org لـ wordpress)، لكن المواقع الرسمية نادرًا ما تعمل بتثبيتات عادية لأنظمة إدارة المحتوى الخاصة بها أو تقوم بأشياء غير تقليدية. على سبيل المثال، يعمل wordpress.org على الإصدار الأحدث من wordpress، والذي لن يتم التعرف عليه على أنه wordpress بواسطة droopescan على الإطلاق لأن المجاميع الاختبارية لا تتطابق مع أي إصدار معروف من wordpress.

المصادقة

يدعم التطبيق بالكامل ملفات .netrc ومتغيرات البيئة http_proxy.

استخدم ملف .netrc للمصادقة الأساسية. مثال لملف netrc (ملف باسم .netrc موضوع في دليل المنزل الرئيسي الخاص بك) يمكن أن يبدو كالتالي:

root@kitploit:~
machine secret.google.com
    login [email protected]
    password Winter01

يمكنك تعيين متغيرات http_proxy و https_proxy. تسمح لك هذه بتعيين وكيل HTTP رئيسي، حيث يمكنك التعامل مع أنواع أكثر تعقيدًا من المصادقة (مثل Fiddler، ZAP، Burp)

root@kitploit:~
export http_proxy='user:password@localhost:8080'
export https_proxy='user:password@localhost:8080'
droopescan scan drupal --url http://localhost/drupal

تحذير: حسب التصميم، للسماح بالوكلاء المعترضين واختبار التطبيقات ذات SSL السيئة، يسمح droopescan بالشهادات ذاتية التوقيع أو غير الصالحة بطريقة أخرى. ˙ ͜ʟ˙

الإخراج

يدعم هذا التطبيق كلاً من "الإخراج القياسي"، المخصص للاستهلاك البشري، أو JSON، وهو أكثر ملاءمة للاستهلاك الآلي. هذا الإخراج مستقر بين الإصدارات الرئيسية.

يمكن التحكم في ذلك باستخدام العلم --output. بعض نماذج إخراج JSON ستبدو كما يلي (باستثناء المسافات البيضاء الزائدة):

root@kitploit:~
{
  "themes": {
    "is_empty": true,
    "finds": [

    ]
  },
  "interesting urls": {
    "is_empty": false,
    "finds": [
      {
        "url": "https:\/\/www.drupal.org\/CHANGELOG.txt",
        "description": "Default changelog file."
      },
      {
        "url": "https:\/\/www.drupal.org\/user\/login",
        "description": "Default admin."
      }
    ]
  },
  "version": {
    "is_empty": false,
    "finds": [
      "7.29",
      "7.30",
      "7.31"
    ]
  },
  "plugins": {
    "is_empty": false,
    "finds": [
      {
        "url": "https:\/\/www.drupal.org\/sites\/all\/modules\/views\/",
        "name": "views"
      },
      [...snip...]
    ]
  }
}

قد تكون بعض السمات مفقودة من كائن JSON إذا لم يتم تشغيل أجزاء من المسح.

هذا هو شكل الإخراج متعدد المواقع؛ كل سطر يحتوي على كائن JSON صالح كما هو موضح أعلاه.

root@kitploit:~
    $ droopescan scan drupal -U six_and_above.txt -e v
    {"host": "http://localhost/drupal-7.6/", "version": {"is_empty": false, "finds": ["7.6"]}}
    {"host": "http://localhost/drupal-7.7/", "version": {"is_empty": false, "finds": ["7.7"]}}
    {"host": "http://localhost/drupal-7.8/", "version": {"is_empty": false, "finds": ["7.8"]}}
    {"host": "http://localhost/drupal-7.9/", "version": {"is_empty": false, "finds": ["7.9"]}}
    {"host": "http://localhost/drupal-7.10/", "version": {"is_empty": false, "finds": ["7.10"]}}
    {"host": "http://localhost/drupal-7.11/", "version": {"is_empty": false, "finds": ["7.11"]}}
    {"host": "http://localhost/drupal-7.12/", "version": {"is_empty": false, "finds": ["7.12"]}}
    {"host": "http://localhost/drupal-7.13/", "version": {"is_empty": false, "finds": ["7.13"]}}
    {"host": "http://localhost/drupal-7.14/", "version": {"is_empty": false, "finds": ["7.14"]}}
    {"host": "http://localhost/drupal-7.15/", "version": {"is_empty": false, "finds": ["7.15"]}}
    {"host": "http://localhost/drupal-7.16/", "version": {"is_empty": false, "finds": ["7.16"]}}
    {"host": "http://localhost/drupal-7.17/", "version": {"is_empty": false, "finds": ["7.17"]}}
    {"host": "http://localhost/drupal-7.18/", "version": {"is_empty": false, "finds": ["7.18"]}}
    {"host": "http://localhost/drupal-7.19/", "version": {"is_empty": false, "finds": ["7.19"]}}
    {"host": "http://localhost/drupal-7.20/", "version": {"is_empty": false, "finds": ["7.20"]}}
    {"host": "http://localhost/drupal-7.21/", "version": {"is_empty": false, "finds": ["7.21"]}}
    {"host": "http://localhost/drupal-7.22/", "version": {"is_empty": false, "finds": ["7.22"]}}
    {"host": "http://localhost/drupal-7.23/", "version": {"is_empty": false, "finds": ["7.23"]}}
    {"host": "http://localhost/drupal-7.24/", "version": {"is_empty": false, "finds": ["7.24"]}}
    {"host": "http://localhost/drupal-7.25/", "version": {"is_empty": false, "finds": ["7.25"]}}
    {"host": "http://localhost/drupal-7.26/", "version": {"is_empty": false, "finds": ["7.26"]}}
    {"host": "http://localhost/drupal-7.27/", "version": {"is_empty": false, "finds": ["7.27"]}}
    {"host": "http://localhost/drupal-7.28/", "version": {"is_empty": false, "finds": ["7.28"]}}
    {"host": "http://localhost/drupal-7.29/", "version": {"is_empty": false, "finds": ["7.29"]}}
    {"host": "http://localhost/drupal-7.30/", "version": {"is_empty": false, "finds": ["7.30"]}}
    {"host": "http://localhost/drupal-7.31/", "version": {"is_empty": false, "finds": ["7.31"]}}
    {"host": "http://localhost/drupal-7.32/", "version": {"is_empty": false, "finds": ["7.32"]}}
    {"host": "http://localhost/drupal-7.33/", "version": {"is_empty": false, "finds": ["7.33"]}}
    {"host": "http://localhost/drupal-7.34/", "version": {"is_empty": false, "finds": ["7.34"]}}

التصحيح

عندما لا تسير الأمور كما تريد تمامًا، يمكنك التحقق من السبب باستخدام الأمر --debug-requests.

قد يبدو بعض الإخراج هكذا:

root@kitploit:~
computer:~/droopescan# droopescan scan silverstripe -u http://localhost -n 10 -e p --debug-requests
[head] http://localhost/framework/... 403
[head] http://localhost/cms/css/layout.css... 404
[head] http://localhost/framework/css/UploadField.css... 200
[head] http://localhost/misc/test/error/404/ispresent.html... 404
[head] http://localhost/widgetextensions/... 404
[head] http://localhost/orbit/... 404
[head] http://localhost/sitemap/... 404
[head] http://localhost/simplestspam/... 404
[head] http://localhost/ecommerce_modifier_example/... 404
[head] http://localhost/silverstripe-hashpath/... 404
[head] http://localhost/timeline/... 404
[head] http://localhost/silverstripe-hiddenfields/... 404
[head] http://localhost/addressable/... 404
[head] http://localhost/silverstripe-description/... 404
[+] No plugins found.

[+] Scan finished (0:00:00.058422 elapsed)

المعامل --debug موجود أيضًا ويمكن استخدامه لتصحيح أخطاء التطبيق الداخلية.

الإحصائيات

يمكنك الحصول على تقرير محدث عن قدرات الماسح عن طريق تشغيل الأمر التالي

root@kitploit:~
    droopescan stats

قد يبدو بعض الإخراج النموذجي كالتالي:

root@kitploit:~
Functionality available for ‘drupal’:
- Enumerate plugins (XXXX plugins.)
- Enumerate themes (XXXX themes.)
- Enumerate interesting urls (X urls.)
- Enumerate version (up to version X.X.X-alphaXX, X.XX, X.XX.)
Functionality available for ‘joomla’:
- Enumerate interesting urls (X urls.)
- Enumerate version (up to version XX.X, X.X.X, X.X.XX.rcX.)
Functionality available for ‘wordpress’:
- Enumerate interesting urls (X urls.)
- Enumerate version (up to version X.X.X, X.X.X, X.X.X.)
Functionality available for ‘silverstripe’:
- Enumerate plugins (XXX plugins.)
- Enumerate themes (XX themes.)
- Enumerate interesting urls (X urls.)
- Enumerate version (up to version X.X.XX, X.X.XX, X.X.XX.)

من المهم التحقق من أن أحدث إصدار متاح لتثبيت CMS متاح داخل droopescan، وإلا قد تكون النتائج غير دقيقة.

المساهمة

إنشاء الإضافة الخاصة بك

يمكنك إضافة دعم لنظام إدارة المحتوى المفضل لديك. العملية بسيطة في الواقع، ويمكن الحصول على الكثير من المعلومات من خلال عرض ملف example.py في مجلد plugins/.

يجب أن يكون هذا الملف بمثابة قاعدة جيدة لتطبيقك.

يمكنك إنشاء الإضافة الخاصة بك لـ Joomla وتمكينها كالتالي:

root@kitploit:~
$ cp plugins/example.py plugins/joomla.py
$ cp plugins.d/example.conf plugins.d/joomla.conf

ثم تحتاج إلى الذهاب إلى plugins/joomla.py وتغيير بعض الأشياء:

  • يجب أن يكون اسم الفئة Joomla.
  • يجب تغيير تسمية الإضافة (الموجودة في Meta.label) إلى joomla.
  • في نهاية الملف، يجب تعديل استدعاء register ليعكس اسم الفئة الصحيح.
  • يجب إعادة تسمية الدالة المكشوفة، 'example'، إلى joomla.
root@kitploit:~
    @controller.expose(help='example scanner')
    def joomla(self):
        self.plugin_init()

نحتاج أيضًا إلى تغيير ملف plugins.d/joomla.conf وتغييره إلى التالي:

root@kitploit:~
[joomla]
enable_plugin = true

يجب أن نكون الآن في حالة تبدو كالتالي:

root@kitploit:~
$ droopescan scan joomla
[+] --url parameter is required.

ستكون خطوتك التالية هي إنشاء قائمة كلمات إضافات صالحة، وقائمة كلمات قوالب صالحة، وملف versions.xml ، واختياريًا قائمة بعناوين URL المثيرة للاهتمام، بالإضافة إلى استبدال جميع المتغيرات الموجودة في joomla.py بقيم صحيحة لتطبيقك.

يجب أن تقوم الإضافة بالتحديث تلقائيًا لكي يتم قبول طلب السحب. قد تتوفر وثائق إضافية لاحقًا، ولكن في الوقت الحالي، ضع في اعتبارك أنه يجب تنفيذ update_version_check و update_version و update_plugins_check و update_plugins. كمرجع، يرجى مراجعة ملف drupal.py. هذا مطلوب لضمان تحديث الإضافات.

المشكلات وطلبات السحب

طلبات السحب التي تنشئ إضافات جديدة مرحب بها بشرط أن تتم صيانة تلك الإضافات تلقائيًا.

يرجى تذكر توجيه طلبات السحب الخاصة بك إلى فرع development بدلاً من master. يمكن رفع المشكلات في متتبع المشكلات هنا على GitHub.

لتشغيل الاختبارات، يجب تثبيت بعض التبعيات. سيؤدي تشغيل الأوامر التالية إلى تثبيتها وتشغيل الاختبارات:

root@kitploit:~
    apt-get install libxslt1-dev libxml2-dev zlib1g-dev python python-pip python-dev python3 python3-pip python3-dev
    pip install -r requirements.txt -r requirements_test.txt
    pip3 install -r requirements.txt -r requirements_test.txt
    ./droopescan test

يمكنك تشغيل اختبارات فردية باستخدام العلم -s.

root@kitploit:~
./droopescan test -s test_integration_drupal

الترخيص

المشروع مرخص بموجب ترخيص AGPL. راجع ملف LICENSE.

تنزيل الأداة