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
DeepSleep — Uma variante do Gargoyle para x64 para ocultar artefatos de memória usando apenas ROP e PIC | Kitploit
Ferramentas/GitHubGitHub/theflink/deepsleep
Forensia de MemóriaExploraçãoRed TeamingDesenvolvimento de Payloads
GitHubtheflink/deepsleep

DeepSleep

Uma variante do Gargoyle para x64 para ocultar artefatos de memória usando apenas ROP e PIC

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

DeepSleep

Uma variante do Gargoyle para x64 para ocultar artefatos de memória usando apenas ROP e PIC.

Muito obrigado ao @waldoirc por documentar grandes partes desta técnica em seu blog
Esta implementação é diferente por não fazer uso de APCs e ser totalmente implementada como PIC.

Descrição

Criei isto para entender melhor como evadir artefatos de memória usando uma técnica semelhante ao Gargoyle no x64. A ideia é configurar uma ROPChain chamando VirtualProtect() -> Sleep() -> VirtualProtect() para marcar minha própria página como N/A enquanto estiver em Sleep.

Diferente do Gargoyle e outras implementações semelhantes, confio totalmente em ROP e não enfileiro nenhum APC. O DeepSleep em si é implementado como totalmente PIC, o que facilita enumerar quais páginas de memória devem ser ocultadas dos scanners.

Enquanto a thread está ativa, uma MessageBox aparece e a página do DeepSleep é marcada como executável. Durante o Sleep, a página é marcada como N/A.

Isso efetivamente contorna o Moneta no momento em que escrevo, se o DeepSleep for injetado e o endereço base da thread em execução não apontar para memória privada confirmada.

Verifiquei isso usando a técnica de injeção Earlybird para injetar DeepSleep.bin no notepad.exe

Moneta finding DeepSleep while showing msgbox Moneta not finding DeepSleep while showing msgbox

Uso

Usando Mingw:
Digite make e um DeepSleep.bin selvagem aparece.
Alternativamente, use o DeepSleep.bin pré-compilado :-)

Trabalho Futuro e Limitações

Trabalho Futuro

Posso lançar um loader para CS ou outros agentes C2. Similar ao YouMayPasser, o loader usaria hooks de sleep via HW breakpoints para evitar modificações suspeitas no kernel32.dll.

Limitações

Isso foi testado em 10.0.19044 N/A Build 19044

Os ROPgadgets dos quais dependo podem não existir no ntdll.dll em outras versões do Windows. Provavelmente é uma boa ideia usar ROPgadgets menores e mais genéricos e enumerar os gadgets em mais dlls além do ntdll.dll.

Detecção

A callstack de uma thread no estado DelayExecution inclui regiões de memória desconhecidas/adulteradas e adicionalmente inclui endereços para VirtualProtect(). Hunt-Sleeping-Beacons detecta isso.
Pode ser possível aplicar essa métrica a outros C2 que usam uma técnica diferente para esperar entre callbacks.

Weird Stack

Créditos

@waldoirc por documentar grandes partes da técnica aqui
@forrest Orr pelo Moneta
Josh Lospinoso pela técnica original do Gargoyle

Baixar ferramenta