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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
LDAPPER — استعلام LDAP بدون المتاعب | Kitploit
أدوات/GitHubGitHub/shellster/ldapper
تصعيد الامتيازاتالاستطلاعهجمات كلمات المرورجمع المعلوماتاختبار الاختراقالمصادقة
GitHubshellster/ldapper

LDAPPER

استعلام LDAP بدون المتاعب

عرض المستودع
11417منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

مقدمة

تم كتابة هذه الأداة لمعالجة العديد من المشكلات التي واجهتها مع ldapsearch والتفاعل مع Active Directory بشكل عام. على وجه الخصوص، تعالج هذه الأداة المشكلات التالية التي واجهتها:

  1. عدم القدرة على إرجاع أكثر من ألف نتيجة من AD. تدعم هذه الأداة ترقيم سجلات LDAP وتعمل حول أخطاء AD الأخرى للسماح باسترجاع عدد عشوائي من السجلات.

  2. عدم القدرة على استخدام بيانات اعتماد NTLM بطريقة بديهية للمصادقة. يمكنك تقديم اسم مجال NETBIOS واسم المستخدم وكلمة المرور للمصادقة على وحدة تحكم مجال Windows.

  3. عدم القدرة على التحكم بدقة في عدد السجلات التي يتم إرجاعها، والسرعة التي يتم إرجاعها بها، وعدد السجلات المسحوبة في المرة الواحدة. تسمح لك هذه الأداة بالتحكم في كل هذه العناصر، بما في ذلك إضافة تأخيرات بين كل استدعاء مرقم. بالإضافة إلى ذلك، يمكن تحديد وحدات تحكم مجال متعددة للاستعلام بالتناوب.

  4. عدم القدرة على إرجاع النتائج بأشكال سهلة الهضم. تدعم هذه الأداة حالياً ثلاثة تنسيقات:

  • plain: نسخة نصية جميلة وقابلة للقراءة من البيانات مع تبويب العناصر الفرعية.
  • json: إخراج JSON، مع مسافات بيضاء إضافية لسهولة القراءة.
  • json_tiny: إخراج JSON مع إزالة جميع المسافات البيضاء الإضافية.
  1. عدم القدرة على إرجاع السمات التي تهمك فقط. تتيح لك هذه الأداة إما إرجاع جميع السمات، أو إرجاع السمات التي تريدها فقط.

  2. عدم القدرة على حفظ قائمة من الاستعلامات شائعة الاستخدام والمجهزة مسبقاً.

التثبيت

root@kitploit:~
git clone ...
pip install -r requirements.txt

التوجيهات

