sysblog

Windows Management Instrumentation (WMI)

O que é o WMI?

O WMI é a implementação Microsoft do Web-Based Enterprise Management (WBEM),  uma iniciativa da indústria para o desenvolvimento de uma tecnologia padrão para receber ou gerir métricas num ambiente corporativo. Recorrendo ao Information Model (CIM), padrão da indústria para a representação de sistemas, aplicações, redes, dispositivos e outros componentes, o WMI permite o uso de scripts em linguagem VBScript e Windows PowerShell para a obtenção de dados e a realização de operações em sistemas.

O WMI consegue assim fornecer aos utilizadores informações sobre o estado dos sistemas das máquinas locais ou remotos, bem como realizar ações como a definição de configurações de segurança, definição e alteração de propriedades do sistema, configuração e alteração de permissões para utilizadores e grupos de segurança.

Arquitetura do WMI

O WMI fornece uma interface uniforme a todas as aplicações locais e remotas para a obtenção e gestão de métricas de um computador ou de uma rede. Este interface permite que as aplicações cliente do WMI e scripts não necessitem de ligar-se a uma variedade de interfaces de programação do sistema operativo (APIs).

O diagrama seguinte mostra a relação entre a infra-estrutura WMI e os fornecedores WMI e objetos de gestão, e também mostra a relação entre a infra-estrutura WMI e os consumidores do WMI.

wmi

Como se pode usar o WMI?

Por norma, muitas aplicações de monitorização de serviços exigem a criação na AD de um utilizador com privilégios de administração para a realização das suas funções. Porém, tal configura um enorme risco para a segurança do sistema em todos os vectores (confidencialidade, integridade e disponibilidade).

Os próximos passos demostram como é que possível a criação de um utilizador sem privilégios de administração e a ativação do WMI nas máquinas pretendidas.

O exemplo usado assume que o sistema operativo é Windows Server 2012 R2.

Pré-requisitos

  • Todos os procedimentos que se seguem necessitam de ser executadas com privilégios de administração nos sistemas operativos das máquinas envolvidas;
  • Poderá ser necessária a alteração de políticas de firewalling em equipamentos ativos de rede onde vigorem políticas ativas de restrição de tráfego (ver secção 3).

Procedimentos

Todos os procedimentos descritos nas secções seguintes deverão ser efetuados em todos os dispositivos onde se deseja autorizar a execução de WMI queries remotamente.

Na existência de um domain controller e na necessidade de autorizar a execução de WMI queries para qualquer entidade pertencente a um determinado domínio, os procedimentos seguintes deverão ser efetuados apenas no domain controller, à exceção da secção 5.1 que deverá, neste caso, ser ignorada.

  1. Services

Confirmar se os serviços associados DCOM e WMI estão a iniciar automaticamente (Automatic).

Esta validação deverá ser feita através do seguinte caminho:

                Server Manager -> Tools -> Services

                Alterar o tipo de arranque dos serviços seguintes de Manual para Automatic:

  • DCOM Server Process Launcher
  • WMI Performance Adapter

                No caso de os serviços se encontrarem Stopped, terão que ser iniciados manualmente.

  1. Firewall Windows

Permitir na firewall do Windows o trafego para os serviços DCOM e WMI, executando as instruções seguintes na command-line:

  • Clique em Start, clique em Run, digite exe e clique em OK.
  • Executar as instruções seguintes:
    • netsh advfirewall firewall set rule group=”windows management instrumentation ()” new enable=yes
  • netsh advfirewall firewall set rule group=”remote administration” new enable=yes

 

  1. Configuração de dispositivos ativos de rede

Na existência de dispositivos ativos de rede com políticas ativas de restrição de tráfego, deverão ser efetuados os procedimentos descritos numa das seguintes opções:

3.1. Atribuição dinâmica

  • Permitir trafego para DCOM port (135/tcp/udp)
  • Permitir a Range (TCP e UDP) 1025 a 5000 no caso do sistema operativo da máquina de destino ser Windows 2000, Windows XP ou Windows 2003.
  • Permitir a Range (TCP e UDP) 49152 a 65535 no caso do sistema operativo da máquina de destino ser Windows Vista ou superior.

3.2. Atribuição de porta fixa

  • Permitir trafego para DCOM port (135/tcp/udp).
  • Permitir o trafego para a porta 12345/tcp/udp.
  • Forçar uma porta (eg, 12345/tcp) para comunicações WMI em cada máquina windows:

