04 septiembre, 2019

WMI Explorer: Restricción de las políticas de grupo GPO con filtrado WMI y Querys en SCCM

Los filtros WMI (Instrumental de administración de Windows) en las Políticas de grupo (GPO) permiten aplicar políticas de manera más flexible a los clientes mediante el uso de diferentes reglas. Un filtro WMI es un conjunto de consultas WMI (se usa el lenguaje de consulta WMI/WQL) que se puede usar para apuntar a las máquinas a las que se debe aplicar una política de grupo específica.

Por ejemplo, usando el filtro WMI GPO, puede aplicar una política vinculada a una OU solo a las máquinas que ejecutan Windows 10 (una política con dicho filtro WMI no se aplicará a las computadoras con otras versiones de Windows).

¿Para qué se utilizan los filtros WMI en las GPO?

WMI se puede usar cuando varios objetos de dominio (usuarios o equipos) se encuentran en la estructura AD plana en lugar de la unidad organizativa separada, o si se necesita aplicar políticas de grupo, de acuerdo con la versión del sistema operativo, configuración de red, software instalado o cualquier otro criterio que se pueda seleccionar usando WMI. Cuando el cliente procesa dicha política de grupo, Windows verificará el cumplimiento de la consulta WMI especificada, y si se cumplen las condiciones del filtro, la GPO se aplicará en esa máquina.

Lo más habitual en el uso de filtros WMI es distinguir sistemas operativos. Para estes casos las consultas deben hacerse en base al tipo de producto y el tipo de versión del OS.

Tipo de producto:
  • ProductType 1 = Desktop OS
  • ProductType 2 = Server OS - Domain Controller
  • ProductType 3 = Server OS - No son Domain Controller

Versiones de sistema operativo:
  • Windows Server 2019, Windows Server 2016 y Windows 10 = 10.%
  • Windows Server 2012 R2 y Windows 8.1 = 6.3%
  • Windows Server 2012 y Windows 8 = 6.2%
  • Windows Server 2008 R2 y Windows 7 = 6.1%
  • Windows Server 2008 y Windows Vista = 6.0%
  • Windows Server 2003 = 5.2%
  • Windows XP = 5.1%
  • Windows 2000 = 5.0%

Algunos ejemplos.
Windows 7
select * from Win32_OperatingSystem where Version like "6.1%" and ProductType = "1"

Windows 10
select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"

Windows Server 2016
select * from Win32_OperatingSystem where Version like "10.0%" and ProductType="3"

Windows Server 2019
select * from Win32_OperatingSystem where BuildNumber >= 17763 and ProductType="3"

En la siguiente imagen se puede ver un ejemplo de filtrado WMI de una sentencia WQL para consultar la versión de OS Windows 10.

Figura 1: Creación de filtros WMI en la Group Policy Management Console.

Después de crear el filtro WMI, elegimos el filtro WMI y lo aplicamos a una GPO existente.

Figura 2: Aplicar filtro WMI a una GPO existente.

WMI Explorer Tool y como nos puede ayudar a encontrar lo que buscamos para realizar Querys en SCCM.

Después de hacer una introducción a la restricciones en las polítcas de grupo mediante filtros WMI. En esta entrada quería dar a conecer el potencial de WMI Explorer y como nos puede ayudar para encontrar los espacios de nombres, instancias, consultas, clases, propiedades, métodos, parámetros de entrada y de salida necesarios para construir sentencias específicas WQL. Aunque también podemos disponemos de una zona de scripting para VBScript y Powershell.

WMI Explorer permite también conectarse a equipos remotos de una red de dominio que tengan el servicio WMI habilitado y permisos para la administración y acceso remoto WMI control.

En mi caso hice uso de esta herramienta para extraer los namespaces y propiedades WMI para consultas sobre el servicio DNS que posteriormente usé para realizar Queys en SCCM (System Center Configuration Manager).

Un ejemplo del resultado de una consulta WQL conectándose a un equipo remoto del dominio.

Figura 3: WMI Explorer - Ejemplo de consulta WQL en equipo remoto.

Búsqueda en una máquina local de propiedades recusivamente con el criterio "DNS".

Figura 4: WMI Explorer - Búsqueda de clases, propiedades namespaces, etc. en base un criterio de búsqueda.

Métodos encontrados en una clase concreta, parametros de entrada y parámetros de salida.

Figura 5: WMI Explorer - Resultado de clases, métodos y parámetros.
Ejecución de script VBScript o Powershell en texto o command promt en referencia a la clase y métodos encontrados.

Figura 6: WMI Explorer - Ejeción de scripting VBScript o Powershell en clases y métodos WMI.

En conclusión, es una herramienta en la que de la que se puede extraer mucha información y ayudarnos en la elaboración de consultas WQL y recolección de la información ordenada de una máquina local o remota.


Saludos!

26 agosto, 2019