root@kitploit:~
# python3 ldapper.py
    usage: ldapper.py [-h] --domain DOMAIN --user USER --password PASSWORD
                      --server SERVER [--basedn BASEDN] --search SEARCH
                      [--maxrecords MAXRECORDS] [--pagesize PAGESIZE]
                      [--delay DELAY] [--format {plain,json,json_tiny}]
                      [--encryption {1,2,3}]
                      [--advanced [ADVANCED [ADVANCED ...]]] [--outfile OUTFILE]
                      [--engine {ldap3,impacket}]
                      [attribute [attribute ...]]

    بحث سطر أوامر AD LDAP الذي لا يعاني من المشاكل.

    الوسائط الموضعية:
      attribute             السمات المراد إرجاعها (الافتراضي هو الكل للاستعلام المخصص. للاستعلامات الجاهزة، مرر "*" للحصول على جميع السمات بدلاً من الافتراضية)

    الوسائط الاختيارية:
      -h, --help            إظهار رسالة المساعدة هذه والخروج
      --domain DOMAIN, -D DOMAIN
                            المجال
      --user USER, -U USER  اسم المستخدم
      --password PASSWORD, -P PASSWORD
                            كلمة المرور أو تجزئة بصيغة LM:NTLM
      --server SERVER, -S SERVER
                            عنوان IP أو اسم قابل للحل لوحدة تحكم المجال
      --basedn BASEDN, -b BASEDN
                            يجب أن يكون DN الأساسي عادةً "dc="، متبوعاً باسم المجال الطويل مع استبدال النقاط بـ ",dc=". سيحاول اشتقاقه إذا لم يتم توفيره من خادم LDAP.
      --search SEARCH, -s SEARCH
                            سلسلة بحث LDAP أو رقم يشير إلى بحث مخصص من قائمة "عمليات البحث المخصصة". استخدم "-" للقراءة من الإدخال القياسي.
      --maxrecords MAXRECORDS, -m MAXRECORDS
                            الحد الأقصى للسجلات المراد إرجاعها (الافتراضي هو 100)، 0 يعني الكل.
      --pagesize PAGESIZE, -p PAGESIZE
                            عدد السجلات المراد إرجاعها في كل سحب (الافتراضي هو 10). يجب أن يكون <= الحد الأقصى للسجلات.
      --delay DELAY, -d DELAY
                            تأخير بالمللي ثانية بين طلبات الترقيم (الافتراضي هو 0).
      --format {plain,json,json_tiny}, -f {plain,json,json_tiny}
                            تنسيق الإخراج (الافتراضي هو "plain")، يمكن أن يكون: plain, json, json_tiny
      --encryption {1,2,3}, -n {1,2,3}
                            3) الاتصال بـ 636 TLS (الافتراضي)؛ 2) الاتصال بـ 389 بدون TLS، ولكن محاولة STARTTLS والتراجع حسب الحاجة (غير متاح مع impacket)؛ 1) الاتصال بـ 389، فرض النص العادي
      --advanced [ADVANCED [ADVANCED ...]], -a [ADVANCED [ADVANCED ...]]
                            طريقة متقدمة لتمرير الخيارات لعمليات البحث الجاهزة التي تطلب إدخالاً إضافياً (للطلبات المتعددة، مرر الوسيطة بترتيب الطلب)
      --outfile OUTFILE, -o OUTFILE
                            ملف الإخراج (إذا تم تحديده، سيتم توجيه الإخراج إلى هنا بدلاً من الإخراج القياسي [يمكن أن يمنع أخطاء الترميز في Windows])
      --engine {ldap3,impacket}, -e {ldap3,impacket}
                            اختر المحرك لاستخدامه (الافتراضي هو "ldap3"). راجع ملاحظات OPSEC!

    عمليات البحث المخصصة:
              1) الحصول على جميع المستخدمين
                      1.1) الحصول على مستخدم محدد (سيُطلب منك اسم المستخدم)
              2) الحصول على جميع المجموعات (وأعضائها)
                      2.1) الحصول على مجموعة محددة (سيُطلب منك اسم المجموعة)
              3) الحصول على جميع الطابعات
              4) الحصول على جميع أجهزة الكمبيوتر
                      4.1) الحصول على جهاز كمبيوتر محدد (سيُطلب منك اسم الكمبيوتر)
              5) الحصول على مسؤولي المجال/المؤسسة
              6) الحصول على علاقات الثقة بالمجال
              7) البحث عن تفويضات SPN غير المقيدة (احتمال تصعيد الامتيازات)
              8) البحث عن الحسابات التي لا تتطلب المصادقة المسبقة. (ASREPROAST)
              9) البحث عن SPNs للمستخدم (KERBEROAST)
                      9.1) البحث عن SPN محدد للمستخدم (سيُطلب منك اسم المستخدم الرئيسي)
             10) إظهار جميع كلمات مرور LAPS LA (التي يمكنك رؤيتها)
                     10.1) البحث عن كلمة مرور LAPS لمحطة عمل محددة (سيُطلب منك اسم محطة العمل)
            *11) البحث عن سمات كلمة المرور النصية الشائعة (UserPassword, UnixUserPassword, unicodePwd, و msSFU30Password)
             12) إظهار جميع بذور العامل الثاني لـ Quest (إذا كان لديك وصول)
             13) تجزئة كلمة مرور SSO لـ Oracle "orclCommonAttribute"
            *14) تجزئة كلمة مرور SSO لـ Oracle "userPassword"
             15) الحصول على خوادم SCCM
             16) البحث عن الحسابات التي لا تتطلب كلمة مرور. (PasswordNotRequired)

    العناصر المميزة بنجمة لم يتم اختبارها مطلقاً في بيئة يمكن التحقق منها، لذا يُرجى إبلاغي إذا كانت تعمل.

مثال

لأغراض هذه الأمثلة، افترض ما يلي:

root@kitploit:~
اسم NETBIOS: EMP
اسم المجال الكامل: EXAMPLE.LOCAL
عناوين IP لوحدة التحكم بالمجال: 10.0.0.2, 10.0.0.3
اسم المستخدم: bob
كلمة المرور: password

استرداد جميع السجلات وإرجاع سمة cn فقط:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '(cn=*)' cn

استرداد تفاصيل عن مستخدم معين (سيُطلب منك اسم المستخدم):

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '1.1'

