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
RustChain — Ocultar artefatos de memória usando ROP e breakpoints de hardware. | Kitploit
Ferramentas/GitHubGitHub/kudaes/rustchain
Forensia de MemóriaExploraçãoRed TeamingDesenvolvimento de Payloads
GitHubkudaes/rustchain

RustChain

Ocultar artefatos de memória usando ROP e breakpoints de hardware.

Ver Repositório
15120há 2 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

Descrição

Este é um PoC simples de como ocultar artefatos de memória usando uma cadeia ROP em combinação com breakpoints de hardware. A cadeia ROP alterará as proteções da página de memória do módulo principal para N/A enquanto estiver em suspensão (isto é, quando a função Sleep é chamada). Para informações mais detalhadas sobre esta técnica de evasão de varredura de memória, veja o projeto original Gargoyle. Apenas x64.

A ideia é configurar um breakpoint de hardware em kernel32!Sleep e um novo filtro de nível superior para tratar a exceção. Quando Sleep é chamada, a função de filtro de exceção definida anteriormente é acionada, permitindo-nos chamar a cadeia ROP sem a necessidade de usar hooks de função clássicos. Desta forma, evitamos deixar regiões de memória privadas estranhas e incomuns no processo relacionadas a DLLs conhecidas.

A cadeia ROP simplesmente chama VirtualProtect() para definir a página de memória atual como N/A, depois chama SleepEx e, finalmente, restaura a proteção de memória RX.

A visão geral do processo é a seguinte:

  • Usamos SetUnhandledExceptionFilter para definir uma nova função de filtro de exceção.
  • SetThreadContext é usado para definir um breakpoint de hardware em kernel32!Sleep.
  • Chamamos Sleep, acionando o breakpoint de hardware e direcionando o fluxo de execução para a nossa função de filtro de exceção.
  • A cadeia ROP é chamada a partir da função de filtro de exceção, permitindo alterar a proteção da página de memória atual para N/A. Em seguida, SleepEx é chamada. Finalmente, a cadeia ROP restaura a proteção de memória RX e a execução normal continua.

Este processo se repete indefinidamente.

Como pode ser visto na imagem, a proteção de memória do módulo principal é alterada para N/A durante a suspensão, o que evita varreduras de memória que procuram páginas com permissão de execução.

N/A memory protection is set while sleeping

Compilação

Como estamos usando o plugin LITCRYPT para ofuscar literais de string, é necessário configurar a variável de ambiente LITCRYPT_ENCRYPT_KEY antes de compilar o código:

root@kitploit:~
C:\Users\User\Desktop\RustChain> set LITCRYPT_ENCRYPT_KEY="yoursupersecretkey"

Depois disso, basta compilar o código e executar a ferramenta:

root@kitploit:~
C:\Users\User\Desktop\RustChain> cargo build
C:\Users\User\Desktop\RustChain\target\debug> rustchain.exe

Limitações

Esta ferramenta é apenas um PoC e alguns recursos extras devem ser implementados para ser totalmente funcional. O objetivo principal do projeto era aprender como implementar uma cadeia ROP e integrá-la dentro do Rust. Por causa disso, esta ferramenta só funcionará se você a usar como está, e falhas são esperadas se você tentar usá-la de outras maneiras (por exemplo, compilando-a como uma DLL e tentando carregá-la reflexivamente e executá-la).

Créditos

  • @thefLinkk pelo seu projeto DeepSleep que me inspirou a criar esta ferramenta.
Baixar ferramenta