Compartir recursos con Samba sin usuario y sin password entre Linux y Windows

Para poder compartir recursos Samba desde Linux a Windows sin usar ningún login usuario/password de modo que sea un acceso invitado, debemos configurar una serie de directivas en el fichero de configuración de Samba.

Instalación de Samba (en el caso de distribuciones basadas en Debian).
sudo apt install samba samba-client smbfs
Creamos la carpeta que vamos a compartir. Un usuario externo que tiene acceso al equipo a través de Samba, el sistema le da como nombre de usuario nobody y como nombre de grupo nogroup, por lo que hacemos propietarios de esta carpeta a los usuarios externos.
sudo mkdir /mnt/publica
sudo chmod 777 /mnt/publica
sudo chown nobody:nogroup /mnt/publica
Editamos el fichero de configuración de Samba.
/etc/samba/smb.conf
Añadimos o modificamos las siguientes directivas. Workgroup será el nombre del grupo de trabajo (en caso de no formar parte de un entorno de dominio) y permitimos el acceso a invitados.
[global]
   workgroup = WORKGROUP
   usershare allow guests = yes
Establecemos el recurso compartido.
[NombreRecursoCompartido]
   comment = Mi recurso compartido
   path = /mnt/publica
   browseable = Yes
   writeable = Yes
   public = yes

security = SHARE
  • browseable: Atravesar y navegar entre las subcarpetas del recurso compartido.
  • writeable: Escribir en el recurso compartido.
  • public: el sinónimo de "guest ok", permite el ver y acceder al recurso comapartido de manera pública.
  • security: Por defecto suele estar comentado como ";   security = user", permite que se pueda acceder sin establecer ningún nombre de usuario.

La directiva "security" es la que realmente permita un acceso tipo invitado desde cualquier otro sistema que no sea Linux ya se Windows o MacOS.

Debe colocarse sin espacios y al final del fichero de configuración smb.conf, un salto de línea después del último recurso compartido.

Aclaro que según los desarrolladores de Samba no recomiendan el uso de esta directiva por motivos de seguridad. https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-samba-security-modes.html.

Reiniciamos el servidor Samba para aplicar los cambios.
sudo systemctl restart samba
Hago referencia a uno de mis repositorios sobre un caso práctico de esto: https://github.com/adrianlois/RaspberryPi-samba-proftpd.

Saludos!

01 agosto, 2019

Renovar certificados: Comprabar si el certificado, clave privada y el CSR coinciden (OpenSSL)

Al renovar los certificados de un servidor web podemos encontrarnos con errores en el momento de sustitución de los ficheros de certificados en los Virtual Host en el caso de Apache por ejemplo.
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /ruta/a/public.crt
SSLCertificateKeyFile /ruta/a/private.key
SSLCertificateChainFile /ruta/a/intermediate.crt
...
</VirtualHost>
Para comprobar la integridad de los ficheros de certificados, debemos verificar que la suma de verificación (checksum) calculada a través una función hash el certificado, la clave privada y el CSR (Certificate Signing Request) deberían ser los mismos resultados para todos.

Si se obtiene un valor MD5 o SHA256 diferente, significa que el certificado, la clave privada y el CSR no coinciden.

Para comprobar estos valores podemos hacer uso de las herramientas que nos proporciona OpenSSL.

Método 1: Usando OpenSSL y MD5

# openssl rsa -noout -modulus -in private.key | openssl md5
# openssl req -noout -modulus -in intermediate.csr | openssl md5
# openssl x509 -noout -modulus -in public.crt | openssl md5

Método 2: Usando OpenSSL y sha256sum

# openssl pkey -in private.key -pubout -outform pem | sha256sum
# openssl req -in intermediate.csr -pubkey -noout -outform pem | sha256sum
# openssl x509 -in public.crt -pubkey -noout -outform pem | sha256sum
Saludos!

29 julio, 2019

nping: Aplicando Reverse ARP de forma práctica (RARP)

Este es un pequeño tip de como se puede realizar de forma práctica un RARP (Reverse Address Resolution Protocol). Conociendo una dirección MAC y un rango de red específico, realizar peticiones ICMP (ping) de forma automática a un pool de direcciones de red para posetirormente consultar las tablas ARP y descubrir la dirección IP asiganada.

Del software nmap podemos hacer uso del script nping para poder escanear un rango de red determinado de forma automática y listar la tabla ARP local redireccionando la salida a un filtro por la dirección o direcciones MAC que queremos descubrir su IP.
nping --rate=5 <RangeIP> & arp -a | findstr "<MACAddress1> <MACAddress2> ..."

nping --rate=5 192.168.1.1-255 & arp -a | findstr "00-11-2c-3f-44-55 11-2b-3c-44-22-33"
nping ya dispone de un modo ARP aunque de las pruebas que he realizado en ninguna obtuve el resultado esperado.

Saludos!
Entradas Relacionadas