استرداد تفاصيل عن مستخدم معين (مرر اسم المستخدم لتجنب الطلب):

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '1.1' -a 'alice'

استرداد أول 100 SPN Kerberos للمستخدم، بما لا يزيد عن خمسة في المرة الواحدة، مع ثانيتين بين كل طلب صفحة بتنسيق JSON مضغوط:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 100 -p 5 -d 2000 -f json_tiny -s '(&(objectcategory=user)(serviceprincipalname=*))' serviceprincipalname userprincipalname

استرداد جميع السجلات يدوياً للطابعات وإظهار جميع السمات ذات الصلة:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s '(objectClass=printQueue)'

البحث عن تفويضات SPN غير المقيدة بدون أي جهد:

root@kitploit:~
python ldapper.py -D 'EMP' -U 'bob' -P 'password' -S '10.0.0.2,10.0.0.3' -m 0  -s 4

تحذيرات OPSEC

  1. عند استخدام محرك Impacket وعدم توفير baseDN، ستقوم الأداة بمحاولة مصادقة SMB والاتصال بوحدة تحكم المجال للحصول على اسم NETBIOS للمجال، لاشتقاق baseDN. قد يؤدي هذا السلوك إلى اكتشاف في بيئة حساسة للغاية. إما لا تستخدم Impacket في مثل هذه البيئة، أو حدد دائماً baseDN.

  2. سيقوم Impacket إما بإجراء اتصال LDAPS كامل أو اتصال غير مشفر بالكامل. لا يمكنه استخدام STARTTLS في الوقت الحالي، لذا إذا كان سيتم اكتشاف اتصال LDAP نصي، فإما أن تحاول فقط اتصال TLS كامل أو لا تستخدم محرك Impacket.

  3. لا يوفر Impacket القدر الأكبر من التحكم في سرعة سحب السجلات. لذلك، فإن خيار "--delay" منفذ جزئياً فقط. إذا كان تأخير سحب السجلات أمراً بالغ الأهمية، فلا تستخدم محرك Impacket.

المراجع

Kerberoast: https://adsecurity.org/?p=2293

ASREPRoast: http://www.harmj0y.net/blog/activedirectory/roasting-as-reps/

إساءة استخدام التفويض غير المقيد: http://www.harmj0y.net/blog/activedirectory/the-most-dangerous-user-right-you-probably-have-never-heard-of/

هراء Oracle: https://blogs.oracle.com/mwilcox/entry/clarifying_ovd-ad_eus_password و http://onlineappsdba.com/index.php/2014/03/03/what-hashing-algorithm-oid-uses-to-store-user-password-ssha-or-md5/

بيانات رمز العامل الثاني لـ Qwest/Defender/Oneidentity: http://support-public.cfm.quest.com/43565_Defender_5.9_AdminGuide.pdf

كلمات المرور النصية الشائعة: https://www.blackhillsinfosec.com/domain-goodness-learned-love-ad-explorer/

سجل التغييرات

الإصدار 1.7

  1. التحقق من الحسابات التي لا تحتاج إلى كلمات مرور، بفضل @nyxgeek.

الإصدار 1.6

  1. إضافة Impacket كبديل لـ LDAP3 لأن LDAP3 لا يعمل دائماً (وكذلك Impacket لا يعمل دائماً).

  2. إزالة تحديد خادم LDAP متعدد لأن هذه الميزة ليست ضرورية حقاً، ولا توجد فعلياً في Impacket.

  3. إعادة هيكلة كل شيء.

الإصدار 1.5

  1. إصلاح خطأ بسيط في الترقيم قد يتسبب في عدم إرجاع بعض السجلات.

الإصدار 1.4

  1. إضافة ميزة البحث في SCCM.

  2. إضافة خيار ملف الإخراج.

  3. إصلاح بعض الأمور في تنسيق الإخراج.

الإصدار 1.3

  1. إضافة القدرة على أخذ استعلام LDAP من الإدخال القياسي.

  2. لف الاستعلام تلقائياً بين قوسين إذا لم يقم المستخدم بذلك بالفعل.

  3. إصلاح خطأ دعم Python 2.

الخطط المستقبلية

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

  1. ربما إنشاء بحث/محلل دون اتصال للبيانات المسحوبة سابقاً؟

...

الائتمان والاتصال

كتابة: Shelby Spencer (shellster). اتصل بي للأخطاء أو طلبات الميزات.

تنزيل الأداة