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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
smbcrawler — smbcrawler هي أداة عملية ومباشرة تأخذ بيانات الاعتماد وقائمة بالمضيفين وتقوم بـ 'الزحف' (أو 'العنكبوت') عبر تلك المشاركات | Kitploit
أدوات/GitHubGitHub/syss-research/smbcrawler
الاستطلاعتحليل الثغرات الأمنيةتسريب البياناتجمع المعلوماتأمن الشبكاتاختبار الاختراق
GitHubsyss-research/smbcrawler

smbcrawler

smbcrawler هي أداة عملية ومباشرة تأخذ بيانات الاعتماد وقائمة بالمضيفين وتقوم بـ 'الزحف' (أو 'العنكبوت') عبر تلك المشاركات

عرض المستودع
18926منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SmbCrawler

SmbCrawler هي أداة لا تملك أي زخرفة، تأخذ بيانات اعتماد وقائمة بالمضيفين وتقوم "بالزحف" (أو "التجسس") عبر تلك المشاركات. الميزات:

  • يقبل أسماء المضيفين، عناوين IP، نطاقات IP، أو ملف nmap بصيغة XML كمدخلات
  • يتحقق من الصلاحيات (التحقق من صلاحية "الكتابة" هو اختياري، لأنه يتطلب إنشاء مجلد فارغ على المشاركة)
  • عمق الزحف قابل للتخصيص
  • يخرج النتائج بصيغ قابلة للقراءة آليًا أو كتقرير HTML تفاعلي
  • دعم تمرير التجزئة (pass‑the‑hash)
  • تنزيل تلقائي للملفات المثيرة للاهتمام
  • الإبلاغ عن الأسرار المحتملة
  • متعدد الخيوط
  • قابل للإيقاف المؤقت
  • تخطي تفاعلي للمشاركات والمضيفين الفردية

التثبيت

إذا كنت بحاجة إلى تعليمات حول كيفية تثبيت حزمة Python، أنصحك بالتأكد من أن لديك pipx مثبتًا ثم تشغيل pipx install smbcrawler.

يمكن لـ SmbCrawler تحويل بعض الملفات الثنائية مثل PDF و XLSX و DOCX و ZIP وغيرها تلقائيًا إلى نص عادي باستخدام MarkItDown. نظرًا لأن هذه الحزمة تسحب الكثير من التبعيات، فقد تم وضع علامة عليها كإضافة إضافية. ومع ذلك، يُنصح بشدة بتثبيتها للحصول على أفضل النتائج. إذا كنت تريد تحويل الملفات الثنائية تلقائيًا، فقم بتثبيت SmbCrawler كالتالي:

root@kitploit:~
pipx install 'smbcrawler[binary-conversion]'
'

