Cómo obtener el registro de seguridad con un usuario no administrativo



Hola habr Lea en cat cómo acceder al registro de seguridad de Windows sin privilegios de administrador. Este no será el primer artículo sobre Habr conectado con los registros de Windows y probablemente no sea el más original, pero en mi opinión pasé demasiado tiempo buscando una solución simple para leer registros como usuario ordinario, así que decidí compartir la "historia de éxito".

También tuve que comparar el rendimiento de los cmdlets Powershell con los cmdlets Get-WinEvent y Get-EventLog .

Todo lo que está bajo el corte es relevante para Windows Server 2008R2 / 2012R2, Windows 10 Pro (1809), no lo he probado en otras versiones, creo que la situación es similar con los productos de 2016 y 2019.

Y así, de manera predeterminada, el usuario promedio no tiene permiso para leer registros de seguridad.
Cuando intenta obtener los registros, obtiene un error.



Y a través del Visor de eventos, el acceso también será denegado.



SHOWTIME


Agregue el usuario al grupo local de lectores de registro de eventos .



A continuación, otorgamos permisos de lectura a la rama de registro MACHINE \ System \ CurrentControlSet \ Services \ Eventlog \ Security .



Sin cambiar los derechos de esta rama de registro, no podrá leer los parámetros del registro de seguridad; en consecuencia, no podrá averiguar la ubicación y el nombre del archivo de registro. Seguridad , esta es la única sección del servicio Eventlog que no hereda los derechos de acceso desde la raíz.

Así es como se ven los permisos para MACHINE \ System \ CurrentControlSet \ Services \ Eventlog .



¡Compruebe que los cmdlets Get-WinEvent y Get-EventLog funcionan!
Más tarde, volviendo a comparar estos cmdlets ...



Gestionar el registro de auditoría y seguridad.


Si el usuario necesita derechos para borrar el registro, tendrá que editar la política de grupo. Un usuario o grupo de usuarios necesita agregar Administrar la auditoría y los permisos de registro de seguridad .

Este grupo se encuentra aquí Configuración del equipo \ Configuración de Windows \ Configuración de seguridad \ Políticas locales \ Asignación de derechos de usuario .



Puede leer más sobre Administrar auditoría y registro de seguridad aquí.
Esta configuración de directiva determina qué usuarios pueden especificar las opciones de auditoría de acceso a objetos para recursos individuales como archivos, objetos de Active Directory y claves de registro. Estos objetos especifican sus listas de control de acceso al sistema (SACL). Un usuario al que se le asigna este derecho de usuario también puede ver y borrar el registro de Seguridad en el Visor de eventos. Para obtener más información sobre la política de auditoría de acceso a objetos, consulte Auditoría de acceso a objetos.

Verificamos, todo funciona según lo prometido, se limpiaron los registros ...



No hay otras lógicas para limpiar los derechos.



Honestamente, no puedo encontrar un escenario en el que el usuario deba tener el derecho de limpiar los registros de seguridad, pero existe esa oportunidad.

Get-WinEvent VS Get-EventLog


Es hora de comparar estos dos cmdlets.

Get-eventlog
Descripción:

El cmdlet Get-EventLog obtiene eventos y registros de eventos en las computadoras locales y remotas.

Puede usar los parámetros y valores de propiedad del cmdlet para buscar eventos. Este cmdlet obtiene eventos que coinciden con los valores de propiedad especificados.

Los cmdlets que contienen el sustantivo EventLog solo funcionan en registros de eventos clásicos. Para obtener eventos de registros que usan la tecnología de registro de eventos de Windows en Windows Vista y versiones posteriores de Windows, use Get-WinEvent.

Get-WinEvent
Descripción:

El cmdlet Get-WinEvent obtiene eventos de los registros de eventos, incluidos los registros clásicos, como los registros del sistema y de la aplicación, y los registros de eventos generados por la tecnología de registro de eventos de Windows introducida en Windows Vista. También obtiene eventos en archivos de registro generados por Event Tracing para Windows (ETW).

Sin parámetros, un comando Get-WinEvent obtiene todos los eventos de todos los registros de eventos en la computadora. Para interrumpir el comando, presione CTRL + C.

Get-WinEvent también enumera los registros de eventos y los proveedores de registros de eventos. Puede obtener eventos de registros seleccionados o de registros generados por proveedores de eventos seleccionados. Y puede combinar eventos de múltiples fuentes en un solo comando. Este cmdlet le permite filtrar eventos mediante consultas XPath, consultas XML estructuradas y consultas de tabla hash simplificadas

Según la descripción, Get-WinEvent puede funcionar con una gran cantidad de revistas que aparecieron en Windows Vista .

Para mayor claridad, aquí están las listas con las que funcionan estos cmdlets ; detuve la salida para Get-WinEvent .



Pero hay una cosa, el rendimiento importa, comparar el tiempo de ejecución de la consulta.



El tiempo de ejecución de Get-WinEvent es simplemente increíble, preste atención a la cantidad de entradas en los registros de Asignación y Seguridad , la cantidad de eventos es aproximadamente la misma 3400-3600, pero la diferencia en el tiempo de ejecución es casi 20 veces ...

Get-WinEvent pasa 127 segundos frente a 52 segundos Get-EventLog para leer los eventos de la aplicación .

Y jaque mate, Get-WinEvent gasta 2020 segundos versus 45 segundos Get-EventLog para leer eventos de seguridad .

Si ejecuta los mismos comandos localmente, todo no se ve tan mal, pero incluso localmente Get-EventLog funciona con registros de seguridad 50 veces más rápido que Get-WinEvent .



Y otro ejemplo, ya un poco más significativo, de recibir eventos con el código 4624 Una cuenta se inició sesión con éxito .



¿Qué puedo decir, los números no mienten ...

Acceso no administrador a los registros de eventos de DC


Y en conclusión, dejé el tema de obtener acceso a los registros de seguridad en el controlador de dominio.

Todo lo anterior también es relevante para el controlador de dominio con algunas modificaciones.

1 - Encontrará el grupo Lectores de registro de eventos en los objetos Principales de seguridad integrados .



Al agregar un usuario a este grupo, solo otorga permisos de lectura a los controladores de dominio.

Y no olvide que en cada uno de los controladores de dominio debe dar permiso para leer la rama de registro MACHINE \ System \ CurrentControlSet \ Services \ Eventlog \ Security .

Aquí hay un ejemplo, no hay permiso para leer el registro de un servidor miembro, si necesita leer registros de otras máquinas en el dominio, use políticas de grupo para agregar usuarios o grupos de usuarios a los grupos locales de lectores de registro de eventos .



2 - Para agregar derechos para borrar registros, debe editar la Política de controladores de dominio predeterminados .

3 - Para permitir el inicio de tareas en nombre del usuario en el controlador de dominio, también debe editar la Política de controladores de dominio predeterminados y otorgar al usuario Iniciar sesión como permisos de trabajo por lotes .

4 - ¡Tenga mucho cuidado al editar políticas de dominio predeterminadas!

PS

Una breve lista de recursos que me ayudaron:


En mi opinión, publicaciones útiles sobre Habr, cuyos temas se relacionan con los registros de Windows:


El final

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


All Articles