Análise de vulnerabilidades 0day no sistema Windows: da elevação de privilégios no win32k aos riscos de segurança do Web3

robot
Geração de resumo em curso

Análise e Exploração de Vulnerabilidades 0day no Sistema Windows da Microsoft

Recentemente, um patch de segurança lançado pela Microsoft corrigiu uma vulnerabilidade de elevação de privilégios do win32k que está sendo ativamente explorada. Essa vulnerabilidade afeta principalmente versões anteriores do sistema Windows, e parece não ser acionável no Windows 11. Este artigo analisará como os atacantes podem continuar a explorar esse tipo de vulnerabilidade no atual ambiente de segurança. A análise a seguir foi realizada com base em um ambiente Windows Server 2016.

Numen Exclusivo: Vulnerabilidade 0day da Microsoft pode desmantelar o jogo Web3 em sistema + nível físico

Contexto da Vulnerabilidade

A vulnerabilidade 0day refere-se a uma falha de segurança não divulgada e não corrigida, semelhante ao conceito de negociação T+0 nos mercados financeiros. Uma vez que esse tipo de vulnerabilidade é explorado maliciosamente, pode causar danos graves. A vulnerabilidade 0day do sistema Windows descoberta recentemente permite que atacantes tenham controle total do sistema, levando a ataques como roubo de informações, destruição do sistema e implantação de malware. Do ponto de vista do Web3, isso pode resultar no roubo de chaves privadas, transferência de ativos digitais e até mesmo ameaçar todo o ecossistema Web3 baseado na infraestrutura do Web2.

Numen exclusivo: a vulnerabilidade 0day da Microsoft pode desmantelar o jogo Web3 em níveis sistêmicos e físicos

Análise de Patch

A análise do código do patch revelou que ele corrigiu principalmente um problema de manipulação da contagem de referências de objetos. Com base nos comentários do código fonte do win32k, pode-se perceber que o código original apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro da janela, o que poderia levar a uma referência incorreta do objeto do menu.

Numen Exclusivo: Vulnerabilidade 0day da Microsoft pode desmantelar o jogo Web3 em nível de sistema + físico

Prova de Conceito de Exploração de Vulnerabilidades(PoC)

A análise revelou que a função xxxEnableMenuItem pode retornar o estado do MenuItem principal da janela ou de um submenu. Construímos uma estrutura de menu especial com quatro camadas, que contém as seguintes características:

  1. O ID do menu de camada mais baixa D deve ser do tipo de menu do sistema.
  2. O menu de nível superior A também deve ser um menu do sistema, mas deve-se remover os itens com o mesmo ID que o menu D.
  3. Remover a referência ao menu C no menu B.
  4. A presença do Menu B parece ajudar à liberação do Menu C.

Ao acionar a vulnerabilidade, ao retornar à camada de usuário xxxRedrawTitle, remove a associação do menu C e B, liberando o menu C. Isso leva a referências inválidas ao objeto do menu C na função xxxEnableMenuItem.

Numen exclusivo: vulnerabilidade 0day da Microsoft pode derrubar a camada Web3 no sistema + físico

Exploração de vulnerabilidades ( Exp ) implementação

Ideia geral

Considerar duas possíveis direções de utilização:

  1. Executar shellcode: referência a vulnerabilidades anteriores como a CVE-2017-0263, mas pode enfrentar muitos obstáculos nas versões mais recentes do Windows.

  2. Utilizar primitivas de leitura e escrita para modificar o token: nos últimos anos ainda existem exp públicos que podem ser referenciados, sendo necessário resolver principalmente o problema de como controlar pela primeira vez o valor de cbwndextra.

Adotamos a segunda opção, dividindo o exp em dois passos: controlar o valor cbwndextra e estabelecer uma primitiva de leitura e escrita estável.

Numen Exclusivo: Vulnerabilidade 0day da Microsoft pode desmantelar o jogo Web3 em nível de sistema + físico

primeira escrita de dados

Utilize o objeto de nome da classe de janela WNDClass para ocupar e liberar a memória do objeto de menu. Encontre a posição onde os dados podem ser escritos na função xxxRedrawWindow, controlando os dados de memória do objeto anterior para satisfazer a verificação de sinalizadores na função.

Numen exclusivo: falha 0day da Microsoft pode derrubar o jogo Web3 em nível de sistema + físico

disposição de memória estável

Desenhar o layout de memória de três objetos HWND de 0x250 bytes em sequência, liberar o objeto do meio e ocupar com o objeto HWNDClass. Os objetos HWND antes e depois são usados para verificar através de funções e implementar primitivas de leitura e escrita. Precisar a disposição dos objetos através da divulgação do endereço do manipulador do núcleo.

Numen Exclusivo: Vulnerabilidade 0day da Microsoft pode desmantelar o jogo Web3 a nível de sistema + físico

implementação de leitura e escrita de primitivas

Qualquer leitura usa a função GetMenuBarInfo, qualquer escrita usa a função SetClassLongPtr. Exceto a escrita de TOKEN, todas as outras operações de escrita são realizadas através do objeto class do primeiro objeto de janela.

Numen Exclusivo: Vulnerabilidade 0day da Microsoft pode desmantelar o jogo Web3 em sistema + camada física

Conclusão

  1. A Microsoft está a utilizar Rust para reestruturar o código win32k, o que pode resolver completamente este tipo de vulnerabilidades no futuro.

  2. Este tipo de exploração de vulnerabilidades depende principalmente da divulgação do endereço do manipulador de pilha da área de trabalho, representando ainda um risco de segurança para sistemas mais antigos.

  3. A descoberta da vulnerabilidade pode ter sido beneficiada por uma detecção de cobertura de código mais abrangente.

  4. A monitorização de layouts de memória anómalos e da leitura e escrita de dados de janelas ajuda a detectar vulnerabilidades semelhantes.

Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 6
  • Partilhar
Comentar
0/400
TestnetNomadvip
· 9h atrás
O que você está falando sobre Rust?
Ver originalResponder0
StealthDeployervip
· 9h atrás
Já uso o Linux há muito tempo. Inteligente.
Ver originalResponder0
CryptoMotivatorvip
· 9h atrás
Mais uma vez, a Microsoft realmente mantém essa tradição de bugs.
Ver originalResponder0
LiquidatedDreamsvip
· 9h atrás
Usar a Microsoft sempre é uma armadilha.
Ver originalResponder0
MondayYoloFridayCryvip
· 9h atrás
Sou o investidor de retalho mais fraco do Web3

Comentários sobre o artigo:

rust pode salvar o win? Isso me fez rir.
Ver originalResponder0
CrashHotlinevip
· 9h atrás
O lixo do winxp deu problemas novamente.
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)