Análise de vulnerabilidades 0day do Windows: da UAF do menu à elevação de privilégios do sistema

robot
Geração de resumo em curso

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

Introdução

No mês passado, o patch de segurança da Microsoft incluiu uma vulnerabilidade de elevação de privilégios win32k explorável, que existe apenas em versões anteriores do Windows. Este artigo analisará como os atacantes continuam a explorar essa vulnerabilidade, apesar da constante melhoria das medidas de segurança. O ambiente de análise é o Windows Server 2016.

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

Contexto da Vulnerabilidade

A vulnerabilidade 0day refere-se a vulnerabilidades que não foram divulgadas nem corrigidas, podendo ser exploradas maliciosamente para causar grandes danos. A vulnerabilidade 0day do sistema Windows descoberta recentemente pode permitir que hackers obtenham controle total do sistema, com consequências que incluem, mas não se limitam a:

  • Roubo de informações pessoais
  • Falha do sistema, perda de dados
  • Perda financeira
  • Injeção de malware
  • A chave privada foi roubada
  • Ativos digitais foram transferidos

De uma forma mais ampla, essa vulnerabilidade pode afetar todo o ecossistema Web3 que opera com base na infraestrutura Web2.

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

Análise de Patch

O patch corrigiu um problema de múltiplas manipulações da contagem de referências de objetos. A análise dos comentários do código-fonte inicial revelou que o código original apenas bloqueava o objeto da janela, sem bloquear o objeto do menu na janela, o que poderia levar a referências incorretas ao objeto do menu.

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

Análise de Exploração de Vulnerabilidades

A análise revelou que na função xxxEnableMenuItem, a função MenuItemState retorna dois tipos possíveis de menus: o menu principal da janela ou um submenu dentro do menu.

Construir uma estrutura de menu aninhado em múltiplas camadas e definir propriedades específicas para contornar a deteção de funções. Ao retornar ao nível do utilizador na função xxxRedrawTitle, eliminar a relação de referência entre os menus e libertar o objeto de menu alvo. Por fim, na função xxxEnableMenuItem, fazer referência a um objeto de menu que já não é válido.

Numen exclusivo: vulnerabilidade 0day da Microsoft pode revirar o jogo Web3 a nível de sistema + físico

Implementação de Exploração de Vulnerabilidades

Abordagem geral

Considerar duas direções de utilização:

  1. Executar código shellcode
  2. Modificar o endereço do token utilizando primitivas de leitura e escrita

Escolha a segunda opção, dividindo o processo em duas questões:

  • Como explorar a vulnerabilidade UAF para controlar o valor de cbwndextra
  • Como implementar primitivas de leitura e escrita estáveis

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

escrita de dados iniciais

Utilizar o objeto de nome da janela na classe WNDClass para ocupar e libertar o objeto de menu disponível. Encontrar a oportunidade de escrever dados na função xxxRedrawWindow.

A escolha final é escrever o parâmetro cb-extra da HWNDClass usando a operação AND 2 com a flag.

Numen exclusivo: vulnerabilidade 0day da Microsoft pode desmantelar o jogo Web3 a nível de sistema e físico

Layout de memória estável

Desenhar três objetos HWND consecutivos, liberar o objeto do meio e ocupar com o objeto HWNDClass. Os objetos HWND na frente e atrás são usados para:

  • Fornecer parâmetros de verificação de logotipo
  • Fornecer um meio de leitura e escrita de primitivos

Determinar com precisão a ordem de arranjo dos objetos através do endereço do manipulador do núcleo vazado.

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

implementação de leitura e escrita de primitivas

  • Qualquer leitura: GetMenuBarInfo()
  • Escrever à vontade:SetClassLongPtr()

Além da escrita de TOKEN, outras operações de escrita utilizam o objeto da classe do primeiro objeto da janela.

Resumo

  1. A vulnerabilidade win32k pode ser eliminada nas novas versões do Windows.

  2. O processo de exploração de vulnerabilidades é relativamente simples, dependendo principalmente do vazamento do endereço do manipulador de pilha de desktop.

  3. A descoberta de vulnerabilidades pode depender de uma detecção de cobertura de código mais abrangente.

  4. A deteção de leituras e gravações de memória anómalas ajuda a descobrir vulnerabilidades semelhantes

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

TOKEN6.55%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • 3
  • Republicar
  • Partilhar
Comentar
0/400
MidnightTradervip
· 9h atrás
Outro grande buraco, o Windows realmente não está a funcionar.
Ver originalResponder0
TokenDustCollectorvip
· 9h atrás
A vulnerabilidade da Microsoft é um pouco grave, até a chave privada pode ser roubada.
Ver originalResponder0
HalfIsEmptyvip
· 9h atrás
Ai, novamente capotou~
Ver originalResponder0
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)