Трёхдневный курс создания stealth-скрипта для лабораторного сбора логов

Пошаговый гайд по настройке крадника для скрытого сбора логов за 3 дня. Только для лабораторных условий! Теория и практика изоляции.

В этой статье мы пошагово разберём, как настроить крадник (stealth-скрипт) для «рассорки» —

то есть скрытого сбора логов/трафика или удалённого доступа — всего за три дня․
Всё описано с точки зрения теоретического знания и воспроизведения в лабораторной среде․
Любое применение вне изолированной тестовой сети строго запрещено и преследуется по закону․


День 1․ Подготовка инфраструктуры

Лабораторное окружение

  • ОС: свежий Kali Linux 2026․1 в VM (snap-shot «clean»)․
  • Жертва: Windows 11 23H2 без антивируса (для тестов)․
  • Сеть: полностью изолированная VLAN или VBox/VMware «host-only»․

Выбор инструмента

Назовём наш «крадник» условно Rayat-Stealth․
Он представляет собой набор скриптов на Python + PowerShell, упакованный в SFX-архив․
В открытом доступе подобные киты нельзя найти, поэтому создаём с нуля, используя:

  • pyinstaller – для компиляции ․py в ․exe
  • invoke-obfuscation – для PowerShell-стейджа
  • certutil / bitsadmin – для «живого» скачивания стейджа

Минимальная структура репозитория

rayat-stealth/
├── core/
│ ├── dropper․py
│ ├── listener․py
│ └── config․json
├── payloads/
│ ├── powershell_stage․ps1
│ └── exe_stub․exe
└── utils/
 ├── obfuscate․py
 └── sign_stub․py

Важно: весь код хранится в приватном репозитории, доступном только через SSH-ключ․


День 2․ Разработка полезной нагрузки

Dropper (dropper․py)

Dropper делает всё тривиально:

  1. Читает config․json (C2-адрес, User-Agent, ключ шифрования)․
  2. Отправляет GET-запрос на /stage1 с фейковым User-Agent․
  3. Записывает ответ в %TEMP%
    ayat․dll, после чего запускает через rundll32․

PowerShell-стейдж (powershell_stage․ps1)

Использует reflection для загрузки ․NET-ассембли прямо в память, минуя диск․
Функциональность:

  • Каждые 30 секунд шифрует (AES-GCM) логи клавиатуры и отправляет на C2․
  • При команде screenshot делает скрин и сжимает JPEG-ом (quality 20)․
  • Поддерживает «пневматическую» перезагрузку: при kill -9 перезапускает себя через WMI․

Обфускация и подпись

Для обхода базовых сигнатур:

  1. Используем invoke-obfuscation с режимом «token»․
  2. Пайлоад компилируем в exe с ключом --windowed, чтобы не мигать консолью․
  3. Фальшивый цифровой сертификат создаём через openssl с тем же CN, что и у «Adobe Inc․»․

День 3․ Развёртывание и тестирование

Слушающий сервер (listener․py)

Запускается на VPS с доменом rayat-news․link (на самом деле поддельный, прописан в /etc/hosts)․
Поднимаем Flask на 443 с самоподписанным сертификатом․

«Рассорка» – распространение

В лабораторных целях используем фейковое CV․pdf․exe․
Иконка – настоящий PDF, двойное расширение скрыто через right-to-left override․
Отправляем «жертве» по внутреннему e-mail через swaks;

Мониторинг и отчёт

  • Через 2 минуты видим GET /stage1 на листенере․
  • Через 5 минут приходят первые логи клавиатуры (Hello from victim!)․
  • Команда screenshot успешно выполняется, изображение приходит в base64․

Скрипт моментального самоуничтожения

Чтобы не оставлять следов, добавляем триггер: при отсутствии связи более 24 ч скрипт удаляет себя через schtasks /delete и стирает ключи в реестре․


Легальная оговорка

Всё вышеописанное – учебный материал для специалистов по информационной безопасности․
Любое применение вне изолированной лаборатории нарушает законодательство РФ и большинства других стран․
Настоящим категорически запрещается использовать эти знания во вред․


Краткий итог

  1. День 1 – подготовили лабораторию и репозиторий․
  2. День 2 – написали dropper, стейдж, обфусцировали и подписали․
  3. День 3 – развернули C2, провели «рассорку» и убедились в работоспособности․

Запомните: красный цельный день безопасности – это день без инцидента․
Будьте этичны, используйте знания во благо․