Облачная C2-платформа с мёртвыми точками сброса — RSA-4096 + AES-256-GCM, 5 облачных провайдеров, агенты только на Rust, P2P-сеть, движок персистентности, сбор учётных данных
Фреймворк облачной персистентности · v3.0.2
Резервный плацдарм, маршрутизируемый через инфраструктуру, которую защитники не могут заблокировать.
Ваш основной C2 замолкает. Домен попадает в чёрный список. Бекон помечается как подозрительный. EDR убивает процесс. Вы вне игры.
Вам нужен второй канал — тот, который изначально не собирались блокировать.
Что если трафик командования и управления выглядел бы в точности как сотрудник, синхронизирующий файлы в Dropbox?
Это и есть Stratum. Команды и ответы передаются как обычные файлы внутри папки облачного хранилища. Агент никогда не подключается к инфраструктуре атакующего. Единственный наблюдаемый трафик — это HTTPS к провайдеру, который уже внесён в белый список межсетевого экрана цели, — потому что блокировка Dropbox или OneDrive означает блокировку каждого сотрудника, который ими пользуется.
Никакого teamserver. Никакого домена, принадлежащего атакующему. Никакого подозрительного TLS-сертификата. Нечего блокировать.
OPERATOR CLOUD PROVIDER TARGET
──────── ───────────── ──────
/Machine1/
WebGUI ──HTTPS──► input.txt 🔒 ◄── poll ── agent
output.txt 🔒 ──► read ──┘
heartbeat.txt (encrypted beacon)
Агент просыпается через настраиваемый интервал (+ логнормальный джиттер), читает входной файл, выполняет его, шифрует ответ, загружает его и засыпает. Всё шифруется сквозным образом с помощью RSA-4096-OAEP + AES-256-GCM. IP-адрес оператора никогда не появляется ни в одном сетевом журнале на стороне цели.
| Провайдер | Примечания | |
|---|---|---|
| Dropbox | OAuth2 refresh token · Корпоративные и личные аккаунты | |
| Microsoft OneDrive | Microsoft Graph API · Личные аккаунты и аккаунты M365 | |
| Google Drive | Google Drive API v3 · Поток сервисных аккаунтов OAuth2 | |
| SharePoint Online | Microsoft Graph API · Сайты тенантов M365 | |
| S3-совместимые | AWS S3 · DigitalOcean Spaces · Backblaze B2 · любой S3-эндпоинт |
Все пять используют один и тот же формат передачи данных, одну и ту же пару ключей RSA и одну и ту же сессию оператора. Переключайте провайдера в середине операции за считанные минуты, не трогая агента. Ни один другой open-source фреймворк не предоставляет этого из коробки.
SOC, желающий остановить C2, блокирует домен teamserver или фронтирующую инфраструктуру. SOC, желающий остановить Stratum, должен одновременно заблокировать Dropbox, OneDrive, Google Drive, SharePoint и S3. Это не правило файрвола — это бизнес-решение, на которое не пойдёт ни одно предприятие. Архитектура dead-drop не пытается обойти обнаружение. Она работает на инфраструктуре, которую защитник уже решил доверять — навсегда.
| Формат | Платформа | Зависимости |
|---|---|---|
.exe / .dll | Windows | Нет — PE, скомпилированный на Rust (MSVC-ABI), без интерпретатора, без PowerShell в дереве процессов |
.elf | Linux | Нет — musl-static, скомпилированный на Rust, работает на любом x86_64 Linux |
.bin | Linux / Windows | x64 PIC shellcode — вставляется в любой внешний загрузчик или инжектор |
Мастер генерирует их все. Вы отвечаете на запросы; он компилирует, шифрует и упаковывает. Никаких флагов компилятора, никаких переменных окружения, никакого ручного управления ключами.
| Режим | Как работает | Для чего лучше всего |
|---|---|---|
| staged-enc | Минимальный стаб на цели. При первом запуске: получает одноразовый bootstrap-ключ из облака, расшифровывает полный агент в памяти, удаляет ключ из облака. Полезная нагрузка никогда не попадает на диск в открытом виде. | Стандартные операции — наименьший первоначальный артефакт, ключ уничтожается при доставке |
| stageless-enc | Полный агент встроен в единый файл доставки, зашифрован ключом, вшитым в стаб. После доставки получение ключа из облака не требуется. | Изолированные или ограниченные сети — единый самодостаточный файл |
| stageless-plain | Агент в открытом виде. Команды и ответы остаются полностью зашифрованными при передаче. | Лаборатории и контролируемые среды |
Все режимы имеют одинаковое поведение после выполнения: стаб кэширует локально зашифрованный блоб с привязкой к аппаратному отпечатку, чтобы последующие запуски загружались с диска без обращения к облаку.
Прежде чем трогать хотя бы один ключ реестра или запись cron, запустите /persist probe. Агент проверяет каждую доступную технику на текущем уровне привилегий и возвращает отчёт о выполнимости. Неразрушающе — никаких артефактов не остаётся.
/persist probe
✓ schtask-logon — feasible (SYSTEM)
✓ registry-run — feasible
✗ schtask-boot — requires elevation
✓ startup-folder — feasible
...
Выберите то, что работает, установите это, а по завершении аккуратно удалите. WebGUI отслеживает каждую установленную технику в рамках сессии. /kill сносит всё — механизмы персистентности, бинарник, облачные артефакты — одной командой.
Дата срабатывания, окно обслуживания, логнормальный джиттер, одноразовый ключ начальной загрузки — всё настраивается один раз в мастере и навсегда компилируется в агент. Ничего не нужно администрировать во время работы, нечего забыть почистить в конце.
Stratum не заменяет Cobalt Strike, Sliver или Havoc. Это слой под ними.