Análise da vulnerabilidade 0day do sistema Microsoft Windows: pode obter controle total do sistema
No mês passado, o patch de segurança da Microsoft corrigiu uma vulnerabilidade de escalonamento de privilégios no núcleo do Windows que estava sendo explorada por hackers. Esta vulnerabilidade existe principalmente em versões anteriores do sistema Windows e não pode ser acionada no Windows 11. Este artigo irá analisar como os atacantes podem continuar a explorar essa vulnerabilidade no contexto da melhoria contínua dos mecanismos de segurança atuais. O nosso ambiente de análise é o Windows Server 2016.
A vulnerabilidade 0day refere-se a uma falha de software que ainda não foi descoberta e corrigida. Uma vez que é explorada por hackers, pode causar danos graves. A vulnerabilidade 0day do Windows recentemente descoberta permite que atacantes obtenham controle total do sistema, podendo assim roubar informações pessoais, implantar malware e roubar criptomoedas. Em uma perspectiva mais ampla, essa vulnerabilidade pode até afetar todo o ecossistema Web3 baseado na infraestrutura Web2.
A análise do patch mostra que o problema está no tratamento da contagem de referências de um objeto no módulo win32k. Comentários anteriores no código indicam que o código anterior apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro da janela, o que poderia levar a referências erradas ao objeto do menu.
Construímos uma estrutura de menu aninhado especial em várias camadas para desencadear uma vulnerabilidade. O ponto chave é remover a referência a um determinado sub-menu e liberá-lo quando a função xxxEnableMenuItem retorna ao nível do usuário. Assim, quando a função entrar novamente no modo kernel, o objeto de menu referenciado anteriormente já estará inválido.
Ao realizar a exploração de vulnerabilidades, consideramos principalmente duas abordagens: executar shellcode e usar primitivas de leitura e escrita para modificar o token. Considerando os mecanismos de segurança do Windows em versões mais recentes, escolhemos a segunda. Todo o processo de exploração é dividido em duas etapas: primeiro, controlamos o valor de cbwndextra, e depois estabelecemos primitivas de leitura e escrita estáveis.
Para gravar os dados pela primeira vez, utilizamos um ponto de escrita na função xxxRedrawWindow. Ao organizar cuidadosamente a memória, podemos controlar os dados de memória de objetos adjacentes, permitindo a verificação através de sinais na função.
Em termos de layout de memória, projetamos três objetos HWND consecutivos, liberando o do meio e usando o objeto HWNDClass para ocupá-lo. Os dois objetos HWND nas extremidades são usados para verificar e implementar primitivos de leitura e escrita. Também utilizamos o endereço do identificador de kernel vazado na memória heap para determinar com precisão se a disposição dos objetos corresponde ao esperado.
Por fim, utilizamos GetMenuBarInfo() para realizar leituras arbitrárias e SetClassLongPtr() para realizar gravações arbitrárias. Além das operações de modificação do TOKEN, todas as outras gravações são realizadas utilizando o objeto de classe do primeiro objeto de janela.
Em geral, embora a vulnerabilidade do módulo win32k tenha uma longa história, a Microsoft está tentando reescrever o código relacionado em Rust, e no futuro esse tipo de vulnerabilidade pode ser eliminado em novos sistemas. O processo de exploração atual não é particularmente difícil, dependendo principalmente do vazamento do endereço do manipulador da pilha de desktop. Melhorar a cobertura de testes de código e realizar detecções direcionadas de operações de memória anômalas pode ser uma maneira eficaz de descobrir esse tipo de vulnerabilidade.
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.
17 gostos
Recompensa
17
5
Partilhar
Comentar
0/400
MissingSats
· 07-11 05:50
Carteira放马内?
Ver originalResponder0
GigaBrainAnon
· 07-11 05:50
Pé! Mais uma vez a atualização do sistema vai me dar trabalho.
Ver originalResponder0
PanicSeller
· 07-11 05:46
Muito assustador, a Carteira vai para Android.
Ver originalResponder0
LiquidatedTwice
· 07-11 05:45
Investidores de criptomoedas que costumam ficar em casa a relaxar e a operar, ocasionalmente se envolvem em NFT e Finanças Descentralizadas, com ganhos e perdas dependendo da sorte. A maior parte do capital é utilizada em negociações à vista, enquanto uma pequena parte está em Futuros Perpétuos Degen.
Análise da vulnerabilidade 0day do núcleo do Windows: pode afetar a segurança do ecossistema Web3
Análise da vulnerabilidade 0day do sistema Microsoft Windows: pode obter controle total do sistema
No mês passado, o patch de segurança da Microsoft corrigiu uma vulnerabilidade de escalonamento de privilégios no núcleo do Windows que estava sendo explorada por hackers. Esta vulnerabilidade existe principalmente em versões anteriores do sistema Windows e não pode ser acionada no Windows 11. Este artigo irá analisar como os atacantes podem continuar a explorar essa vulnerabilidade no contexto da melhoria contínua dos mecanismos de segurança atuais. O nosso ambiente de análise é o Windows Server 2016.
A vulnerabilidade 0day refere-se a uma falha de software que ainda não foi descoberta e corrigida. Uma vez que é explorada por hackers, pode causar danos graves. A vulnerabilidade 0day do Windows recentemente descoberta permite que atacantes obtenham controle total do sistema, podendo assim roubar informações pessoais, implantar malware e roubar criptomoedas. Em uma perspectiva mais ampla, essa vulnerabilidade pode até afetar todo o ecossistema Web3 baseado na infraestrutura Web2.
A análise do patch mostra que o problema está no tratamento da contagem de referências de um objeto no módulo win32k. Comentários anteriores no código indicam que o código anterior apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro da janela, o que poderia levar a referências erradas ao objeto do menu.
Construímos uma estrutura de menu aninhado especial em várias camadas para desencadear uma vulnerabilidade. O ponto chave é remover a referência a um determinado sub-menu e liberá-lo quando a função xxxEnableMenuItem retorna ao nível do usuário. Assim, quando a função entrar novamente no modo kernel, o objeto de menu referenciado anteriormente já estará inválido.
Ao realizar a exploração de vulnerabilidades, consideramos principalmente duas abordagens: executar shellcode e usar primitivas de leitura e escrita para modificar o token. Considerando os mecanismos de segurança do Windows em versões mais recentes, escolhemos a segunda. Todo o processo de exploração é dividido em duas etapas: primeiro, controlamos o valor de cbwndextra, e depois estabelecemos primitivas de leitura e escrita estáveis.
Para gravar os dados pela primeira vez, utilizamos um ponto de escrita na função xxxRedrawWindow. Ao organizar cuidadosamente a memória, podemos controlar os dados de memória de objetos adjacentes, permitindo a verificação através de sinais na função.
Em termos de layout de memória, projetamos três objetos HWND consecutivos, liberando o do meio e usando o objeto HWNDClass para ocupá-lo. Os dois objetos HWND nas extremidades são usados para verificar e implementar primitivos de leitura e escrita. Também utilizamos o endereço do identificador de kernel vazado na memória heap para determinar com precisão se a disposição dos objetos corresponde ao esperado.
Por fim, utilizamos GetMenuBarInfo() para realizar leituras arbitrárias e SetClassLongPtr() para realizar gravações arbitrárias. Além das operações de modificação do TOKEN, todas as outras gravações são realizadas utilizando o objeto de classe do primeiro objeto de janela.
Em geral, embora a vulnerabilidade do módulo win32k tenha uma longa história, a Microsoft está tentando reescrever o código relacionado em Rust, e no futuro esse tipo de vulnerabilidade pode ser eliminado em novos sistemas. O processo de exploração atual não é particularmente difícil, dependendo principalmente do vazamento do endereço do manipulador da pilha de desktop. Melhorar a cobertura de testes de código e realizar detecções direcionadas de operações de memória anômalas pode ser uma maneira eficaz de descobrir esse tipo de vulnerabilidade.
Vai explodir a Carteira de novo?