C:\> winmgmt -standalonehost
C:\> net stop “Windows Management Instrumentation”
C:\> net start “Windows Management Instrumentation”
C:\> netsh firewall add portopening TCP 12345 WMIFixedPort

  1. Utilizador

Criar um novo utilizador com as características seguintes:

  • Aceder a Server Manger -> Tools -> Computer Management;
  • Na janela Computer Management expandir Local Users and Groups, clicar com o botão direito na pasta Users e escolher a opção New User;
  • Depois de criar o utilizador ele tem de pertencer aos seguintes grupos:
    • Distributed COM Users
    • Performace Log Users
  1. Configuração de políticas para o novo utilizador

A configuração de políticas para o novo utilizador poderá ser efetuada em três contextos distintos: apenas na Máquina Local (5.1) ou para todo o Domínio (5.2), sendo neste ultimo caso necessário efetuar as definições nos Controladores de Domínio.

5.1. Definição de políticas apenas para a Máquina Local

  • Clique em Start, clique em Run, digite msc e clique em OK.
  • Selecionar Security Settings expandir, Local Policies expandir e selecionar User Rights Assignment.
  • Associar as seguintes políticas ao utilizador criado:
    • Act as part of the operating system;
    • Log on as a batch job;
    • Log on as a service;
    • Replace a process level token.

5.2. Definição de políticas para todo o Domínio

  • Clique em Start, clique em Run, digite msc e clique em OK.
  • Selecionar Security Settings expandir, Local Policies expander e selecionar User Rights Assignment.
  • Depois é necessário acrescentar o utilizador que criamos nas seguintes políticas:
    • Act as part of the operating system;
    • Log on as a batch job;
    • Log on as a service;
    • Replace a process level token.
  1. Permissões de WMI namespaces (Root e CIMV2)

Existem dois namespaces para os quais terão de ser dadas permissões ao novo utilizador a fim de permitir pedidos WMI: Root (5.1) e CIMV2 (5.2).

6.1. Configuração de permissões para o Namespace Root

  • Clique em Start, clique em Run, digite msc e clique em OK.
  • Clique com o botão direito no WMI Control e clique na opção Properties.
  • Navegar até ao separador Security, selecionar Root e carregar no botão Security.
  • Acrescentar o utilizador que criamos e dar as seguintes permissões:
    • Execute Methods
    • Full Write (opcional)
    • Partial Write (opcional)
    • Provider Write (opcional)
    • Enable Account
    • Remote Enable
    • Read Security
    • Edit Security (opcional)

6.2. Configuração de permissões para o Namespace CIMV2

  • Clique em Start, clique em Run, digite msc e clique em OK.
  • Clique com o botão direito no WMI Control e clique na opção Properties.
  • Navegar até ao separador Security, selecionar Root, abrir a árvore, selecionar CIMV2 e carregar no botão Security.
  • Acrescentar o utilizador que criamos e dar as seguintes permissões:
    • Execute Methods
    • Full Write (opcional)
    • Partial Write (opcional)
    • Provider Write (opcional)
    • Enable Account
    • Remote Enable
    • Read Security
    • Edit Security (opcional)

  1. Permissões no DCOM

7.1. Verificar a configuração do DCOM:

  • Execute no Run o comando DCOMcnfg
  • Clique em Component Services.
  • Expandir
  • Carregar com o botão direito em My Computer e selecione Properties.
  • Certifique-se que está ativo o Enable Distributed COM no computador.
  • Clique na tab Com Security.
  • Clique no botão Edit Limits localizado abaixo do Launch and Activation Permissions.
  • Na caixa Launch Permissions certificar-se que a conta de utilizador ou grupo está na listado de Groups or user names.
  • Na caixa Launch Permissions selecione a conta de utilizador ou grupo na lista de Group or user names e selecionar Remote Launch e Remote Activation e clique OK.

7.2. Configuração do DCOM no remote access:

  • Execute no Run o comando DCOMcnfg
  • Clique em Component Services.
  • Expandir
  • Carregar com o botão direito em My Computer e selecione Properties.
  • Clique na tab Com Security.
  • Clique no botão Edit Limits, localizado abaixo de Access Permissions.
  • No Access Permissions selecionar ANONYMOUS LOGON na lista Groups or user names.
  • Na coluna Allow debaixo de Permissions for User selecionar Remote Access e clique OK.

 

Autor: Nuno Barros @ SysValue