Bypassing em GPO´s do Windows
Este artigo visa mostrar uma forma simples de se burlar algumas GPO´s do Windows. Inicialmente serão mostradas apenas 3 detalhadamente, mas antes, vamos entender o que são GPO´s.
GPO´s – O que são?
Há muito anos, a Microsoft introduziu o conceito “Group Policy” para centralizar o e facilitar o gerenciamento de usuário e estações de trabalho .
Dentro da Group Policy, temos vários objetos que visam controlar configurações locais da estação do usuário, estes controles são conhecidos como Group Policy Objects ou simplesmente GPO´s, que são o motivo desta pesquisa.
GPO´s a serem burlados
Existe um grande quantidade de objetos que podem ser alterados dentro de uma Group Policy, inicialmente foram selecionados 3 para realização de testes.
São eles:
Impedir acesso ao prompt de comando.
Impedir acesso a ferramenta de edição de registro
Remover Gerenciador de tarefas
O acesso a estes itens pode ser feito usando a ferramenta gpedit.msc.
Os dois primeiros estão em:
Configuração do usuário -> Systema
Já a opção para o Gerenciador de tarefas esta em:
Configuração -> Sistema -> Opções de Ctrl+Alt+Del
Iniciando à análise
Para saber como uma GPO atua no sistema foi utilizado o software Process Monitor, que nada mais é um software que monitora o comportamento de outros softwares. Para esta caso, o binário monitorado será o mmc.exe ( Microsoft Manager Console) pois ele é a interface para arquivos .msc (gpedit.msc )
Basta criar um filtro como na imagem abaixo:
Com o procmon em funcionamento foi possível entender como o mmc age e pôde se identificada a chave de registro usada para controlar as 3 GPO´s. Para isso, cada objeto foi habilitado e desabilitado, capturando assim seu comportamento:
Clicando com botão direito da chave, em seguida em “Jump to”, é possível acessar o registro diretamente:
Este processo foi apenas encontrar detalhes de como a GPO atua no sistema e todo processo foi feito com um usuário administrador. Agora que já se tem o conhecimento como a GPO atua, o passo seguinte é burlar a proteção utilizando um usuário comum.
Burlando a GPO
Depois que a GPO de restrição de execução do prompt de comando foi habilitada ao tentar acesso e exibida a seguinte mensagem:
Portanto, temos certeza que a GPO foi aplicada com sucesso. (Leve em consideração que neste momento já não é mais utilizado um usuário com poderes administrativos .)
Como foi visto no tópico anterior, existe uma entrada do registro que controla a permissão, chamada DisableCMD, logo, o binário cmd.exe necessariamente precisa saber onde esta chave se encontra no registro, ler o seu valor pra assim permitir ou não a execução.
Para o próximo, passo é imprescindível criar uma copia de segurança do arquivo cmd.exe!
Copie-o em um diretório onde seu usuário(sem poderes administrativos) tenha permissão de gravar.
Alterando o binário:
Depois de feita a copia, a alteração do binário poderá ser feita de várias formas, serão citadas 3:
Editor hexa:
Abra seu cmd.exe em qualquer editor hexa e procure pela string DisableCMD, altere apenas um byte e salve. Exemplo BisableCMD (isso mesmo, troque D por um B)
Edit do Windows: (deve-se marcar abrir em modo binário)
Patcher
Como mostrado na imagem, este programa irá gerar um executável que buscará a string DisableCMD dentro do cmd.exe e somente na primeira ocorrência irá substituir apenas um byte, de D para C
Após alterado ao byte, execute normalmente o seu prompt de comando mesmo com a GPO habilitada.
Conclusão:
O procedimento para burlar é bem simples pelo fato dos binários possuírem as strings hardcoded no código fonte e além disso, não terem qualquer tipo ofuscação após serem compilados.
Esta técnica foi testada em máquinas Windows XP, Windows 2003 e Windows 2008 com sucesso.
Para as GPO´s de acesso ao registro (regedit) e TaskManager o procedimento é o mesmo, apenas mudando as strings encontradas em cada binário.