Время на прочтение4 мин
Количество просмотров18K
Привет Хабр! Читайте под катом как получить доступ к логу безопасности Windows без прав администратора. Эта будет не первая статья на Хабре связанная с логами Windows и наверно не самая оригинальная, но на мой взгляд я потратил слишком много времени на поиск простого решения для чтения логов обычным пользователем, вот я и решил поделиться «историей своего успеха».
Также пришлось сравнить скорость работы Powershell командлетов Get-WinEvent и Get-EventLog.
Все что находится под катом актуально для Windows Server 2008R2/2012R2, Windows 10 Pro (1809), на других версиях я не проверял, думаю что с продуктами 2016 и 2019 годов ситуация аналогичная.
И так, по умолчанию у рядового пользователя прав на чтение логов безопасности нет.
При попытке получить логи вы получите ошибку.
И через Event Viewer в доступе также будет отказано.
SHOWTIME
Добавим пользователя в локальную группу Event Log Readers.
Далее предоставляем права на чтение ветки реестра MACHINE\System\CurrentControlSet\Services\Eventlog\Security.
Без изменения прав на эту ветку реестра, прочитать параметры лога безопасности не получится, соответственно не получится узнать место расположение и имя файла с логами. Security, это единственный раздел сервиса Eventlog который не наследует права доступа от корня.
Вот как выглядят права для MACHINE\System\CurrentControlSet\Services\Eventlog.
Проверяем, оба командлета Get-WinEvent и Get-EventLog работают!
Позже вернусь к сравнению этих командлетов…
Manage auditing and security log
Если пользователю необходимо предоставить права на отчистку лога, вам придется отредактировать групповую политику. Пользователю или группе пользователей необходимо добавить права Manage auditing and security log.
Находится данная группа тут Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment.
Более подробно про Manage auditing and security log можно прочитать тут
This policy setting determines which users can specify object access audit options for individual resources such as files, Active Directory objects, and registry keys. These objects specify their system access control lists (SACL). A user who is assigned this user right can also view and clear the Security log in Event Viewer. For more info about the Object Access audit policy, see Audit object access.
Проверяем, все работает как и было обещано, логи были отчищены…
Другие логии отчистить прав нету.
Честно говоря, не могу придумать сценарий где пользователю нужно выдать права на отчистку логов безопасности, но такая возможность присутствует.
Get-WinEvent VS Get-EventLog
Пришло время сравнить эти два командлета
Get-EventLog
Description:
The Get-EventLog cmdlet gets events and event logs on the local and remote computers.
You can use the cmdlet’s parameters and property values to search for events. This cmdlet gets events that match the specified property values.
The cmdlets that contain the EventLog noun work only on classic event logs. To get events from logs that use the Windows Event Log technology in Windows Vista and later Windows versions, use Get-WinEvent.
Get-WinEvent
Description:
The Get-WinEvent cmdlet gets events from event logs, including classic logs, such as the System and Application logs, and the event logs that are generated by the Windows Event Log technology introduced in Windows Vista. It also gets events in log files generated by Event Tracing for Windows (ETW).
Without parameters, a Get-WinEvent command gets all the events from all the event logs on the computer. To interrupt the command, press CTRL + C.
Get-WinEvent also lists event logs and event log providers. You can get events from selected logs or from logs generated by selected event providers. And, you can combine events from multiple sources in a single command. This cmdlet allows you to filter events by using XPath queries, structured XML queries, and simplified hash-table queries
Согласно описания, Get-WinEvent умеет работать с большим количеством журналов которые появились в WIndows Vista.
Для наглядности вот списки с которыми работают эти командлеты, вывод для Get-WinEvent я остановил.
Но есть одно но, производительность имеет значение, сравните время выполнения запросов.
Время работы Get-WinEvent просто поражает, обратите внимание на количество записей в логах Applocation и Security, количество событий примерно одинаковое 3400-3600, но при этом разница по времени выполнения почти 20 раз…
Get-WinEvent тратит 127 секунд против 52 секунд Get-EventLog для чтения событий Application.
И шах и мат, Get-WinEvent тратит 2020 секунд против 45 секунд Get-EventLog для чтения событий Security.
Если выполнить те же команды локально все выглядит не так уж и плохо, но даже локально Get-EventLog работает с логами безопасности в 50 раз быстрее чем Get-WinEvent.
И еще один пример, уже чуть более осмысленный, получения событий с кодом 4624 An account was successfully logged on.
Что тут сказать, цифры не врут…
Non-administrator access to DC Event logs
И на заключение я оставил тему получения доступа к логам безопасности на домен контроллере.
Все выше написанное актуально и для домен контроллера с некоторыми поправками.
1 — Группу Event Log Readers вы найдете в объектах Built-in security principals.
Добавляя пользователя в данную группу вы даете права только на чтение логов на домен контроллерах.
И не забывайте что на каждом из домен контроллеров необходимо дать права на чтение ветки реестра MACHINE\System\CurrentControlSet\Services\Eventlog\Security.
Вот пример, прочитать лог рядового сервера разрешений нет, если вам нужно читать логи с других машин домена, используйте групповые политики, для добавления пользователей или групп пользователей в локальные группы Event Log Readers.
2 – Для добавления прав на отчистку логов необходимо редактировать политику Default Domain Controllers Policy.
3 – Для разрешения запуска заданий от имени пользователя на домен контроллере необходимо также редактировать Default Domain Controllers Policy и дать пользователю права Log on as a batch job.
4 — Будьте предельно внимательными при редактировании дефолтных политик домена!
P.S.
Краткий список ресурсов, которые мне помогли:
- Giving Non Administrators permission to read Event Logs Windows 2003 and Windows 2008
- How to set event log security locally or by using Group Policy
- Безопасность DC — чтение Security Event Log
- Get-WinEvent with non-administrative user
- Domain Controller Security Logs – how to get at them *without* being a Domain Admin
На мой взгляд полезные публикации на Habr, темы которых касаются логов Windows:
- Аудит Active Directory средствами Powershell с оповещением об изменениях. Часть 1
- Поиск источника блокировки пользователя в Active Ditectory
- Мониторинг и оповещение о событиях в журналах Windows: отправка на E-mail в Windows Server 2012 R2
- Аудит безопасности на сервере. Поиск по жураналу безопасности. Power Powershell
The End
История защиты в приложении Безопасность Windows (Windows Security). Обзор журнала защиты.
Приложение Безопасность Windows — одно из лучших встроенных средств защиты от вирусов и угроз для устройства с ОС Windows 11, которое обеспечивает защиту в режиме реального времени.
Все обнаруженные угрозы, а так же предупреждения фиксируются в специальном отчете — журнале защиты. Этот инструмент очень удобен, когда необходимо посмотреть список обнаруженных угроз, либо разрешить какое-либо действие при ложном срабатывании тревоги. Например, вы скачали какое-то ПО, которым часто пользуетесь, но «защитник» Windows расценил это ПО как угрозу и не дает его запустить. Если вы доверяете этому ПО и хотите добавить его в «белый» список, то вам понадобится «Журнал защиты», чтобы найти это ПО и применить разрешающее действие.
Чтобы перейти к журналу защиты, сначала находим через поиск Windows 11 приложение «Безопасность Windows» и запускаем его.
В окне «Безопасность Windows» в меню слева находим пункт «Журнал защиты» и щелкаем по нему левой кнопкой мыши.
В правой части окна появится отчет по последним действиям, рекомендациям, угрозам.
Здесь можно фильтровать список при помощи кнопки «Фильтры».
Нажав на заблокированный элемент из списка можно посмотреть подробный отчет об угрозе и в случае необходимости разрешить выполнение при помощи кнопки «Действия».
Просмотр журнала защиты через PowerShell
Существует второй вариант просмотра отчета об угрозах — через PowerShell. Для запуска PowerShell используем контекстное меню «Пуск» в Windows 11 — нажимаем горячие клавиши «Win+X», либо щелкаем по «Пуск» правой кнопкой мыши и выбираем «Терминал Windows (Администратор)».
Нажимаем «Да» в окне контроля учетных записей, чтобы продолжить.
Для отображения истории всех угроз вводим команду:
Get-MpThreat
и нажимаем «Enter», чтобы её выполнить.
Если в терминале после выполнения команды будет отсутствовать список угроз, это означает, что история журнала защиты отсутствует, либо в вашей ОС установлен сторонний антивирус, который и управляет защитой в режиме реального времени.
Для отображения только активных и прошлых угроз необходимо использовать следующую команду:
Get-MpThreatDetection
Нажимаем клавишу ввода для её выполнения.
Вот и все. Теперь вы знаете, как смотреть журнал защиты в ОС Windows 11. Удачи!
Для различных событий и ошибок системы и приложений Windows ведёт журналы событий, которые можно просмотреть и получить дополнительную информацию, которая может быть полезной при решении проблем с компьютером.
В этой инструкции для начинающих — способы открыть просмотр событий Windows 11/10 и дополнительная информация на тему, которая может пригодиться. На близкую тему: Как отключить журнал событий в Windows.
Контекстное меню кнопки Пуск и поиск
Самый быстрый способ перейти к просмотру журналов событий в Windows 11 и 10 — нажать правой кнопкой мыши по кнопке «Пуск» или нажать клавиши Win+X на клавиатуре и выбрать пункт «Просмотр событий» в открывшемся меню.
Ещё один простой и в большинстве случаев работающий способ открыть какой-либо системный инструмент, расположение которого вам неизвестно — использовать поиск в панели задач.
Начните вводить «Просмотр событий» в поиске, после чего запустите найденный результат:
Почему не «Журнал событий» или «Журнал ошибок», которые пользователи обычно ищут? Причина в том, что сами журналы — это файлы на диске в папках
C:\Windows\System32\winevt\Logs C:\Windows\System32\LogFiles
Пользователи, задавая вопрос о том, где журнал событий в Windows, обычно имеют в виду именно системный инструмент «Просмотр событий» для удобного просмотра соответствующих журналов.
Команда «Выполнить»
Самый быстрый и часто используемый метод запуска просмотра журналов событий Windows — использование команды «Выполнить»:
- Нажмите клавиши Win+R на клавиатуре, либо нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить».
- Введите eventvwr.msc (или просто eventvwr) и нажмите Enter.
- Откроется «Просмотр событий».
Эту же команду можно использовать для создания ярлыка или для открытия журнала событий в командной строке. Возможно, вам пригодится информация о других полезных командах «Выполнить».
Обычно описанных выше вариантов бывает достаточно для открытия просмотра журналов событий и ошибок в Windows, но есть и другие подходы:
Помимо просмотра журнала событий, в Windows присутствует ещё один полезный инструмент — Монитор стабильности системы, позволяющий наглядно получить информацию о работе вашей системы по дням на основании данных из журнала событий.
Доброго дня!
Даже если вы за компьютером ничего не делаете — в процессе работы ОС Windows записывает часть данных в спец. документы (их еще называют логами или системными журналами). Как правило, под-запись попадают различные события, например, включение/выключение ПК, возникновение ошибок, обновления и т.д. 👀
Разумеется, в некоторых случаях эти записи могут быть очень полезными. Например, при поиске причин возникновения ошибок, синих экранов, внезапных перезагрузок и т.д. Отмечу, что если у вас установлена не официальная версия Windows — может так стать, что журналы у вас отключены… 😢
В общем, в этой заметке покажу азы работы с журналами событий в Windows (например, как найти ошибку и ее код, что несомненно поможет в диагностике).
Итак…
*
Работа с журналом событий (для начинающих)
❶
Как его открыть
Вариант 1
Этот вариант универсальный и работает во всех современных версиях ОС Windows.
- нажать сочетание кнопок Win+R — должно появиться окно «Выполнить»;
- ввести команду eventvwr и нажать OK (примечание: также можно воспользоваться диспетчером задач (Ctrl+Shift+Esc) — нажать по меню «Файл/новая задача» и ввести ту же команду eventvwr);
eventvwr — команда для вызова журнала событий
- после этого у вас должно появиться окно «Просмотр событий» — обратите внимание на левую колонку, в ней как раз и содержатся всевозможные журналы Windows…
Просмотр событий
Вариант 2
- сначала необходимо 👉 открыть панель управления и перейти в раздел «Система и безопасность»;
Система и безопасность
- далее необходимо перейти в раздел «Администрирование»;
Администрирование
- после кликнуть мышкой по ярлыку «Просмотр событий».
Просмотр событий — Администрирование
Вариант 3
Актуально для пользователей Windows 10/11.
1) Нажать по значку с «лупой» на панели задач, в поисковую строку написать «событий» и в результатах поиска ОС Windows предоставит вам ссылку на журнал (см. скрин ниже). 👇
Windows 10 — события
2) Еще один способ: нажать сочетание Win+X — появится меню со ссылками на основные инструменты, среди которых будет и журнал событий.
Win+X — вызов меню
❷
Журналы Windows
Журналы Windows
Наибольшую пользу (по крайней мере, для начинающих пользователей) представляет раздел «Журналы Windows» (выделен на скрине выше). Довольно часто при различных неполадках приходится изучать как раз его.
В нем есть 5 вкладок, из которых 3 основных: «Приложение», «Безопасность», «Система». Именно о них пару слов подробнее:
- «Приложение» — здесь собираются все ошибки (и предупреждения), которые возникают из-за работы программ. Вкладка будет полезна в тех случаях, когда у вас какое-нибудь приложение нестабильно работает;
- «Система» — в этой вкладке содержатся события, которые сгенерированы различными компонентами ОС Windows (модули, драйверы и пр.);
- «Безопасность» — события, относящиеся к безопасности системы (входы в учетную запись, раздача прав доступа папкам и файлам, и т.д.).
❸
Как найти и просмотреть ошибки (в т.ч. критические)
Надо сказать, что Windows записывает в журналы очень много различной информации (вы в этом можете убедиться, открыв любой из них). Среди стольких записей найти нужную ошибку не так просто. И именно для этого здесь предусмотрены спец. фильтры. Ниже покажу простой пример их использования.
И так, сначала необходимо выбрать нужный журнал (например «Система»), далее кликнуть в правой колонке по инструменту «Фильтр текущего журнала».
Система — фильтр текущего журнала / Кликабельно
После указать дату, уровень события (например, ошибки), и нажать OK.
Критические ошибки
В результате вы увидите отфильтрованный список событий. Ориентируясь по дате и времени вы можете найти именно ту ошибку, которая вас интересует.
Например, на своем подопытном компьютере я нашел ошибку из-за которой он перезагрузился (благодаря коду ошибки и ее подробному описанию — можно найти решение на сайте Microsoft).
Представлены все ошибки по дате и времени их возникновения / Кликабельно
Т.е. как видите из примера — использование журнала событий очень даже помогает в решении самых разных проблем с ПК.
❹
Можно ли отключить журналы событий
Можно! Только нужно ли? (хотя не могу не отметить, что многие считают, что на этом можно сэкономить толику дискового пространства, плюс система более отзывчива и меньше нагрузка на жесткий диск)
*
Для отключения журналов событий нужно:
- открыть «службы» (для этого нажмите Win+R, введите команду services.msc и нажмите OK);
Открываем службы — services.msc (универсальный способ)
- далее нужно найти службу «Журнал событий Windows» и открыть ее;
Службы — журналы событий
- после перевести тип запуска в режим «отключена» и нажать кнопку «остановить». Затем сохранить настройки и перезагрузить компьютер.
Отключена — остановить
*
На этом пока всё, удачи!
✌
Первая публикация: 23.03.2019
Корректировка: 14.08.2021
By default, only administrators can view security event log in a Windows Server 2003 or 2008. In this article I will show you how to grant permissions to other users or groups to view security log content in a server without admin permissions.
For Windows Server 2008:
Let me start with something easy. For windows 2008 servers, it is very straight forward. If you want to allow any user or group view security event log, just add them to “BUILT IN\Event Log Readers” group and the task is accomplished. If you want to view who all has access to a given event log, try the below command
wevtutil gl security
For Windows Server 2003:
Like Windows server 2008, there is no straightforward way in Windows Server 2003. We need to tweak registry entries a bit to get the desired results. In Windows 2003, security log permissions are stored in registry key in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog\Security\CustomSD registry value. The data for this value will be in SDDL format (search for SDDL in MSDN to know more). We need to modify the data of this value to grant permissions to new users or groups.
Now I will show two cases of granting permissions to security event log and you can form your own SDDL based on these examples.
Grant security log access to anyone logging into the computer:
Anyone who is logging into the computer either through RDP or via console is treated as a “Interactive User”. So granting permission to interactive user will give them required access to security event log. In this example, I am giving read-only access to all the users who is logging in interactive to the server. For that I just need to append the below SDDL string to aforementioned CustomID registry value. Make sure to append it without quotes.
“(A;;0x1;;;IU)” – append this without quotes
If you want to give them full access, then use the below SDDL.
“(A;;0xf0007;;;IU)”
Grant security log access to a user or group:
For granting security log access to a user or group, you need to have their SID handy so that you can form the SDDL to grant them access. You can refer to https://techibee.com/sysadmins/fetch-the-sid-of-a-user-account-using-powershell/137 if you want to know how to get SID of a user using powershell. Once you have the SID handy, you can form the SDDL string to append to the CustomID registry value. In this example, I am using the SID of my domain user “S-1-5-21-1377399363-320120969-1166362429-510”. To grant this user read-only access, I need to append below SDDL string to the CustomID registry value.
“(A;;0x1;;;S-1-5-21-1377399363-320120969-1166362429-510)”
Similarly you can grant permissions to security group as well by replacing the group SID in the above example.
This completes the procedure for granting permissions to read security log entries for non-admin users.
A few useful links:
Default ACLs on Windows event logs — http://blogs.msdn.com/b/ericfitz/archive/2006/03/01/541462.aspx
How to set security event log security locally or using group policies –
http://support.microsoft.com/default.aspx?scid=kb;en-us;323076
Some more deep dive into permissions — http://blogs.technet.com/b/janelewis/archive/2010/04/30/giving-non-administrators-permission-to-read-event-logs-windows-2003-and-windows-2008.aspx
Well known security identifiers in Windows –
https://support.microsoft.com/kb/243330
Hope this helps.. Happy learning.
