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
MaldevAcademyLdr.2 — Implementação RunPE com múltiplas técnicas de evasão (2) | Kitploit
Ferramentas/GitHubGitHub/maldev-academy/maldevacademyldr.2
Evasão de IDS/IPSPós-ExploraçãoEsteganografiaCriptografiaRed TeamingDesenvolvimento de Payloads
GitHubmaldev-academy/maldevacademyldr.2

MaldevAcademyLdr.2

Implementação RunPE com múltiplas técnicas de evasão (2)

Ver Repositório
28639há 10 mesesRevisado 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

MaldevAcademyLdr.2: implementação RunPE com múltiplas técnicas evasivas


Links Rápidos

Página inicial da Maldev Academy

Ementa da Maldev Academy

Preços da Maldev Academy



[!NOTE] Embora este repositório possa ser usado para executar outros binários, o foco principal foi em executar o executável mimikatz.exe. Isso é para fins de demonstração e teste, pois o mimikatz.exe é uma ferramenta bem conhecida de pós-exploração.


Recursos Mais Notáveis

  • Esteganografia: ocultação de payloads PE em arquivos PNG/JPG/JPEG/BMP/GIF usando a Transformada Discreta de Wavelet (DWT) com Modulação por Índice de Quantização (QIM) e Códigos de Correção de Erros (ECC). Vale ressaltar que o Algoritmo de Correção de Erros Reed-Solomon implementado pelo loader de PE é baseado no SRI-CSL/jel.

  • Utilizando a GPU para Evasão de Scanners de Memória: usando a biblioteca D3d11, a implementação move o payload PE injetado para a memória da GPU quando ela está ociosa, ocultando-o dos scanners de memória.

  • Spoofing de Pilha de Thread: Baseado em Cobalt-Strike/CallStackMasker, o código procura uma pilha de thread adequada e mascara a thread que executa o payload PE sempre que o payload está na memória da GPU.

  • Adulteração de Syscalls: Maldev-Academy/TrapFlagForSyscalling é usado para invocar syscalls adulteradas com base na Trap Flag.


Outros Recursos/Truques

  • Lida com DLLs de API Set usando ajkhoury/ApiSet.

  • Carrega as DLLs de payload necessárias em uma sequência aleatória para ajudar contra notificações de carregamento de imagem baseadas em sequência (se houver).

  • Usa AES-NI do Intel.AES-NI para criptografar as seções do payload PE antes de transferi-las para a memória da GPU e descriptografá-las após recuperá-las de lá.

  • Conta números primos por um período especificado como método para atrasar a execução. Essa técnica não é executada por padrão.

  • Remove os hooks de DLLs carregadas do diretório \knownDlls\ sem usar permissões de memória RWX. Essa técnica não é executada por padrão, pois alguns EDRs conseguiam detectar a lógica.

  • Se não estiver usando a técnica de adulteração de syscalls mencionada anteriormente, a implementação usará o HellsHall. Além disso, na rotina de remoção de hooks de DLL, a implementação utiliza win32u.dll para executar a instrução syscall, pois a seção de texto da ntdll.dll estará RW, o que nos impede de saltar para uma instrução syscall ali.

  • Sobrescreve o VEH do EDR C que é usado para lidar com exceções STATUS_GUARD_PAGE_VIOLATION, pois este fornecedor foi encontrado usando permissões para acionar exceções ao acessar DLLs falsas:



Uso - RunPeFile

RunPeFile é o principal arquivo binário que executará o EXE fornecido a partir do(s) arquivo(s) PNG armazenado(s) em sua seção de recursos. Algumas notas ao compilar RunPeFile:

  • Usando o arquivo de cabeçalho Configuration.h, é possível adicionar e remover recursos.
  • Defina a macro _DEBUG para habilitar o modo de depuração. Ou compile no modo Debug.
  • No repositório, a implementação atual do RunPeFile executará o mimikatz.exe.
  • Deve-se utilizar o script FileConstructor.py para atualizar o payload entregue pelo RunPeFile.

Uso - FileConstructor.py

