Análise de Vulnerabilidades Críticas no Sistema Microsoft Windows: Possibilidade de Controle Total do Sistema e Ameaça à Segurança Web3
No mês passado, um patch de segurança lançado pela Microsoft corrigiu uma vulnerabilidade de elevação de privilégios no sistema Windows que estava sendo explorada por hackers. Essa vulnerabilidade existe principalmente em versões anteriores do Windows e não pode ser acionada no Windows 11.
Este tipo de vulnerabilidades no sistema Windows existem há muito tempo. Este artigo analisará como os hackers podem continuar a explorar essa vulnerabilidade no contexto atual de fortalecimento contínuo das medidas de segurança. O nosso ambiente de análise é o Windows Server 2016.
Esta vulnerabilidade é uma vulnerabilidade de dia zero, ou seja, uma vulnerabilidade que não foi divulgada e ainda não foi corrigida. Uma vez descoberta, a vulnerabilidade de dia zero pode ser explorada maliciosamente sem o conhecimento do usuário, apresentando grande destruição. Através desta vulnerabilidade do sistema Windows, os hackers podem obter o controle total do sistema.
As consequências de ter o sistema controlado por hackers são graves, incluindo o roubo de informações pessoais, falhas do sistema e perda de dados, perdas financeiras e a inserção de malware. Para usuários individuais, as chaves privadas de criptomoedas podem ser roubadas e os ativos digitais transferidos. Em uma escala maior, essa vulnerabilidade pode colocar em risco projetos Web3 que dependem da infraestrutura Web2.
Analisando o código do patch, 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 do código fonte win32k anteriores, o código original apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro do objeto da janela, levando a um possível erro de referência do objeto do menu.
Ao implementar a prova de conceito de vulnerabilidade ( PoC ), descobrimos que há um problema no tratamento do objeto de menu na função xxxEnableMenuItem. O menu retornado pode ser o menu principal da janela, um submenu ou até mesmo um submenu do submenu. Construímos uma estrutura de menu especial em quatro camadas para desencadear a vulnerabilidade.
Antes de construir o (Exp), considerámos principalmente duas direções: executar código shellcode e utilizar primitivas de leitura e escrita para modificar o endereço do token. Tendo em conta a viabilidade, escolhemos a segunda. Todo o processo de exploração é dividido em duas etapas: controlar o valor cbwndextra através da vulnerabilidade UAF e, em seguida, estabelecer primitivas de leitura e escrita estáveis.
Para realizar a primeira escrita de dados, utilizamos o objeto de nome de janela na classe de janelas WNDClass para ocupar e liberar o objeto de menu. Ao construir cuidadosamente o layout de memória, podemos controlar os dados de memória dos objetos adjacentes, permitindo assim modificar o valor cb-extra de HWNDClass.
Nós projetamos o layout de memória de três objetos HWND consecutivos, ocupando o objeto HWNDClass após liberar o objeto do meio. O objeto HWND anterior é usado para verificação por função, enquanto o último é utilizado para leitura e escrita final de primitivas. Através do endereço do manipulador do kernel vazado, podemos controlar com precisão a ordem de disposição dos objetos.
Na leitura e escrita de primitivos, utilizamos GetMenuBarInfo() para leitura arbitrária e SetClassLongPtr() para escrita arbitrária. Exceto pela escrita de token, todas as outras escritas utilizam o deslocamento do objeto de classe do primeiro objeto de janela.
No geral, embora a versão de pré-visualização do Windows 11 tenha começado a reestruturar o código do win32k com Rust, esse tipo de vulnerabilidade ainda representa um risco de segurança para sistemas antigos. O processo de exploração da vulnerabilidade é relativamente simples, dependendo principalmente da divulgação do endereço do manipulador de pilha da área de trabalho. A descoberta desta vulnerabilidade pode ser atribuída a uma detecção de cobertura de código mais aprimorada. Para a detecção de vulnerabilidades, além de focar nos pontos-chave das funções disparadoras, também deve-se prestar atenção à disposição anômala da memória e às operações de leitura e escrita de dados.
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.
16 Curtidas
Recompensa
16
6
Compartilhar
Comentário
0/400
FlashLoanLord
· 2h atrás
É hora de trocar os iPhones novamente.
Ver originalResponder0
LightningSentry
· 2h atrás
Não atualizar para o win11 e ainda ter coragem de ser idiota? Deve ser esfolado.
Ver originalResponder0
StakeHouseDirector
· 2h atrás
Acelera para 11 Não pergunte, apenas vai
Ver originalResponder0
StablecoinAnxiety
· 2h atrás
A grama win11 é bastante segura.
Ver originalResponder0
fomo_fighter
· 2h atrás
11 Os usuários estão descansando tranquilos, certo?
Vulnerabilidade grave do Windows ameaça a segurança do Web3, Hacker pode controlar completamente o sistema.
Análise de Vulnerabilidades Críticas no Sistema Microsoft Windows: Possibilidade de Controle Total do Sistema e Ameaça à Segurança Web3
No mês passado, um patch de segurança lançado pela Microsoft corrigiu uma vulnerabilidade de elevação de privilégios no sistema Windows que estava sendo explorada por hackers. Essa vulnerabilidade existe principalmente em versões anteriores do Windows e não pode ser acionada no Windows 11.
Este tipo de vulnerabilidades no sistema Windows existem há muito tempo. Este artigo analisará como os hackers podem continuar a explorar essa vulnerabilidade no contexto atual de fortalecimento contínuo das medidas de segurança. O nosso ambiente de análise é o Windows Server 2016.
Esta vulnerabilidade é uma vulnerabilidade de dia zero, ou seja, uma vulnerabilidade que não foi divulgada e ainda não foi corrigida. Uma vez descoberta, a vulnerabilidade de dia zero pode ser explorada maliciosamente sem o conhecimento do usuário, apresentando grande destruição. Através desta vulnerabilidade do sistema Windows, os hackers podem obter o controle total do sistema.
As consequências de ter o sistema controlado por hackers são graves, incluindo o roubo de informações pessoais, falhas do sistema e perda de dados, perdas financeiras e a inserção de malware. Para usuários individuais, as chaves privadas de criptomoedas podem ser roubadas e os ativos digitais transferidos. Em uma escala maior, essa vulnerabilidade pode colocar em risco projetos Web3 que dependem da infraestrutura Web2.
Analisando o código do patch, 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 do código fonte win32k anteriores, o código original apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro do objeto da janela, levando a um possível erro de referência do objeto do menu.
Ao implementar a prova de conceito de vulnerabilidade ( PoC ), descobrimos que há um problema no tratamento do objeto de menu na função xxxEnableMenuItem. O menu retornado pode ser o menu principal da janela, um submenu ou até mesmo um submenu do submenu. Construímos uma estrutura de menu especial em quatro camadas para desencadear a vulnerabilidade.
Antes de construir o (Exp), considerámos principalmente duas direções: executar código shellcode e utilizar primitivas de leitura e escrita para modificar o endereço do token. Tendo em conta a viabilidade, escolhemos a segunda. Todo o processo de exploração é dividido em duas etapas: controlar o valor cbwndextra através da vulnerabilidade UAF e, em seguida, estabelecer primitivas de leitura e escrita estáveis.
Para realizar a primeira escrita de dados, utilizamos o objeto de nome de janela na classe de janelas WNDClass para ocupar e liberar o objeto de menu. Ao construir cuidadosamente o layout de memória, podemos controlar os dados de memória dos objetos adjacentes, permitindo assim modificar o valor cb-extra de HWNDClass.
Nós projetamos o layout de memória de três objetos HWND consecutivos, ocupando o objeto HWNDClass após liberar o objeto do meio. O objeto HWND anterior é usado para verificação por função, enquanto o último é utilizado para leitura e escrita final de primitivas. Através do endereço do manipulador do kernel vazado, podemos controlar com precisão a ordem de disposição dos objetos.
Na leitura e escrita de primitivos, utilizamos GetMenuBarInfo() para leitura arbitrária e SetClassLongPtr() para escrita arbitrária. Exceto pela escrita de token, todas as outras escritas utilizam o deslocamento do objeto de classe do primeiro objeto de janela.
No geral, embora a versão de pré-visualização do Windows 11 tenha começado a reestruturar o código do win32k com Rust, esse tipo de vulnerabilidade ainda representa um risco de segurança para sistemas antigos. O processo de exploração da vulnerabilidade é relativamente simples, dependendo principalmente da divulgação do endereço do manipulador de pilha da área de trabalho. A descoberta desta vulnerabilidade pode ser atribuída a uma detecção de cobertura de código mais aprimorada. Para a detecção de vulnerabilidades, além de focar nos pontos-chave das funções disparadoras, também deve-se prestar atenção à disposição anômala da memória e às operações de leitura e escrita de dados.