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
byeintegrity-uac — Contorne o UAC sequestrando uma DLL localizada no Cache de Imagens Nativas | Kitploit
Ferramentas/GitHubGitHub/azagarampur/byeintegrity-uac
Escalada de PrivilégiosExploraçãoTestes de PenetraçãoRed Teaming
GitHubazagarampur/byeintegrity-uac

byeintegrity-uac

Contorne o UAC sequestrando uma DLL localizada no Cache de Imagens Nativas

Ver Repositório
211466há 4 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 →
Compartilhar

ByeIntegrity — Bypass de UAC do Windows

Bypass do Controle de Conta de Usuário (UAC) para obter privilégios elevados (Administrador) para executar qualquer programa em um nível de integridade alto.

Requisitos

  • Conta de administrador
  • Nível de notificação do UAC definido como padrão ou inferior

Atualização de 2021

Eu decidi atualizar o ByeIntegrity para que seja muito mais rápido, leve e confiável. Esta é uma revisão significativa, então criei um novo projeto na solução VS chamado "ByeIntegrity2021", que é a versão atualizada deste ataque. Claro, a versão original ainda está lá. Para mais informações sobre a nova versão, expanda os detalhes abaixo.

Informações da atualização

A nova versão agora é capaz de sequestrar o NIC sem depender das imagens nativas existentes instaladas no NIC. Ela faz isso criando seus próprios descritores de imagem nativa e payloads, e então os move para o NIC, eliminando a necessidade de:

  • Imagens *.ni existentes produzidas por NGEN.exe
  • Executar as tarefas de manutenção do sistema
  • Travessia de diretório do NIC
  • Longo tempo de espera/execução
  • Número limitado de execuções (antes que a DLL sequestrada fique sem espaço)

O CLR carrega imagens nativas do NIC fazendo uma varredura recursiva de diretório de cada entrada e, em seguida, lendo seu arquivo *.aux. Este arquivo contém informações sobre a imagem nativa e suas dependências. Com base nas informações do arquivo AUX, o CLR carregará a imagem ou a rejeitará e passará para o próximo candidato. Se nenhum candidato viável for encontrado, ele carrega a imagem padrão e usa o jit para compilá-la normalmente. Nenhuma parte da imagem nativa real é lida (apenas sua existência é verificada), então o ByeIntegrity simplesmente coloca a DLL de payload com o mesmo nome que a imagem nativa teria.

A versão atualizada do ByeIntegrity vem com uma ferramenta chamada AUXGen, que recebe o nome de um assembly do GAC e gera seu arquivo AUX correspondente. O arquivo AUX é gerado de forma que corresponda às verificações do CLR e o CLR carregará a "imagem nativa" descrita pelo arquivo AUX. Nota: AUXGen não lida com dependências ao gerar o arquivo AUX. Ele faz apenas o necessário para que o CLR carregue a imagem. Postarei detalhes do formato do arquivo AUX mais tarde.

O ByeIntegrity agora usa ISecurityEditor, assim como o UACMe faz, o que reduz o código necessário. Também requer que você tenha gerado o arquivo AUX para o assembly MMCEx e o colocado no mesmo diretório do ByeIntegrity. MMCEx agora é a imagem alvo devido à sua ordem de carregamento e nome mais curto.

Como funciona

O ByeIntegrity sequestra uma DLL localizada no Cache de Imagens Nativas (NIC). O NIC é usado pelo .NET Framework para armazenar assemblies .NET otimizados que foram gerados por programas como Ngen, o Gerador de Imagens Nativas do .NET Framework. Como o Ngen geralmente é executado sob o usuário atual com privilégios de Administrador através do Agendador de Tarefas, o NIC concede acesso de modificação para membros do grupo Administradores.

O Snap-in do Firewall do Windows do Console de Gerenciamento Microsoft (MMC) usa o .NET Framework e, ao inicializá-lo, módulos do NIC são carregados no processo do MMC. O executável do MMC usa o AutoElevate, um mecanismo que o Windows usa para elevar automaticamente o token de um processo sem solicitação do UAC.

O ByeIntegrity sequestra uma DLL específica localizada no NIC chamada Accessibility.ni.dll. Ele escreve algum shellcode em uma área de preenchimento de tamanho apropriado localizada na seção .text da DLL. O ponto de entrada da DLL é então atualizado para apontar para o shellcode. Ao carregar a DLL, o ponto de entrada (que na verdade é o shellcode) é executado. O shellcode calcula o endereço de kernel32!CreateProcessW, cria uma nova instância do cmd.exe executando como Administrador e então simplesmente retorna TRUE. Isso é apenas para o motivo DLL_PROCESS_ATTACH; todos os outros motivos retornarão TRUE imediatamente.

UACMe

Este ataque está implementado no UACMe como método #63. Se você quiser testar este ataque, use o UACMe primeiro. O ataque é o mesmo, no entanto, o UACMe usa um método diferente para modificar o NIC. O ByeIntegrity usa IFileOperation enquanto o UACMe usa ISecurityEditor. Além disso, o UACMe escolhe o Accessibility.ni.dll correto para o seu sistema e realiza as tarefas de manutenção do sistema, se necessário (para gerar os componentes do NIC). O ByeIntegrity simplesmente escolhe a primeira entrada do NIC que existe (que pode ou não ser a entrada correta que o MMC está usando) e não executa as tarefas de manutenção do sistema. O ByeIntegrity contém significativamente mais código do que o UACMe, então ler a implementação do UACMe será muito mais fácil do que ler o código do ByeIntegrity. Por último, o ByeIntegrity inicia um processo filho durante o ataque, enquanto o UACMe não.

tl;dr: UACMe é mais simples e mais eficaz que o ByeIntegrity, então use o UACMe primeiro.

Usando o código

Se você está lendo isso, provavelmente sabe como compilar o código. Apenas note que isso não foi testado ou projetado pensando em x86, e provavelmente não funcionará em x86 de qualquer maneira.

Assim como o UACMe, nunca enviarei binários compilados para este repositório. Sempre há pessoas que querem que o mundo queime, e não vou fornecer um caminho fácil para elas executarem isso no computador de outra pessoa e causarem danos intencionais. Também não quero que script-kiddies usem este ataque sem entender o que ele faz e os danos que pode causar.

Versões Suportadas

Este ataque funciona a partir do Windows 7 (7600) até a versão mais recente do Windows.

Baixar ferramenta