Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
r0ak — Utilitário de linha de comando do Windows para ler, escrever e executar código em modo kernel a partir do contexto de Administrador usando uma técnica de redirecionamento de execução de validação de fontes, permitindo depuração avançada do kernel e solução de problemas do sistema. | Kitploit
Ferramentas/GitHubGitHub/harryanon/r0ak
Escalada de PrivilégiosForensia de MemóriaAnálise de VulnerabilidadesExploraçãoDepuradoresPós-ExploraçãoTestes de PenetraçãoExploração de Binários
GitHubharryanon/r0ak

r0ak

Ver Repositório
1087317há 8 anosRevisado pelo Kitploit

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 →

Sobre

Utilitário de linha de comando do Windows para ler, escrever e executar código em modo kernel a partir do contexto de Administrador usando uma técnica de redirecionamento de execução de validação de fontes, permitindo depuração avançada do kernel e solução de problemas do sistema.

Compartilhar

r0akDownloads

r0ak é um utilitário de linha de comando do Windows que permite ler, escrever e executar código em modo kernel (com algumas limitações) diretamente do prompt de comando, sem exigir nada além de privilégios de Administrador.

Visão Rápida

r0ak v1.0.0 -- Ring 0 Army Knife
http://www.github.com/ionescu007/r0ak
Copyright (c) 2018 Alex Ionescu [@aionescu]
http://www.windows-internals.com

USAGE: r0ak.exe
       [--execute <Address | module.ext!function> <Argument>]
       [--write   <Address | module.ext!function> <Value>]
       [--read    <Address | module.ext!function> <Size>]

Screenshot

Introdução

Motivação

O kernel do Windows é um ambiente rico no qual centenas de drivers executam em um sistema típico, e onde milhares de variáveis contendo estado global estão presentes. Para solução de problemas avançada, especialistas de TI normalmente usam ferramentas como o Windows Debugger (WinDbg), ferramentas SysInternals, ou escrevem suas próprias. Infelizmente, o uso dessas ferramentas está se tornando cada vez mais difícil, e elas próprias são limitadas pelo seu acesso às APIs do Windows e recursos expostos.

Alguns dos desafios atuais incluem:

  • O Windows 8 e versões posteriores suportam Secure Boot, o que impede a depuração do kernel (incluindo depuração local) e o carregamento de código de driver assinado de teste. Isso restringe as ferramentas de solução de problemas àquelas que possuem um driver em modo kernel assinado.
  • Mesmo em sistemas sem Secure Boot habilitado, ativar a depuração local ou alterar opções de inicialização que facilitam as capacidades de depuração frequentemente acionará o modo de recuperação do BitLocker.
  • O Windows 10 Anniversary Update e versões posteriores incluem requisitos de assinatura de driver muito mais rígidos, que agora exigem a Microsoft EV Attestation Signing. Isso restringe a liberdade dos desenvolvedores de software, já que drivers genéricos "leia-escreva-tudo" são mal vistos.
  • O Windows 10 Spring Update agora inclui opções voltadas ao cliente para habilitar o HyperVisor Code Integrity (HVCI), que restringe ainda mais os drivers permitidos e coloca na lista negra vários drivers de terceiros que tinham capacidades "leia-escreva-tudo" devido a interfaces mal escritas e riscos de segurança.
  • Tecnologias como Supervisor Mode Execution Prevention (SMEP), Kernel Control Flow Guard (KCFG) e HVCI com Second Level Address Translation (SLAT) estão tornando os 'truques' tradicionais de execução no Ring 0 obsoletos, então uma nova abordagem é necessária.

Em tal ambiente, ficou claro que uma ferramenta simples que possa ser usada como um curativo/hotfix de emergência e para solucionar rapidamente problemas de kernel/sistema que podem ser aparentes através da análise do estado do kernel poderia ser valiosa para a comunidade.

Como Funciona

Arquitetura Básica

Diagram

