
اكتشف ما إذا كانت الخدمة مثبتة (بشكل أعمى) و/أو قيد التشغيل (إذا كانت تكشف عن أنابيب مسماة) على جهاز بعيد دون استخدام صلاحيات المسؤول المحلي.
اكتشف ما إذا كانت الخدمة مثبتة (بشكل أعمى) و/أو قيد التشغيل (إذا كانت تعرض أنابيب مسماة) على جهاز بعيد دون استخدام صلاحيات المسؤول المحلي.
بتفصيل أكثر، عند تشغيل هذا السكربت فإنه يتصل بخدمة SMB على الهدف (445/tcp) عن بُعد ويقوم بما يلي:
يتحقق مما إذا كانت الخدمة المحددة مثبتة عبر استدعاء RPC الخاص بـ [MS-LSAT] والمُسمّى LsarLookupNames(). ليست هناك حاجة لاستخدام حساب متميز، لكن الاستعلام "الأعمى" فقط هو الممكن (لا يمكننا سرد الخدمات، يمكننا فقط السؤال عن حالة خدمة محددة).
يتحقق مما إذا كانت الأنابيب المسماة المحددة موجودة على الهدف. قد تعرض الخدمات (العمليات) أنبوبًا مسمىً مميزًا للخدمة، ويمكن أن يلاحظه مستخدم غير متميز. لذا فإن فحص الأنابيب المسماة المميزة للخدمات قد يسمح لنا باستنتاج ما إذا كانت الخدمة المحددة قيد التشغيل أم لا.
هذا سكربت Python مستقل يستخدم Impacket، ولا حاجة لتثبيت أي شيء. تم اختباره على أحدث إصدار من Kali وArch Linux باستخدام أحدث إصدار رسمي من Impacket (0.10.0 و0.9.24) وPython (3.9 و3.10).
يتم تحديد الخدمات وأسماء الخدمات المراد فحصها والأنابيب المسماة المميزة للخدمة في ملفات إعداد JSON (أو ملفات CSV إذا كان ذلك أكثر راحة، وهو ما أدركته لاحقًا :)، لذا يتوفر أيضًا محول csv2json مخصص) في مجلد conf. لفهم التنسيق، راجع الأمثلة المرفقة.
ملفات الإعداد المرفقة:
يمكن توسيع حالات الاستخدام بالمزيد من الخدمات / الأنابيب المسماة، وإعداد EDR غير مكتمل إلى حد كبير، فلا تتردد في إضافة المزيد.
يستخدم السكربت تنسيق إعداد JSON، لكنني أدركت لاحقًا أن كتابة CSV أكثر راحة بكثير، لذا أرفقت سكربت csv2json.py لتحويل CSV إلى JSON.
التشغيل ضد هدف واحد لتعداد خدمات AV/EDR (أو أي شيء آخر) أمر مباشر:
./serviceDetector.py -conf conf/edr.json evil.corp/johndoe:[email protected]
مصادقة Kerberos مدعومة أيضًا (يشير متغير البيئة KRB5CCNAME إلى ملف ccache):
./serviceDetector.py -conf conf/edr.json -k -no-pass server.ecorp.local
للتشغيل ضد أهداف متعددة بفعالية، تعد GNU parallel مفيدة للغاية:
cat targets.txt | parallel -j 50 ./serviceDetector.py evil.corp/johndoe:Passw0rd1@{}
لاحظ أنه قبل التشغيل ضد مجموعة من الأهداف، اختبر ضد هدف واحد لمنع قفل الحساب (على سبيل المثال في حالة كتابة كلمة مرور خاطئة).
ملاحظة أمنية (Opsec): انتبه إلى أن تسجيل الدخول الجماعي المتزامن إلى أهداف مختلفة قد يؤدي إلى إطلاق تنبيهات SOC.
التقنيتان المستخدمتان هنا ليستا جديدتين.
استُخدم استدعاء RPC الخاص بـ [MS-LSAT] والمُسمّى LsarLookupNames() سابقًا من قبل Vincent Le Toux (@mysmartlogon) في وحدة Antivirusscanner الخاصة بأداة PingCastle الرائعة.
استُلهمت فكرة الأنابيب المسماة لاكتشاف الخدمات قيد التشغيل من هذه التغريدة التي كتبها Lee Christensen (@tifkin_) عندما استخدمها لاكتشاف خدمة WebClient. كما استُخدمت هذه التقنية لاكتشاف AV/EDR بواسطة أداة NamedPipeTouch من NSA (التي تسربت من قبل مجموعة The Shadow Brokers).