Análise de uma grave vulnerabilidade de segurança da Microsoft: pode levar ao controle total do sistema Windows
Recentemente, um patch de segurança da Microsoft corrigiu uma grave vulnerabilidade de escalonamento de privilégios win32k. Esta vulnerabilidade existe principalmente em versões mais antigas do sistema Windows e parece não afetar o Windows 11. Este artigo analisará como os atacantes podem continuar a explorar esse tipo de vulnerabilidade no contexto de aprimoramento contínuo das medidas de segurança atuais.
Contexto da Vulnerabilidade
Este é um "zero-day" vulnerabilidade não divulgada, que pode ser explorada por hackers sem que o sistema perceba, causando grande destruição. Através dessa vulnerabilidade, os atacantes podem obter o controle total do sistema Windows, resultando em roubo de informações pessoais, falhas no sistema, perda de dados e outras consequências graves. Para os usuários de Web3, tanto as chaves privadas quanto os ativos digitais podem ser roubados. Em uma escala maior, essa vulnerabilidade pode até afetar todo o ecossistema Web3 baseado em infraestrutura Web2.
Análise de Patch
A análise do código do patch revelou que o problema surgiu porque a contagem de referências de um objeto foi tratada uma vez a mais. Ao examinar os comentários do código mais antigo, descobriu-se que o código anterior apenas bloqueava o objeto da janela, não bloqueando o objeto do menu dentro da janela, o que pode ter levado a uma referência incorreta do objeto do menu.
Verificação de Vulnerabilidades
Construímos uma estrutura de menu multi-nível especial para ativar a vulnerabilidade. Os pontos chave incluem:
O menu de nível mais baixo deve ser do tipo menu do sistema
O menu de nível superior também deve ser um menu do sistema, mas é necessário remover itens de menu do sistema específicos.
Remover a relação de referência do menu de camada intermediária
Adicionar um menu de camada intermédia para garantir que o processo de liberação decorra sem problemas.
Desta forma, é possível libertar o objeto de menu de destino quando a função chave retorna, tornando as referências subsequentes inválidas.
Exploração de Vulnerabilidades
A ideia geral é usar essa vulnerabilidade para realizar leituras e gravações de memória arbitrárias, a fim de modificar o token do processo e obter permissões de sistema. Os principais passos incluem:
Utilizar a vulnerabilidade UAF para controlar o tamanho dos dados adicionais da janela (cbwndextra)
Construir um layout de memória estável
Implementar primitivas de leitura e escrita confiáveis
Localizar e modificar o token do processo
O ponto chave é como realizar a primeira gravação de dados através de uma vulnerabilidade. No final, escolhemos usar um sinalizador na função de redesenho da janela para implementar isso.
Para garantir a estabilidade, projetámos cuidadosamente uma disposição de memória contínua, incluindo vários objetos de janela e objetos de classe de janela. A verificação da disposição da memória se conforma com o esperado é feita através do endereço do manipulador de núcleo vazado.
Em termos de leitura e escrita de primitivas, utilizamos APIs como GetMenuBarInfo e SetClassLongPtr. Exceto pela modificação do token, a maioria das operações de escrita são realizadas através do objeto de classe do primeiro objeto de janela.
Resumo
A Microsoft está a reestruturar o código relacionado com o win32k usando Rust, no futuro este tipo de vulnerabilidades pode ser completamente resolvido.
O processo de exploração de vulnerabilidades é relativamente simples, dependendo principalmente da divulgação do endereço do manipulador de pilha da área de trabalho.
A descoberta desta vulnerabilidade pode ter sido favorecida por uma detecção de cobertura de código mais robusta.
A deteção de disposições de memória e de leituras e gravações de dados anómalos ajuda a descobrir este tipo de vulnerabilidades.
De um modo geral, apesar de a segurança do Windows estar em constante melhoria, para sistemas mais antigos, essas vulnerabilidades ainda representam um sério risco à segurança. Todas as partes envolvidas precisam permanecer vigilantes e corrigir as vulnerabilidades do sistema prontamente.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
7 Curtidas
Recompensa
7
4
Repostar
Compartilhar
Comentário
0/400
DuckFluff
· 08-11 10:17
Não é o meu win11~ Para quê ter medo?
Ver originalResponder0
DuskSurfer
· 08-11 10:16
Desinstalei diretamente este sistema win, o Lin Bob não dá conta.
Ver originalResponder0
SchrodingerAirdrop
· 08-11 10:14
Já era hora de trocar de Mac!
Ver originalResponder0
BridgeJumper
· 08-11 09:56
Aproveite enquanto a Microsoft não consertou e corra para o Mac.
Vulnerabilidade crítica do sistema Windows exposta: os ativos da chave privada dos usuários do Web3 podem ser roubados.
Análise de uma grave vulnerabilidade de segurança da Microsoft: pode levar ao controle total do sistema Windows
Recentemente, um patch de segurança da Microsoft corrigiu uma grave vulnerabilidade de escalonamento de privilégios win32k. Esta vulnerabilidade existe principalmente em versões mais antigas do sistema Windows e parece não afetar o Windows 11. Este artigo analisará como os atacantes podem continuar a explorar esse tipo de vulnerabilidade no contexto de aprimoramento contínuo das medidas de segurança atuais.
Contexto da Vulnerabilidade
Este é um "zero-day" vulnerabilidade não divulgada, que pode ser explorada por hackers sem que o sistema perceba, causando grande destruição. Através dessa vulnerabilidade, os atacantes podem obter o controle total do sistema Windows, resultando em roubo de informações pessoais, falhas no sistema, perda de dados e outras consequências graves. Para os usuários de Web3, tanto as chaves privadas quanto os ativos digitais podem ser roubados. Em uma escala maior, essa vulnerabilidade pode até afetar todo o ecossistema Web3 baseado em infraestrutura Web2.
Análise de Patch
A análise do código do patch revelou que o problema surgiu porque a contagem de referências de um objeto foi tratada uma vez a mais. Ao examinar os comentários do código mais antigo, descobriu-se que o código anterior apenas bloqueava o objeto da janela, não bloqueando o objeto do menu dentro da janela, o que pode ter levado a uma referência incorreta do objeto do menu.
Verificação de Vulnerabilidades
Construímos uma estrutura de menu multi-nível especial para ativar a vulnerabilidade. Os pontos chave incluem:
Desta forma, é possível libertar o objeto de menu de destino quando a função chave retorna, tornando as referências subsequentes inválidas.
Exploração de Vulnerabilidades
A ideia geral é usar essa vulnerabilidade para realizar leituras e gravações de memória arbitrárias, a fim de modificar o token do processo e obter permissões de sistema. Os principais passos incluem:
O ponto chave é como realizar a primeira gravação de dados através de uma vulnerabilidade. No final, escolhemos usar um sinalizador na função de redesenho da janela para implementar isso.
Para garantir a estabilidade, projetámos cuidadosamente uma disposição de memória contínua, incluindo vários objetos de janela e objetos de classe de janela. A verificação da disposição da memória se conforma com o esperado é feita através do endereço do manipulador de núcleo vazado.
Em termos de leitura e escrita de primitivas, utilizamos APIs como GetMenuBarInfo e SetClassLongPtr. Exceto pela modificação do token, a maioria das operações de escrita são realizadas através do objeto de classe do primeiro objeto de janela.
Resumo
A Microsoft está a reestruturar o código relacionado com o win32k usando Rust, no futuro este tipo de vulnerabilidades pode ser completamente resolvido.
O processo de exploração de vulnerabilidades é relativamente simples, dependendo principalmente da divulgação do endereço do manipulador de pilha da área de trabalho.
A descoberta desta vulnerabilidade pode ter sido favorecida por uma detecção de cobertura de código mais robusta.
A deteção de disposições de memória e de leituras e gravações de dados anómalos ajuda a descobrir este tipo de vulnerabilidades.
De um modo geral, apesar de a segurança do Windows estar em constante melhoria, para sistemas mais antigos, essas vulnerabilidades ainda representam um sério risco à segurança. Todas as partes envolvidas precisam permanecer vigilantes e corrigir as vulnerabilidades do sistema prontamente.