r0ak funciona redirecionando o fluxo de execução das verificações de validação de fonte confiável do gerenciador de janelas ao tentar carregar uma nova fonte, substituindo a rotina de comparação da tabela de fontes confiáveis por uma função alternativa que agenda um item de trabalho executivo (WORK_QUEUE_ITEM) armazenado no nó de entrada. Em seguida, o filho direito da tabela de fontes confiáveis (que serve como nó raiz) é sobrescrito com o buffer de escrita de um pipe nomeado (NP_DATA_ENTRY) no qual um item de trabalho personalizado é armazenado. A função de trabalho subjacente deste item e seu parâmetro são o que eventualmente será executado por um ExpWorkerThread dedicado em PASSIVE_LEVEL assim que uma tentativa de carregamento de fonte ocorrer e a rotina de comparação executar, recebendo o nó pai baseado no pipe nomeado como sua entrada. Um evento de rastreamento de Event Tracing for Windows (ETW) em tempo real é usado para receber uma notificação assíncrona de que o item de trabalho terminou de executar, o que torna seguro desmontar as estruturas, liberar os buffers em modo kernel e restaurar a operação normal.

Comandos Suportados

Ao usar a opção --execute, esta função e parâmetro são fornecidos pelo usuário.

Ao usar --write, um gadget personalizado é usado para modificar valores arbitrários de 32 bits em qualquer lugar da memória do kernel.

Ao usar --read, o gadget de escrita é usado para modificar o ponteiro e tamanho do buffer HSTI do sistema (N.B.: Este é um comportamento destrutivo em termos de quaisquer outras aplicações que solicitarão os dados HSTI. Como este é um comportamento opcional do Windows, e esta ferramenta é destinada para depuração/experimentação de emergência, esta perda de dados foi considerada aceitável). Em seguida, a API de Consulta HSTI é usada para copiar de volta para o espaço de endereço em modo usuário da ferramenta, e um dump hexadecimal é exibido.

Como apenas funcionalidade nativa do Windows, assinada pela Microsoft, é usada, e todas as funções chamadas fazem parte do bitmap KCFG, não há violação de nenhuma verificação de segurança, e nenhum sinalizador de depuração é necessário, nem o uso de drivers de terceiros mal escritos.

FAQ

Isso é um bug/vulnerabilidade no Windows?

Não. Como esta ferramenta — e a técnica subjacente — exigem um token privilegiado de nível SYSTEM, que só pode ser obtido por um usuário executando sob a conta de Administrador, nenhuma fronteira de segurança está sendo contornada para alcançar o efeito. O comportamento e a utilidade da ferramenta só são possíveis devido ao contexto de segurança elevado/privilegiado da conta de Administrador no Windows, e é entendido como um comportamento de design.

A Microsoft foi notificada sobre esse comportamento?

Claro! É importante sempre relatar problemas de segurança para a Microsoft, mesmo quando nenhuma violação de limites privilegiados parece ter ocorrido — suas equipes de pesquisadores e desenvolvedores podem encontrar novos vetores e maneiras de alcançar certos caminhos de código que um pesquisador externo pode não ter pensado.

Assim, em novembro de 2014, um caso de segurança foi registrado no Microsoft Security Research Centre (MSRC), que respondeu: "[…] não se enquadra no escopo de um problema de segurança que abordaríamos através de nosso veículo tradicional de boletim de segurança. […] pressupõe privilégios de administrador — um lugar onde, arquitetonicamente, atualmente não definimos uma fronteira de segurança defensável. Como tal, não vamos buscar corrigir isso."

Além disso, em abril de 2015, na conferência Infiltrate, uma palestra intitulada Insection : AWEsomely Exploiting Shared Memory Objects foi apresentada detalhando este problema, inclusive para desenvolvedores da Microsoft presentes, que concordaram que isso estava atualmente fora do escopo das fronteiras de segurança arquitetônicas do Windows. Isso porque existem literalmente dezenas — senão mais — de outras maneiras pelas quais um Administrador pode ler/escrever/executar memória do Ring 0. Esta ferramenta meramente permite uma comodificação fácil de um desses vetores, para fins de depuração e resolução de problemas do sistema.

Isso não pode ser empacotado como parte de um kit de ataque/exploit completo?

Empacotar esse código como uma biblioteca exigiria remover cuidadosamente toda a análise de linha de comando interativa e saída padrão, ponto em que, sem grandes reescritas, o 'kit' iria:

Baixar ferramenta