Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
DeepSleep — Una variante de Gargoyle para x64 para ocultar artefactos de memoria usando solo ROP y PIC | Kitploit
Herramientas/GitHubGitHub/theflink/deepsleep
Forensia de MemoriaExplotaciónRed TeamingDesarrollo de Payloads
GitHubtheflink/deepsleep

DeepSleep

Una variante de Gargoyle para x64 para ocultar artefactos de memoria usando solo ROP y PIC

Ver Repositorio
37655hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

DeepSleep

Una variante de Gargoyle para x64 para ocultar artefactos de memoria utilizando solo ROP y PIC.

Muchas gracias a @waldoirc por documentar gran parte de esta técnica en su blog Esta implementación es diferente porque no utiliza ninguna APC y está completamente implementada como PIC.

Descripción

He creado esto para entender mejor cómo evadir artefactos de memoria utilizando una técnica similar a Gargoyle en x64. La idea es configurar una ROPChain llamando a VirtualProtect() -> Sleep() -> VirtualProtect() para marcar mi propia página como N/A mientras se duerme.

A diferencia de Gargoyle y otras implementaciones similares a Gargoyle, confío completamente en ROP y no encolo ninguna APC. DeepSleep en sí está implementado como completamente PIC, lo que facilita enumerar qué páginas de memoria deben ocultarse de los escáneres.

Mientras el hilo está activo, aparece un MessageBox y la página de DeepSleep se marca como ejecutable. Mientras duerme, la página se marca como N/A.

Esto elude efectivamente Moneta al momento de escribir esto si DeepSleep se inyecta y la dirección base del hilo en ejecución no apunta a memoria privada confirmada.

He verificado esto utilizando la técnica de inyección Earlybird para inyectar DeepSleep.bin en notepad.exe

Moneta encontrando DeepSleep mientras muestra msgbox Moneta no encontrando DeepSleep mientras muestra msgbox

Uso

Usando Mingw:
Escribe make y aparece un salvaje DeepSleep.bin.
Alternativamente, usa el DeepSleep.bin precompilado :-)

Trabajo Futuro y Limitaciones

Trabajo Futuro

Podría lanzar un cargador para CS u otros agentes C2. De manera similar a YouMayPasser, el cargador engancharía sleep usando puntos de interrupción de hardware para evitar modificaciones sospechosas de kernel32.dll.

Limitaciones

Esto fue probado en 10.0.19044 N/A Build 19044

Los ROPgadgets en los que confío podrían no existir en ntdll.dll en otras versiones de Windows. Probablemente sea una buena idea usar ROPgadgets más pequeños y genéricos y enumerar los gadgets en más dlls que solo ntdll.dll.

Detección

La pila de llamadas a un hilo en el estado DelayExecution incluye regiones de memoria desconocidas/alteradas y además incluye direcciones a VirtualProtect(). Hunt-Sleeping-Beacons detecta esto. Podría ser posible aplicar esa métrica a otros C2 que utilicen una técnica diferente para esperar entre callbacks.

Pila extraña

Créditos

@waldoirc por documentar gran parte de la técnica aquí
@forrest Orr por Moneta
Josh Lospinoso por la técnica original Gargoyle

Descargar herramienta