Sleep Obfuscation — Encrypting Beacons During Rest
The Problem of Persistent Memory Presence
┌──────────────────────────────────────────────────────────────────────┐
│ Beacon Lifecycle with Sleep Obfuscation │
│ │
│ [Beacon wakes up] │
│ │ │
│ ▼ │
│ [Decrypts its own image in memory] │
│ │ │
│ ▼ │
│ [Checks in with C2, executes tasks] │
│ │ │
│ ▼ │
│ [Encrypts its own image: code, data, keys] │
│ │ │
│ ─────┼────────────────────────────────────────────────────────── │
│ Beacon sleeps. Memory contains only random bytes. │
│ No memory scanner finds recognizable patterns. │
│ ─────┼────────────────────────────────────────────────────────── │
│ │ │
│ ▼ │
│ [Timer fires → wake up → decrypt → cycle restarts] │
└──────────────────────────────────────────────────────────────────────┘Technique 1: Ekko — Timer-based Sleep Obfuscation
Technique 2: Foliage — APC-based Sleep Obfuscation
Technique 3: Gargoyle — ROP-based Sleep Obfuscation
Technique 4: Stack Spoofing During Sleep
C2 Framework Support
Detecting Sleep Obfuscation
References
Last updated