Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/sbaresearch/stop-zenbleed-win
Análise de VulnerabilidadesExploraçãoScripting e AutomaçãoSegurança de Hardware
GitHubsbaresearch/stop-zenbleed-win

stop-zenbleed-win

Script PowerShell para aplicar a solução alternativa MSR do Zenbleed (CVE-2023-20593) no Windows.

Ver Repositório
824há 3 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Parando Zenbleed (CVE-2023-20593) no Windows

A vulnerabilidade Zenbleed recentemente descoberta (CVE-2023-20593) afeta todos os processadores Zen2 da AMD. Infelizmente, a AMD não fornecerá atualizações de microcódigo para muitos de seus processadores até novembro ou dezembro de 2023. Como se manter seguro nesse meio tempo? Felizmente, existe uma solução alternativa por software. Embora aplicar a solução alternativa por software seja uma linha de comando no Linux, as coisas são mais complicadas no Windows.

Para aplicar a solução alternativa por software, um determinado bit (o chicken bit DE_CFG[9]) deve ser definido no registrador MSR da CPU. Como apontado por Travis Ormandy, o seguinte comando pode ser usado para evitar o Zenbleed no Linux:

root@kitploit:~
# wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

No Windows, definir o registrador MSR é mais difícil. Apenas drivers em nível de kernel podem escrever no registrador MSR. Além disso, para carregar um driver em nível de kernel, ele precisa ser assinado. É por isso que decidimos usar o driver WinRing0 existente do OpenLibSys.org. Escrevemos um script PowerShell que carrega o WinRing0, envia as solicitações de gravação MSR apropriadas para o driver e descarrega o driver WinRing0 imediatamente depois. Atualmente, nosso script PowerShell funciona apenas quando o Hyper-V está desabilitado. Nosso script PowerShell está hospedado aqui: https://github.com/sbaresearch/stop-zenbleed-win

Observe que o script PowerShell tem algumas ressalvas. Leia a seção 'ressalvas' e realize uma análise de risco para seu ambiente específico antes de usar o script.

Uso

  • Execute Stop-Zenbleed.ps1 em um PowerShell 5.x com permissões de administrador
  • O script espera ser executado apenas em CPUs AMD Zen2 afetadas pelo Zenbleed. Pode causar problemas inesperados em outros sistemas; tenha cuidado.

Ressalvas

  • Você precisa desabilitar o Hyper-V. Caso contrário, o próprio sistema operacional Windows executa no ring 1 da CPU e o driver em nível de kernel não consegue obter acesso de gravação ao MSR. Desabilitar o Hyper-V infelizmente implica desabilitar o Credential Guard e o Device Guard, duas medidas de segurança recomendadas. Em nossa opinião, evitar um potencial ataque de roubo de informações via JavaScript (Explorar o Zenbleed via JavaScript é pelo menos considerado possível pelo tom's Hardware: https://www.tomshardware.com/news/zenbleed-bug-allows-data-theft-from-amds-zen-2-processors-patches-released) ao parar a vulnerabilidade Zenbleed (CVE-2023-20593) supera o risco de desabilitar duas medidas de defesa em profundidade.
  • O driver em nível de kernel WinRing0 sofre da CVE-2020–14979, uma vulnerabilidade de escalonamento local de privilégios. Veja https://posts.specterops.io/cve-2020-14979-local-privilege-escalation-in-evga-precisionx1-cf63c6b95896 e https://github.com/openhardwaremonitor/openhardwaremonitor/issues/1557. WinRing0 é um driver em nível de kernel de código aberto que também é usado por outros programas de código aberto, como a biblioteca OpenHardwareMonitor. O problema é que o driver cria um objeto de dispositivo sem uma lista de controle de acesso, permitindo que todos os usuários locais do Windows se comuniquem com o driver. Como o driver permite acesso direto ao hardware, é possível um escalonamento de privilégios para direitos NT AUTHORITY\SYSTEM. Uma correção real exigiria uma alteração no driver WinRing0 e, portanto, uma nova assinatura, o que é complicado. A biblioteca OpenHardwareMonitor, como solução alternativa, corrige os direitos de acesso imediatamente após carregar o driver (https://github.com/openhardwaremonitor/openhardwaremonitor/commit/0e435cafc61fe84d429e8a9500d666e34e3de67b). Nosso script PowerShell contorna a CVE-2020–14979 descarregando imediatamente o driver após definir o chicken bit. No entanto, existe uma pequena janela de oportunidade cada vez que o script é executado. Como definir o chicken bit não é persistente, o script precisa ser executado a cada reinicialização. Em nossa análise de risco, os benefícios da proteção contra o Zenbleed (que pode ocorrer remotamente) novamente superam os riscos de um escalonamento local de privilégios. Além disso, recomendamos executar o script o mais cedo possível no processo de inicialização para limitar a exploração por processos de usuário. Realize uma análise de risco para seu ambiente específico antes de implantar o script PowerShell.
  • Esta solução alternativa por software é destinada como uma solução temporária até que a AMD corrija o bug em suas CPUs.

Como saber se funciona?

root@kitploit:~
PS C:\stop-zenbleed-win> powershell -ExecutionPolicy RemoteSigned .\Stop-Zenbleed.ps1
[>] Installing driver...
[SC] CreateService SUCCESS

[>] Starting driver...

SERVICE_NAME: WinRing0_1_2_0
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 0
        FLAGS              :

[>] Opening driver...
[+] Driver access OK, handle: 2456

[>] Try 1 to apply fix on processor 1
[+] Fix is applied on processor 1 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 2 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 3
[+] Fix is applied on processor 3 (MSR 0xC0011029=0x3004310E08202)
[+] Fix is applied on processor 4 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 5
[+] Fix is applied on processor 5 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 6 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 7
[+] Fix is applied on processor 7 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 8 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 9
[+] Fix is applied on processor 9 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 10 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 11
[+] Fix is applied on processor 11 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 12 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 13
[+] Fix is applied on processor 13 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 14 (MSR 0xC0011029=0x300C310E08203)
[>] Try 1 to apply fix on processor 15
[+] Fix is applied on processor 15 (MSR 0xC0011029=0x300C310E08202)
[+] Fix is applied on processor 16 (MSR 0xC0011029=0x300C310E08203)

[>] Closing driver...

[>] Stopping driver...

SERVICE_NAME: WinRing0_1_2_0
        TYPE               : 1  KERNEL_DRIVER
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

[>] Uninstalling driver...
[SC] DeleteService SUCCESS

Após executar nosso script PowerShell, o exploit de prova de conceito não deve produzir mais saída.

Copyright

  • Stop-Zenbleed.ps1 é fornecido sob a licença GNU GPL v3.0: LICENSE
  • WinRing0 é © 2007-2009 OpenLibSys.org e fornecido sob os seguintes termos: WinRing0/LICENSE
Baixar ferramenta