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
LdrLockLiberator — Para quando DLLMain é a única opção | Kitploit
Ferramentas/GitHubGitHub/elliotkillick/ldrlockliberator
Mecanismos de PersistênciaExploraçãoPós-ExploraçãoRed TeamingDesenvolvimento de Payloads
GitHubelliotkillick/ldrlockliberator

LdrLockLiberator

Para quando DLLMain é a única opção

Ver Repositório
4357113há 1 anoRevisado 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 →
Site
Compartilhar
Logo

LdrLockLiberator

Para quando DLLMain é a única opção

LdrLockLiberator é uma coleção de técnicas para escapar ou, de outra forma, dispensar o Loader Lock ao executar seu código a partir de DllMain ou em qualquer outro lugar onde o bloqueio possa estar presente. Foi lançado em conjunto com o artigo "Perfect DLL Hijacking". Nós lhe damos a chave para destravar o carregador de bibliotecas e fazer o que quiser com o seu carregador (no seu próprio computador)!

As técnicas são projetadas para serem universais, limpas e 100% seguras sempre que possível. Elas são projetadas para funcionar sem modificar a proteção de memória ou ponteiros. Isso é importante para permanecer compatível com mitigações modernas de exploração. A única arquitetura oficialmente suportada é x86-64 (32 bits está praticamente extinto).

Quer aprender as razões arquiteturais pelas quais DllMain é tão problemático no Windows enquanto sistemas operacionais do tipo Unix não enfrentam dificuldades aqui? Por favor, fique à vontade!.

Técnicas

LdrFullUnlock

É exatamente o que parece. Destrave o Loader Lock, defina os eventos do loader e inverta LdrpWorkInProgress. É recomendado manter RUN_PAYLOAD_DIRECTLY_FROM_DLLMAIN indefinido para a melhor estabilidade.

NÃO USE ESTA TÉCNICA EM CÓDIGO DE PRODUÇÃO. Isso foi criado como um subproduto da minha pura curiosidade e vontade de não deixar nenhuma pedra sem virar. Qualquer coisa que você fizer com este código é por sua conta.

Escapando na Saída

Usamos o atexit da CRT, tipicamente usado por EXEs, em nosso código de DLL para escapar do Loader Lock quando o programa termina. Para cargas dinâmicas (usando LoadLibrary), isso se torna 100% seguro ao fixar (LDR_ADDREF_DLL_PIN) nossa biblioteca com LdrAddRefDll, para que um FreeLibrary subsequente não remova nossa DLL da memória.

Usando Locks a Nosso Favor

Em breve!

Exemplos

Os exemplos fornecidos sequestram MpClient.dll de C:\Program Files\Windows Defender\Offline\OfflineScannerShell.exe. Instruções são fornecidas nos comentários do código-fonte para adaptar facilmente isso a qualquer outra combinação de DLL e programa (principalmente apenas atualizando os exports para cargas estáticas)!

Como prova de conceito, executamos ShellExecute como payload padrão. No entanto, você pode fazer com que isso faça qualquer coisa que quiser!

Compilação

Visual Studio

O LdrLockLiberator.c na raiz deste projeto foi testado para compilar no Visual Studio 2022.

Vincule ao NTDLL selecionando o projeto atual do Visual Studio na janela Solution Explorer e navegando até Project > Properties na barra de menus. Nos menus suspensos Configuration no topo, selecione All Configurations e All Platforms. Agora, vá para Linker > Input e acrescente a Additional Dependencies: ntdll.lib.

WDK

Instalando o WDK Correto

  1. Vá para a página de download do WDK
  2. Clique no link do Windows 7 WDK 7.1.0 para começar a baixar a versão correta do WDK
  • Este é o último WDK público que oficialmente suporta a vinculação à MSVCRT original (C:\Windows\System32\msvcrt.dll)
  • Checksum SHA-256: 5edc723b50ea28a070cad361dd0927df402b7a861a036bbcf11d27ebba77657d
  1. Monte o ISO baixado e execute KitSetup.exe
  2. Avance pelo processo de instalação usando as opções padrão

Compilando

  1. No menu Iniciar, pesquise por "x64 Free Build Environment" e abra-o
  2. Navegue (usando cd) até LdrLockLiberatorWDK neste repositório
  3. Execute build

Pronto! Sua DLL está compilada e pronta para uso!

Como alternativa ao WDK, compilar com MinGW provavelmente também funcionaria.

Licença

MIT License - Copyright (C) 2023-2024 Elliot Killick [email protected]

Baixar ferramenta