كيفية الحصول على سجل الأمان مع مستخدم غير إداري



مرحباً هبر! اقرأ تحت cat كيفية الوصول إلى سجل أمان Windows دون امتيازات المسؤول. لن تكون هذه هي المقالة الأولى حول Habré المتعلقة بسجلات Windows وربما ليست الأكثر الأصلي ، ولكن في رأيي قضيت الكثير من الوقت في البحث عن حل بسيط لقراءة السجلات كمستخدم عادي ، لذلك قررت أن أشارك "قصة نجاحي".

اضطررت أيضًا إلى مقارنة أداء أوامر cmdlets Powershell مع أوامر cmdlets Get-WinEvent و Get-EventLog .

كل ما هو قيد التشغيل مناسب لـ Windows Server 2008R2 / 2012R2 ، و Windows 10 Pro (1809) ، لم أختبره على إصدارات أخرى ، وأعتقد أن الموقف مشابه لمنتجات 2016 و 2019.

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



ومن خلال Event Viewer سيتم رفض الوصول أيضًا.



شوتايم


إضافة المستخدم إلى مجموعة القراء سجل الأحداث المحلية.



بعد ذلك ، نمنح أذونات القراءة لفرع التسجيل MACHINE \ System \ CurrentControlSet \ Services \ Eventlog \ Security .



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

هذا هو ما تبدو عليه أذونات MACHINE \ System \ CurrentControlSet \ Services \ Eventlog .



تحقق من أن أوامر cmdlets Get-WinEvent و Get-EventLog !
لاحقًا ، عد إلى مقارنة أوامر cmdlets هذه ...



إدارة سجل التدوين والأمان


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

تقع هذه المجموعة هنا في تكوين الكمبيوتر / إعدادات Windows \ إعدادات الأمان \ السياسات المحلية \ تعيين حقوق المستخدم .



يمكنك قراءة المزيد حول إدارة سجل التدقيق والأمان هنا.
يحدد إعداد السياسة هذا المستخدمين الذين يمكنهم تحديد خيارات تدقيق الوصول إلى الكائنات للموارد الفردية مثل الملفات وكائنات Active Directory ومفاتيح التسجيل. تحدد هذه الكائنات قوائم التحكم في الوصول إلى النظام (SACL). يمكن للمستخدم الذي تم تعيينه لهذا المستخدم حق عرض سجل الأمان ومسحه في "عارض الأحداث". لمزيد من المعلومات حول سياسة تدقيق الوصول إلى الكائنات ، راجع تدقيق الوصول إلى الكائنات.

نتحقق ، كل شيء يعمل كما وعدت ، تم تنظيف سجلات ...



لا توجد منطقات أخرى لتنظيف الحقوق.



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

Get-WinEvent VS Get-EventLog


حان الوقت لمقارنة هذين cmdlets

الحصول على سجل الأحداث
الوصف:

يحصل الأمر Get-EventLog cmdlet على الأحداث وسجلات الأحداث على أجهزة الكمبيوتر المحلية والبعيدة.

يمكنك استخدام معلمات cmdlet وقيم الخاصية للبحث عن الأحداث. يحصل cmdlet على الأحداث التي تطابق قيم الخصائص المحددة.

تعمل أسطر الأوامر cmdlets التي تحتوي على اسم سجل الأحداث فقط على سجلات الأحداث الكلاسيكية. للحصول على الأحداث من السجلات التي تستخدم تقنية سجل أحداث Windows في نظام التشغيل Windows Vista وإصدارات Windows الأحدث ، استخدم Get-WinEvent.

الحصول على WinEvent
الوصف:

يحصل الأمر Get-WinEvent cmdlet على أحداث من سجلات الأحداث ، بما في ذلك السجلات الكلاسيكية ، مثل سجلات النظام والتطبيق ، وسجلات الأحداث التي يتم إنشاؤها بواسطة تقنية سجل أحداث Windows المقدمة في نظام التشغيل Windows Vista. كما أنه يحصل على الأحداث في ملفات السجل التي تم إنشاؤها بواسطة تتبع الأحداث لـ Windows (ETW).

بدون معلمات ، يحصل أمر Get-WinEvent على جميع الأحداث من جميع سجلات الأحداث على الكمبيوتر. لمقاطعة الأمر ، اضغط CTRL + C.

Get-WinEvent يسرد أيضًا سجلات الأحداث وموفري سجل الأحداث. يمكنك الحصول على الأحداث من السجلات المحددة أو من السجلات التي تم إنشاؤها بواسطة موفري الأحداث المحددين. ويمكنك دمج الأحداث من مصادر متعددة في أمر واحد. يتيح لك cmdlet تصفية الأحداث باستخدام استعلامات XPath واستعلامات XML المهيكلة واستعلامات جدول التجزئة المبسطة

حسب الوصف ، يمكن Get-WinEvent العمل مع عدد كبير من المجلات التي ظهرت في WIndows Vista .

للتوضيح ، فيما يلي القوائم التي تعمل بها أوامر cmdlets هذه ؛ لقد أوقفت الإخراج لـ Get-WinEvent .



ولكن هناك شيء واحد ، مسائل الأداء ، قارن وقت تنفيذ الاستعلام.



وقت تشغيل Get-WinEvent مدهش ببساطة ، مع الانتباه إلى عدد الإدخالات في سجلات Applocation و Security ، وعدد الأحداث هو نفسه 3400-3600 تقريبًا ، ولكن الفرق بين وقت التشغيل يبلغ 20 مرة تقريبًا ...

Get-WinEvent يقضي 127 ثانية مقابل 52 ثانية Get-EventLog لقراءة أحداث التطبيق .

والشيك ، ينفق Get-WinEvent 2020 ثانية مقابل 45 ثانية Get-EventLog لقراءة أحداث الأمان .

إذا قمت بتنفيذ نفس الأوامر محليًا ، فإن كل شيء لا يبدو سيئًا للغاية ، ولكن حتى Get-EventLog محليًا يعمل مع سجلات الأمان أسرع 50 مرة من Get-WinEvent .



ومثال آخر ، بالفعل أكثر جدوى من ذلك ، لتلقي الأحداث مع رمز 4624 تم تسجيل دخول الحساب بنجاح .



ماذا يمكنني أن أقول ، الأرقام لا تكذب ...

وصول غير المسؤول إلى سجلات الأحداث DC


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

كل ما سبق ذو صلة أيضًا بوحدة تحكم المجال مع بعض التعديلات.

1 - ستجد مجموعة " قارئ سجل الأحداث " في كائنات أساسيات الأمان المدمجة .



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

ولا تنسَ أنه في كل من وحدات التحكم بالمجال ، يجب أن تمنح الإذن لقراءة فرع التسجيل MACHINE \ System \ CurrentControlSet \ Services \ Eventlog \ Security .

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



2 - لإضافة حقوق لمسح السجلات ، يجب عليك تحرير سياسة وحدات التحكم بالمجال الافتراضية .

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

4 - كن حذرا للغاية عند تحرير سياسات المجال الافتراضية!

PS

قائمة قصيرة بالموارد التي ساعدتني:


في رأيي ، هناك منشورات مفيدة حول Habr ، والتي تتعلق موضوعاتها بسجلات Windows:


النهاية

Source: https://habr.com/ru/post/ar443386/


All Articles