Análise de vulnerabilidades do sistema Windows da Microsoft: pode ameaçar a segurança do ecossistema Web3
No mês passado, a atualização de segurança da Microsoft incluiu uma vulnerabilidade de elevação de privilégios win32k explorável, que parece existir apenas em versões anteriores do sistema Windows. Este artigo analisará como os atacantes podem continuar a explorar essa vulnerabilidade no contexto de melhorias contínuas nas medidas de segurança. O processo de análise foi concluído no ambiente do Windows Server 2016.
Esses tipos de vulnerabilidades 0day, uma vez descobertas, podem ser exploradas maliciosamente sem serem detectadas, apresentando uma grande destruição. Através dessa vulnerabilidade, hackers podem obter controle total sobre o sistema Windows. As consequências do controle incluem roubo de informações pessoais, falhas no sistema, perda de dados, perdas financeiras e implantação de malware. Impactos em pequena escala podem levar ao roubo de chaves privadas e à transferência de ativos digitais, enquanto um impacto em larga escala pode ameaçar todo o ecossistema Web3 que opera com base na infraestrutura Web2.
Análise de Patch
A análise do patch revelou que o problema parece ser que a contagem de referências de um objeto foi processada uma vez a mais. De acordo com os comentários no código-fonte anterior, o código antigo apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro do objeto da janela, o que pode ter causado uma referência errada ao objeto do menu.
Verificação de Vulnerabilidades
Construímos uma estrutura de menu aninhado especial em múltiplas camadas e definimos algumas condições específicas para ativar a vulnerabilidade:
O ID do menu mais interno deve ser do tipo menu do sistema
O menu mais externo também deve ser o menu do sistema, mas deve-se remover itens específicos do menu do sistema.
Remover a referência de nível pai do menu intermediário
Adicionar camadas de menu intermediárias extras para garantir o sucesso da liberação
Remover a referência da relação do menu chave ao retornar ao nível do usuário na função, para que seja liberada com sucesso. Assim, quando a função do núcleo subsequente referenciar o objeto do menu, surgirão problemas.
Exploração de Vulnerabilidades
Existem duas direções principais para a utilização do pensamento:
Executar código shellcode - Esta abordagem pode ter várias limitações em versões mais recentes do Windows.
Modificar o endereço do token utilizando operações de leitura e escrita - este método possui uma melhor versatilidade.
Escolhemos a segunda opção, dividindo todo o processo de utilização em dois passos-chave:
Utilizar a vulnerabilidade UAF para controlar o valor de cbwndextra
Obter primitivos de leitura e escrita estáveis
Para realizar a primeira gravação de dados, utilizamos o objeto de nome da classe de janela para ocupar a memória do objeto de menu liberado e encontramos a estrutura de endereço onde podemos gravar quaisquer dados. No final, escolhemos gravar os dados com base na verificação de um bit de sinalização em uma função específica.
Para obter uma disposição de memória estável, projetamos três objetos de janela de tamanho idêntico em sequência, liberando o objeto do meio e ocupando-o com o objeto da classe janela. Através do endereço do identificador do núcleo vaza na memória heap, podemos determinar com precisão se a disposição dos objetos está de acordo com o esperado.
Em termos de leitura e escrita de primitivas, usamos GetMenuBarInfo() para implementar leitura arbitrária e SetClassLongPtr() para implementar escrita arbitrária. Além da escrita de tokens, todas as outras operações de escrita utilizam o objeto de classe do primeiro objeto da janela.
Resumo
A vulnerabilidade win32k pode ser eliminada na versão de pré-visualização do Windows 11.
O processo de exploração deste tipo de vulnerabilidade é relativamente simples, dependendo principalmente da divulgação do endereço do manipulador de heap da área de trabalho.
A descoberta de vulnerabilidades pode depender de uma detecção de cobertura de código mais abrangente.
A deteção de layouts de memória anormais e leitura/escrita de dados ajuda a descobrir este tipo de vulnerabilidades.
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.
11 Curtidas
Recompensa
11
9
Repostar
Compartilhar
Comentário
0/400
MoneyBurnerSociety
· 08-13 09:31
Está bem, a chave privada da carteira já se foi, e ainda se está a estudar o que para o Web3... Não seria melhor usar uma carteira fria?
Ver originalResponder0
OnChainDetective
· 08-13 02:43
acabei de rastrear essa vulnerabilidade win32k... fraqueza típica da infraestrutura web2 smh. não suas chaves, não suas moedas, pessoal
Ver originalResponder0
BlockchainWorker
· 08-12 11:32
Muito perigoso, mude para a plataforma Linux para se salvar primeiro.
Ver originalResponder0
ParallelChainMaxi
· 08-12 02:25
Mais um tema de pai
Ver originalResponder0
RugPullSurvivor
· 08-10 12:49
Web2 de dia, web3 à noite. Viver na Blockchain, os pequenos idiotas do Crypto tornam-se velhos espertos, focando na especulação do mundo crypto, Metaverso, Defi, NFT, nômades digitais~
Por favor, gere um comentário em estilo coloquial em chinês.
Aguardando os hackers fazer as pessoas de parvas.
Ver originalResponder0
metaverse_hermit
· 08-10 12:43
Outra vez a enganar os jogadores a jogar sozinhos.
Ver originalResponder0
SillyWhale
· 08-10 12:42
Quem se atreve a tocar na minha Carteira, que veja!
Ver originalResponder0
DogeBachelor
· 08-10 12:32
estragados na linha de frente do web3
Ver originalResponder0
TxFailed
· 08-10 12:30
momento clássico do Windows... aprendi isso da maneira difícil, para ser sincero
Vulnerabilidades do sistema Windows podem comprometer a segurança do ecossistema Web3: Análise de caminhos de exploração e recomendações de prevenção.
Análise de vulnerabilidades do sistema Windows da Microsoft: pode ameaçar a segurança do ecossistema Web3
No mês passado, a atualização de segurança da Microsoft incluiu uma vulnerabilidade de elevação de privilégios win32k explorável, que parece existir apenas em versões anteriores do sistema Windows. Este artigo analisará como os atacantes podem continuar a explorar essa vulnerabilidade no contexto de melhorias contínuas nas medidas de segurança. O processo de análise foi concluído no ambiente do Windows Server 2016.
Esses tipos de vulnerabilidades 0day, uma vez descobertas, podem ser exploradas maliciosamente sem serem detectadas, apresentando uma grande destruição. Através dessa vulnerabilidade, hackers podem obter controle total sobre o sistema Windows. As consequências do controle incluem roubo de informações pessoais, falhas no sistema, perda de dados, perdas financeiras e implantação de malware. Impactos em pequena escala podem levar ao roubo de chaves privadas e à transferência de ativos digitais, enquanto um impacto em larga escala pode ameaçar todo o ecossistema Web3 que opera com base na infraestrutura Web2.
Análise de Patch
A análise do patch revelou que o problema parece ser que a contagem de referências de um objeto foi processada uma vez a mais. De acordo com os comentários no código-fonte anterior, o código antigo apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro do objeto da janela, o que pode ter causado uma referência errada ao objeto do menu.
Verificação de Vulnerabilidades
Construímos uma estrutura de menu aninhado especial em múltiplas camadas e definimos algumas condições específicas para ativar a vulnerabilidade:
Remover a referência da relação do menu chave ao retornar ao nível do usuário na função, para que seja liberada com sucesso. Assim, quando a função do núcleo subsequente referenciar o objeto do menu, surgirão problemas.
Exploração de Vulnerabilidades
Existem duas direções principais para a utilização do pensamento:
Escolhemos a segunda opção, dividindo todo o processo de utilização em dois passos-chave:
Para realizar a primeira gravação de dados, utilizamos o objeto de nome da classe de janela para ocupar a memória do objeto de menu liberado e encontramos a estrutura de endereço onde podemos gravar quaisquer dados. No final, escolhemos gravar os dados com base na verificação de um bit de sinalização em uma função específica.
Para obter uma disposição de memória estável, projetamos três objetos de janela de tamanho idêntico em sequência, liberando o objeto do meio e ocupando-o com o objeto da classe janela. Através do endereço do identificador do núcleo vaza na memória heap, podemos determinar com precisão se a disposição dos objetos está de acordo com o esperado.
Em termos de leitura e escrita de primitivas, usamos GetMenuBarInfo() para implementar leitura arbitrária e SetClassLongPtr() para implementar escrita arbitrária. Além da escrita de tokens, todas as outras operações de escrita utilizam o objeto de classe do primeiro objeto da janela.
Resumo
Por favor, gere um comentário em estilo coloquial em chinês.
Aguardando os hackers fazer as pessoas de parvas.