Análise de vulnerabilidades 0day de sistema Windows da Microsoft: controle total do sistema
Recentemente, um patch de segurança lançado pela Microsoft corrigiu uma vulnerabilidade de elevação de privilégios do Win32k que estava sendo explorada por agentes maliciosos. Esta vulnerabilidade existe apenas 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 atual, onde as medidas de segurança estão em constante aprimoramento.
Contexto da Vulnerabilidade
Esta é uma vulnerabilidade 0day ao nível do sistema Windows, que os hackers podem explorar para obter controle total sobre o Windows. Os danos após o controle incluem roubo de informações pessoais, perda de dados devido a falhas no sistema, perdas financeiras e inserção de software malicioso. Desde o roubo de chaves privadas e a transferência de ativos digitais, até a possibilidade de afetar todo o ecossistema Web3 baseado na infraestrutura Web2.
Análise de Patch
A análise do patch revelou que este é um problema de contagem de referências de objetos sendo tratado em excesso. Através de comentários no código fonte anterior, é possível notar que o código anterior apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro do objeto da janela, o que poderia levar a uma referência incorreta ao objeto do menu.
Princípio da vulnerabilidade
Uma análise mais aprofundada revela que o menu passado para xxxEnableMenuItem() geralmente já foi bloqueado na função de nível superior. E na função MenuItemState de xxxEnableMenuItem, existem duas possibilidades para o menu retornado: o menu principal da janela ou um submenu dentro do menu.
Prova de Conceito(PoC) implementação
PoC construiu uma estrutura de menu especial de quatro camadas e definiu algumas condições específicas para passar pela verificação na função xxxEnableMenuItem. O passo chave é, ao retornar à camada do usuário na xxxRedrawTitle, remover a relação de referência entre o menu C e o menu B e liberar o menu C. Assim, na função xxxEnableMenuItem subsequente, ao referenciar o menu C, o objeto já não é válido.
Exploração de vulnerabilidade ( Exp ) implementação
Existem principalmente duas abordagens: executar código shellcode ou usar primitivas de leitura e escrita para modificar o endereço do token. Considerando a compatibilidade, optou-se pela segunda. O processo é dividido em duas etapas: controlar o valor de cbwndextra usando a vulnerabilidade UAF e, em seguida, estabelecer primitivas de leitura e escrita estáveis.
Pontos chave incluem:
Ocupação e liberação de objetos de menu através do objeto de nome de classe de janela
Encontre a posição onde os dados podem ser escritos na função xxxRedrawWindow.
Construir um layout de memória estável, incluindo três objetos HWND consecutivos.
Usar GetMenuBarInfo() e SetClassLongPtr() para implementar a leitura e escrita de primitivos.
Resumo
A Microsoft está a reestruturar o código relacionado com o Win32k em Rust, no futuro este tipo de vulnerabilidades poderá ser erradicado.
O processo de exploração de vulnerabilidades não é muito difícil, dependendo principalmente da divulgação do endereço do manipulador da pilha de trabalho do desktop.
A descoberta de vulnerabilidades pode depender de uma deteção de cobertura de código mais abrangente.
A detección de disposições de memória anómalas e das leituras e gravações de dados de janelas ajuda a descobrir vulnerabilidades semelhantes.
Embora essas vulnerabilidades estejam gradualmente sendo corrigidas em novos sistemas, ainda representam um risco de segurança para sistemas antigos. É importante aprimorar os mecanismos de detecção e proteção 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.
8 Curtidas
Recompensa
8
4
Compartilhar
Comentário
0/400
UncleLiquidation
· 7h atrás
O velho sistema nem os cães usam.
Ver originalResponder0
CommunityLurker
· 7h atrás
Outra oportunidade de ganhar dinheiro chegou.
Ver originalResponder0
ser_ngmi
· 7h atrás
também só a deficiência da Microsoft bombear pode fazer esse tipo de falha.
Ver originalResponder0
AirdropHunter9000
· 7h atrás
O sistema antigo ainda não foi atualizado? Se não fizer nada, não vai morrer.
Análise de vulnerabilidades 0day a nível de sistema Windows: atacantes podem controlar completamente sistemas antigos.
Análise de vulnerabilidades 0day de sistema Windows da Microsoft: controle total do sistema
Recentemente, um patch de segurança lançado pela Microsoft corrigiu uma vulnerabilidade de elevação de privilégios do Win32k que estava sendo explorada por agentes maliciosos. Esta vulnerabilidade existe apenas 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 atual, onde as medidas de segurança estão em constante aprimoramento.
Contexto da Vulnerabilidade
Esta é uma vulnerabilidade 0day ao nível do sistema Windows, que os hackers podem explorar para obter controle total sobre o Windows. Os danos após o controle incluem roubo de informações pessoais, perda de dados devido a falhas no sistema, perdas financeiras e inserção de software malicioso. Desde o roubo de chaves privadas e a transferência de ativos digitais, até a possibilidade de afetar todo o ecossistema Web3 baseado na infraestrutura Web2.
Análise de Patch
A análise do patch revelou que este é um problema de contagem de referências de objetos sendo tratado em excesso. Através de comentários no código fonte anterior, é possível notar que o código anterior apenas bloqueava o objeto da janela, sem bloquear o objeto do menu dentro do objeto da janela, o que poderia levar a uma referência incorreta ao objeto do menu.
Princípio da vulnerabilidade
Uma análise mais aprofundada revela que o menu passado para xxxEnableMenuItem() geralmente já foi bloqueado na função de nível superior. E na função MenuItemState de xxxEnableMenuItem, existem duas possibilidades para o menu retornado: o menu principal da janela ou um submenu dentro do menu.
Prova de Conceito(PoC) implementação
PoC construiu uma estrutura de menu especial de quatro camadas e definiu algumas condições específicas para passar pela verificação na função xxxEnableMenuItem. O passo chave é, ao retornar à camada do usuário na xxxRedrawTitle, remover a relação de referência entre o menu C e o menu B e liberar o menu C. Assim, na função xxxEnableMenuItem subsequente, ao referenciar o menu C, o objeto já não é válido.
Exploração de vulnerabilidade ( Exp ) implementação
Existem principalmente duas abordagens: executar código shellcode ou usar primitivas de leitura e escrita para modificar o endereço do token. Considerando a compatibilidade, optou-se pela segunda. O processo é dividido em duas etapas: controlar o valor de cbwndextra usando a vulnerabilidade UAF e, em seguida, estabelecer primitivas de leitura e escrita estáveis.
Pontos chave incluem:
Resumo
Embora essas vulnerabilidades estejam gradualmente sendo corrigidas em novos sistemas, ainda representam um risco de segurança para sistemas antigos. É importante aprimorar os mecanismos de detecção e proteção de vulnerabilidades.