يُوصى بشدة بإضافة إكمال الصدفة. نظرًا لأن التطبيق مبني على Python ويستخدم مكتبة `click`، يمكنك إضافة إكمال علامات التبويب إلى bash و zsh و fish باستخدام [الآلية المعتادة](https://click.palletsprojects.com/en/8.1.x/shell-completion/#enabling-completion).

## مثال

قم بتشغيله كالتالي (10 خيوط، عمق أقصى 5):

    $ smbcrawler crawl -i hosts.txt -u pen.tester -p iluvb0b -d contoso.local -t 10 -D 5

## التغييرات الرئيسية في الإصدار 1.0

لقد خضع SmbCrawler إلى إصلاح شامل. أهم التغييرات هي:

- قمنا بتنظيف واجهة سطر الأوامر وأدخلنا آلية "الملف الشخصي" للتحكم في سلوك الزاحف
- أصبح الإخراج الآن قاعدة بيانات sqlite بدلاً من ملفات JSON المتفرقة
- أصبحت الصلاحيات تُبلغ الآن بشكل أكثر تفصيلاً

كانت وسائط سطر الأوامر القديمة المتعلقة بـ "الملفات المثيرة للاهتمام" و "المشاركات المملة" وما إلى ذلك خشنة ومربكة. بدلاً من ذلك، نستخدم الآن "الملفات الشخصية"؛ انظر أدناه للحصول على التفاصيل.

أيضًا، أدركت أنني قد أعدت اختراع قواعد البيانات العلائقية بشكل أساسي، لكنني فعلت ذلك بشكل سيئ للغاية، فلماذا لا نستخدم sqlite مباشرة؟ يمكّننا نهج sqlite من إنتاج تقرير HTML تفاعلي لطيف بأداء جيد. لا يزال بإمكانك تصدير النتائج بتنسيقات متنوعة إذا كنت بحاجة إلى استخدام البيانات في بعض مسارات الأدوات.

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

إذا كنت تفضل الإصدار القديم، فهو لا يزال متاحًا على PyPI ويمكن تثبيته باستخدام `pipx install smbcrawler==0.2.0`، على سبيل المثال.

## الاستخدام

أثناء وقت التشغيل، يمكنك استخدام المفاتيح التالية:

- `p`: إيقاف الزاحف مؤقتًا وتخطي مضيف واحد أو مشاركة واحدة
- `<space>`: طباعة التقدم الحالي
- `s`: طباعة تحديث حالة أكثر تفصيلاً

لمزيد من المعلومات، قم بتشغيل `smbcrawler -h`.

## ملاحظات

حتى في الشبكات متوسطة الحجم، سيجد SmbCrawler كميات هائلة من البيانات. التحدي هو تقليل النتائج الإيجابية الخاطئة.

### ملاحظات حول الصلاحيات

من المهم أن ندرك أن الصلاحيات يمكن أن تنطبق على مستوى الخدمة وعلى مستوى نظام الملفات. قد تسمح لك خدمة SMB البعيدة بالمصادقة وقد يكون حساب المستخدم الخاص بك لديه صلاحيات قراءة من حيث المبدأ، لكنه قد يفتقر إلى هذه الصلاحيات على نظام الملفات.

سيقوم SmbCrawler بالإبلاغ عما إذا كان لديك صلاحيات لـ:

- المصادقة ضد هدف كضيف وسرد المشاركات
- المصادقة ضد هدف باستخدام بيانات اعتماد المستخدم
- الوصول إلى مشاركة كضيف
- الوصول إلى مشاركة باستخدام بيانات اعتماد المستخدم
- إنشاء دليل في الدليل الجذر للمشاركة
- أعمق مستوى دليل في المشاركة يمكن الوصول إليه (مقيد بوسيط `--depth`)

نظرًا لأنه ليس من السهل التحقق من صلاحيات مشاركات SMB دون محاولة الإجراء المعني، سيحاول SmbCrawler إنشاء دليل على كل مشاركة. اسمه `smbcrawler_DELETEME_<8 أحرف عشوائية>` وسيتم حذفه فورًا، لكن كن على علم بذلك على أي حال.

> [!WARNING]
> أحيانًا يكون لديك صلاحية إنشاء الدلائل، ولكن ليس صلاحية حذفها، لذا ستترك دليلاً فارغًا هناك.

### الملفات الشخصية

لتحديد ما يجب فعله مع مشاركات معينة أو ملفات أو دلائل، يمتلك SmbCrawler ميزة تسمى "الملفات الشخصية". ألقِ نظرة على [الملف الشخصي الافتراضي](https://github.com/SySS-Research/smbcrawler/blob/main/src/smbcrawler/default_profile.yml).

يتم تحميل الملفات الشخصية من الملفات ذات الامتدادات `*.yml` أو `*.yaml` من هذه المواقع:

- الملف الشخصي الافتراضي المدمج
- `$XDG_DATA_HOME/smbcrawler/` (`~/.local/share/smbcrawler` بشكل افتراضي)
- الدليل الإضافي المحدد بواسطة `--extra-profile-directory`
- الملفات الإضافية المحددة بواسطة `--extra-profile-file`

الملفات الشخصية من كل موقع تتجاوز التعريفات السابقة.

تحدد القيمة `regex` ما إذا كان الملف الشخصي يطابق، وسيتم استخدام آخر ملف شخصي يطابق. جميع التعبيرات العادية غير حساسة لحالة الأحرف، مما يعكس السلوك الأكثر شيوعًا في عالم Windows.

نظرًا لأنه قد يكون من المحير كيف تعمل الملفات الشخصية من مصادر مختلفة معًا، تأكد من استخدام المعامل `--dry-run`. فهو يظهر لك الإعدادات الفعالة ولا يفعل شيئًا أكثر.

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

#### الملفات

- `comment`: سلسلة مفيدة تصف هذا الملف الشخصي
- `regex`: تعبير عادي يحدد الملفات التي ينطبق عليها هذا الملف الشخصي. آخر تعبير عادي يطابق هو الذي يُحتسب.
- `regex_flags`: مصفوفة من العلامات التي سيتم تمريرها إلى دالة المطابقة [`match`](https://docs.python.org/3/library/re.html#flags)
- `high_value` (الافتراضي: `false`): إذا كان الملف ذا "قيمة عالية"، سيتم الإبلاغ عن وجوده، لكن لن يتم تنزيله بالضرورة (فكر في الأقراص الصلبة الافتراضية – مهمة، لكنها كبيرة جدًا بحيث لا يمكن تنزيلها تلقائيًا)
- `download` (الافتراضي: `true`): إذا كان `true`، سيتم تنزيل أول 200 كيبي بايت (أو الملف بأكمله إذا كان `high_value=true`) وتحليله بحثًا عن الأسرار

#### المشاركات والدلائل

- `comment`, `regex`, `regex_flags`: نفس ما سبق
- `high_value`: سيتم الإبلاغ عن وجوده وسيتغير عمق الزحف إلى ما لا نهاية
- `crawl_depth`: قم بالزحف إلى هذه المشاركة أو الدليل بعمق مختلف عما هو محدد بواسطة المعامل `--depth`

#### الأسرار

- `comment`, `regex_flags`: نفس ما سبق
- `regex`: تعبير عادي يطابق السر. يمكن أن يكون السر نفسه مجموعة مسماة بالاسم `secret`.

### سير العمل النموذجي

من المنطقي تشغيل SmbCrawler أولاً بعمق زحف 1 للحصول على فكرة عما تتعامل معه. في هذه الجولة الأولى، يمكنك تمكين التحقق من الكتابة باستخدام `-w`:

    $ smbcrawler -C permissions_check.crwl crawl -D1 -t10 -w \
        -i <ملف الإدخال> -u <المستخدم> -d <المجال> -p <كلمة المرور>

لاحظ أن هذا يتحقق فقط من صلاحيات الكتابة والقراءة في الدليل الجذر لكل مشاركة. فقط تشغيل كامل سيخبرك أكثر عن مدى عمق صلاحيات القراءة.

بعد التحقق الأولي من الصلاحيات، يمكنك تحديد المشاركات المثيرة للاهتمام والمملة لجولتك التالية أو عدة جولات. بعض المشاركات مثل `SYSVOL` و `NETLOGON` تظهر عدة مرات، لذا يجب ضبط عمق الزحف إلى صفر في جولتك التالية واختيار مضيف واحد لمسح هذه المشاركات المكررة في جولة ثالثة. إليك مثال:

    $ smbcrawler -C dc_only.crwl crawl -D -1 <عنوان IP لمراقب المجال> \
        -u <المستخدم> -d <المجال> -p <كلمة المرور>
    $ smbcrawler -C full.crwl crawl -D5 -t10 -i <ملف إدخال جديد> \
        -u <المستخدم> -d <المجال> -p <كلمة المرور> \
        --extra-profile-file skip_sysvol.yml

هنا، سيكون `skip_sysvol.yml` كالتالي:

``` yaml
shares:
  sysvol:
    comment: "تخطي مشاركتي sysvol و netlogon"
    regex: 'SYSVOL|NETLOGON'
    crawl_depth: 0

لا تتردد في تضمين مشاركات أخرى هنا والتي قد تعتقد أنها لا تستحق الزحف.

المخرجات

يتم احتواء البيانات الخام في قاعدة بيانات SQLite ودليل (output.crwl و output.crwl.d بشكل افتراضي). يحتوي الدليل على دليلين إضافيين: أحدهما يحتوي على الملفات التي تم تنزيلها والمميزة بشكل فريد حسب محتوى التجزئة، ودليل يعكس جميع المشاركات مع روابط رمزية تشير إلى ملفات المحتوى. هذا الأخير مفيد للبحث عبر جميع الملفات التي تم تنزيلها.

يمكن تحويل البيانات إلى تنسيقات متنوعة. يمكنك أيضًا ببساطة الوصول إلى قاعدة البيانات باستخدام sqlitebrowser، على سبيل المثال. تم تعريف بعض العروض المفيدة مسبقًا. أو يمكنك إخراج JSON واستخدام jq لمعالجة البيانات.

إذا كنت تريد عرض جميع المشاركات التي تمكنت من قراءتها بعد الدليل الجذر في جدول LaTeX، على سبيل المثال، استخدم هذا الاستعلام:

root@kitploit:~
SELECT target_id || " & " || name || " & " || remark || " \\"
FROM share
WHERE read_level > 0
ORDER BY target_id, name
'

هناك أيضًا ميزة إخراج HTML تجريبية. قد لا تكون مفيدة تمامًا بعد للكميات الكبيرة من البيانات.

### المساعدة

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

## الإسناد

Adrian Vollmer, SySS GmbH

## الترخيص

رخصة MIT؛ انظر `LICENSE` للحصول على التفاصيل.
تنزيل الأداة