O script FileConstructor.py é o script principal usado para gerar arquivos PNG contendo o payload EXE codificado via DWT. Esses PNGs são colocados no diretório EncodedPngs, de onde o projeto RunPeFile atualizado os incorpora na seção de recursos do binário compilado. Cada EXE é dividido em várias partes, e cada parte é incorporada em sua própria imagem PNG. Como resultado, você verá vários arquivos PNG que exibem todos a mesma imagem. Essa divisão é necessária porque o método de esteganografia (baseado em DWT combinado com correção de erros Reed–Solomon) normalmente não consegue encaixar um payload EXE inteiro em uma única imagem (dependendo do tamanho/pixels do PNG, bem como do tamanho do payload). Este script depende da constante NUM_SPLIT_PARTS para determinar em quantas partes o EXE de entrada será dividido.

O FileConstructor.py lida com os arquivos de projeto do Visual Studio do RunPeFile, bem como com a lógica de divisão em partes. Ele chama o script DwtStegPeFileToPng.py para fazer a incorporação real do payload.

Exemplos de chamada do FileConstructor.py:

root@kitploit:~
# Adds the embedded PNG(s) to the 'RunPeFile\RunPeFile.vcxproj' project by dafault:
python.exe .\FileConstructor.py --pe mimikatz.exe --png memes\cat.png                              

# Adds the embedded PNG(s) to the 'XYZ\XYZ.vcxproj' project:
python.exe .\FileConstructor.py --pe mimikatz.exe --png memes\cat.png --project XYZ\XYZ.vcxproj   

Uso - DwtStegPeFileToPng.py

O script DwtStegPeFileToPng.py é o script principal que implementa o algoritmo DWT para codificar um determinado arquivo em um PNG especificado. É um script independente e pode ser usado em outros cenários, mas neste repositório ele é chamado apenas por meio do script FileConstructor.py. Abaixo está como DwtStegPeFileToPng.py pode ser chamado:

root@kitploit:~
usage: DwtStegPeFileToPng.py [-h] (--encode | --decode) --png PNG --output OUTPUT [--file FILE] [-v]

DWT-based steganography tool for hiding files in PNG images

options:
  -h, --help       show this help message and exit
  --encode         Encode/embed a file
  --decode         Decode/extract a file
  --png PNG        PNG image file
  --output OUTPUT  Output file path
  --file FILE      File to embed (required for --encode)
  -v, --verbose    Verbose output

Uso - ExtractPePayloadFromPng

O projeto ExtractPePayloadFromPng é uma ferramenta independente para extrair payloads de arquivos PNG. Ela pode lidar com imagens únicas ou, quando recebe o PNG contendo a primeira parte de um arquivo PE dividido, reconstrói o payload completo a partir de todos os PNGs relacionados. Por exemplo, chamando ExtractPePayloadFromPng.exe assim:

root@kitploit:~
.\ExtractPePayloadFromPng.exe --i ..\..\EncodedPngs\mimikatz_part01.png --o mimikatz.exe

Extrairá o binário completo do mimikatz.exe dos arquivos PNG localizados no diretório EncodedPngs.


Limitações

  • A técnica de spoofing de pilha implementada foi testada apenas no Windows 11.
  • Para mover as seções do payload PE de e para a memória da GPU, é necessário ter uma GPU compatível com Direct3D-11 (discreta ou integrada), um driver WDDM 1.1+ e o runtime do DirectX 11 instalado.
  • Apenas payloads PE x64 são suportados.

Demonstração

[!NOTE] Alguns EDRs exigiram ajustes adicionais no código para um bypass bem-sucedido. Alguns recursos foram habilitados ou desabilitados dependendo do fornecedor de segurança encontrado.


MaldevAcademyLdr.2 Contra EDR A

BYPASS DO MDE

MaldevAcademyLdr.2 Contra EDR B

BYPASS DO S1

MaldevAcademyLdr.2 Contra EDR C

BYPASS DO ELASTIC

MaldevAcademyLdr.2 Contra PESIEVE

Fazendo bypass do Pesieve versão 0.4.1.1 com o seguinte comando:

root@kitploit:~
.\pe-sieve64.exe /data 4 /refl /iat 3 /obfusc 3 /shellc 4 /threads /pid XXXX

https://github.com/user-attachments/assets/47f5c3b9-e3c3-4be9-a063-2f3998071a57


Baixar ferramenta
PAGE_GUARD
image

O código é refatorado a partir de mannyfreddy no módulo Introdução à Manipulação de Vectored Handlers.

  • Busca manualmente payloads da seção de recursos, evitando APIs como FindResourceW e LoadResource.