
Ivanti Secure Access (anteriormente Pulse Secure) escalada de privilégios Cobalt Strike BOF (CVE-2023-35080).
BOF do Cobalt Strike para escalação de privilégio no Ivanti Secure Access (anteriormente Pulse Secure) (CVE-2023-35080).
Exploit por Alex e BOF por Tijme. Tornado possível pela Northwave Cyber Security
Este é um Beacon Object File (BOF) do Cobalt Strike (CS) e um executável que explora o cliente VPN Ivanti Secure Access (anteriormente Pulse Secure) (CVE-2023-35080). A partir do modo de usuário com baixos privilégios, ele explora uma vulnerabilidade no driver do kernel para substituir os privilégios do token do processo beacon pelos privilégios do token de um processo de sistema. O link simbólico do driver do kernel possui uma ACL que define que Everyone pode abrir um handle para ele. A pesquisa que levou à descoberta desta vulnerabilidade foi apresentada no RedTreat 2023 e no BSIDES London 2023 (apresentação).
O exploit foi desenvolvido no Windows 10 Pro 22H2 10.0.19045 (x64). Posteriormente foi modificado e testado para funcionar no Windows 11 Pro 23H2 22631 (x64). Outras versões do Windows podem não ser suportadas de imediato. Lista completa de versões do Windows testadas:
Clone este repositório primeiro. Em seguida, revise o código, compile a partir do código-fonte (requer MinGW) e use-o no Cobalt Strike ou como um arquivo PE independente.
make
Importante! Execute os seguintes passos em ordem (a partir do modo de usuário com baixos privilégios):
Primeiro, certifique-se de que o driver vulnerável está em execução. Se não estiver, não se preocupe! Você pode iniciá-lo a partir do modo de usuário com baixos privilégios. O nome do driver começa com jnprTdi_ e pode ser encontrado em HKLM\SYSTEM\CurrentControlSet\Services. Ele está sempre instalado quando o cliente VPN é instalado, mas não está em execução por padrão.
O driver vulnerável inicia quando um usuário (com baixos privilégios) na máquina vítima se conecta a um servidor VPN (falso) que tem a opção TDI fail-over ativada. Podemos iniciar o driver facilmente replicando esse comportamento, já que comprometemos um sistema e estamos executando malware nele. Siga este guia para configurar seu próprio dispositivo falso com TDI fail-over ativado.
"%programfiles(x86)%\Common Files\Pulse Secure\Integration\pulselauncher.exe" -stop
Se o driver estiver em execução e o cliente VPN parado, carregue o script PulsePrivEsc.cna usando o Gerenciador de Scripts do Cobalt Strike. Em seguida, use o comando abaixo para executar o exploit.
$ pulse_priv_esc
Alternativamente (e para fins de teste), você pode executar diretamente o executável compilado. Isso abrirá um prompt de comando como SYSTEM.
$ .\PulsePrivEsc.x64.exe
Problemas ou novos recursos podem ser relatados através do rastreador de problemas. Certifique-se de que seu problema ou recurso ainda não foi relatado por outra pessoa antes de enviar um novo.
Copyright (c) 2023 Northwave Cyber Security. Todos os direitos reservados.