Browse By

Ikeext-Privesc – Windows IKEEXT DLL Hijacking Exploit Tool

Ikeext-Privesc 

Esta ferramenta destina-se a detectar e explorar automaticamente a vulnerabilidade DLL em falta do Serviço de Módulos de Chaveiro IPsec do IKE e do AuthIP (IKEEXT).

 

Descrição
Uma grande fraqueza está presente no Windows Vista, 7, 8, Server 2008, Server 2008 R2 e Server 2012, que permite que qualquer usuário autenticado obtenha privilégios de sistema sob certas circunstâncias.
No Windows há um serviço chamado IKEEXT (IKE e AuthIP IPsec Keyring Modules), que é executado como SYSTEM e tenta carregar uma DLL que não existe. A ordem de pesquisa de DLL padrão do Windows inclui vários diretórios de sistema e termina com pastas PATH. Para simplificar, se uma dessas pastas estiver configurada com permissões fracas, qualquer usuário autenticado poderá implantar uma DLL maliciosa para executar código como SYSTEM e, assim, elevar seus privilégios.
IKEEXT tentando carregar ‘wlbsctrl.dll’:

Uso

Este script do PowerShell consiste em 2 Cmdlets:
  • Invoke-IkeextCheck – Verifica apenas se a máquina está vulnerável.
  • Invoke-IkeextExploit – Se a máquina estiver vulnerável, explore-a descartando uma DLL especificamente criada para a primeira pasta fraca.
Detecção
O cmdlet Invoke-IkeextCheck executa as seguintes verificações:
  • Versão do sistema operacional – Se o sistema operacional for o Windows Vista / 7/8, a máquina estará potencialmente vulnerável.
  • Status e tipo de início do IKEEXT – Se o serviço estiver ativado, a máquina estará potencialmente vulnerável (padrão).
  • PATH pastas com permissões fracas – Se pelo menos uma pasta for encontrada, a máquina estará potencialmente vulnerável.
  • wlbsctrl.dll já está presente em alguma pasta do sistema (ou seja, uma pasta onde as DLLs podem ser carregadas)? – Se wlbsctrl.dll não existir, a máquina é potencialmente vulnerável (padrão).

Sintaxe:

Invoke-IkeextCheck [-Verbose] 

Exemplo:

PS C:\temp> . .\Ikeext-Privesc.ps1
PS C:\temp> Invoke-IkeextCheck -Verbose

Explorar

Se a máquina estiver vulnerável, o Cmdlet Invoke-IkeextExploit realizará o seguinte:
  • Dependendo do tipo de início do IKEEXT:
    • AUTO – Os arquivos de exploração serão descartados para a primeira pasta PATH fraca, desde que o switch ‘-Force’ tenha sido definido na linha de comando (substituição de segurança).
    • MANUAL – Os arquivos de exploração serão descartados para a primeira pasta PATH fraca. Em seguida, o início do serviço será acionado ao tentar abrir uma conexão VPN fictícia (usando rasdial ).
  • Os seguintes arquivos de exploração serão descartados para a primeira pasta vulnerável:
    • wlbsctrl.dll – Uma DLL especificamente criada (32 e 64 bits), que inicia um novo processo CMD e executa um arquivo BATCH.
    • wlbsctrl_payload.bat – O arquivo BATCH que será executado.
  • Carga útil do lote:
    • Padrão – Uma carga de BATCH padrão é incluída neste script. Ele usará net user e net localgroup para criar um novo usuário ( hacker com senha SuperP @ ss123 ) e adicioná-lo ao grupo de administradores locais (o nome do grupo é automaticamente recuperado pelo script).
    • Personalizado – Um conjunto personalizado de comandos pode ser especificado usando o parâmetro -Payload. \ Path \ To \ File.txt e um arquivo contendo um comando por linha.
  • Arquivo de log – a saída de cada carga de payload é redirecionada para um arquivo de log localizado na mesma pasta das DLLs. Seu nome será algo como wlbsctrl_xxxxxxxx.txt . Portanto, se esse arquivo não for criado, significa que a carga útil não foi executada.

Sintaxe:

Invoke-IkeextExploit [-Verbose] [-Force] [[-Payload] <String>]

Exemplo:

PS C:\temp> . .\Ikeext-Privesc.ps1
PS C:\temp> Invoke-IkeextExploit


Ponte High-Tech de Créditos – Frédéric Bourla, que inicialmente descobriu a vulnerabilidade e a divulgou em 9 de outubro de 2012. – https://www.htbridge.com/advisory/HTB23108

Remediação
Antes de tudo, é importante observar que esta vulnerabilidade foi corrigida no Windows 8.1 e superior. Nessas versões do Windows, a pesquisa wlbsctrl.dll está limitada a C: \ Windows \ System32 \ .
Se você está preso com o Windows 7 / Server 2008R2 por causa de problemas de compatibilidade, por exemplo, várias medidas de contador podem ser aplicadas:
  1. Pastas PATH com permissões fracas – Alguns aplicativos são instalados diretamente em C: \ e se adicionam à variável de ambiente PATH. Por padrão, as pastas criadas em C: \ podem ser gravadas por qualquer usuário autenticado, portanto, descarte esses privilégios.
  2. Desabilitar IKEEXT – Na maioria dos casos, o IKEEXT pode simplesmente ser desativado com a aplicação de um GPO. Essa pode ser uma boa solução para servidores, mas não é recomendada para estações de trabalho.
  3. Implante sua própria DLL – A implantação de um wlbsctrl.dll fictício em C: \ Windows \ System32 \, por exemplo, é uma solução eficiente, pois esse diretório tem uma prioridade mais alta que as pastas PATH.
Download

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.