Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Raccine — A Simple Ransomware Vaccine | Kitploit
Инструменты/GitHubGitHub/neo23x0/raccine
Defensive ToolsThreat IntelligenceIntrusion DetectionIncident ResponseAnomaly DetectionLog Analysis
GitHubneo23x0/raccine

Raccine

A Simple Ransomware Vaccine

Репозиторий
9821262 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Inactively Maintained

Raccine

Raccine

Простая защита от программ-вымогателей

Зачем

Мы довольно часто видим, как программы-вымогатели удаляют все теневые копии с помощью vssadmin. Что если просто перехватывать этот запрос и убивать вызвавший его процесс? Попробуем создать простую вакцину.

Дерево процессов программы-вымогателя

Как это работает

Мы регистрируем отладчик для vssadmin.exe (и wmic.exe) — им является наш скомпилированный raccine.exe. Raccine — это бинарный файл, который сначала собирает все PID родительских процессов, а затем пытается убить все родительские процессы.

Преимущества:

  • Метод довольно универсален
  • Нам не нужно заменять системный файл (vssadmin.exe или wmic.exe), что могло бы привести к проблемам с целостностью и ломать нашу «ракцинацию» в каждый день обновлений
  • Гибкая проверка параметров командной строки по YARA-правилам на предмет вредоносной активности
  • Изменения легко откатить
  • Работает на Windows 7 / Windows 2008 R2 и выше
  • Не требует постоянно запущенного исполняемого файла или дополнительной службы (без агента)

Недостатки / Слепые зоны:

  • Легитимное использование vssadmin.exe delete shadows (или любой другой комбинации из чёрного списка) становится невозможным
  • Он убивает даже процессы, которые пытались вызвать vssadmin.exe delete shadows, а это может быть процесс резервного копирования
  • Это не перехватит методы, при которых вредоносный процесс не является одним из процессов в дереве, вызвавших vssadmin.exe (например, через schtasks)

Процесс

  1. Вызов vssadmin.exe (и wmic.exe) перехватывается и передаётся raccine.exe как отладчику (vssadmin.exe delete shadows превращается в raccine.exe vssadmin.exe delete shadows)
  2. Затем мы обрабатываем аргументы командной строки и ищем вредоносные комбинации с помощью YARA-правил.
  3. Если вредоносная комбинация не найдена, мы создаём новый процесс с исходными параметрами командной строки.
  4. Если вредоносная комбинация найдена, мы собираем все PID родительских процессов и начинаем убивать их (это должны быть процессы вредоносного ПО, как показано на скриншотах выше). Raccine в течение 5 секунд показывает окно командной строки с убитыми PID, записывает это в журнал событий Windows и затем завершается сам.

Вредоносные комбинации:

  • delete и shadows (vssadmin, diskshadow)
  • resize и shadowstorage (vssadmin)
  • delete и shadowstorage (vssadmin)
  • delete и shadowcopy (wmic)
  • delete и catalog и -quiet (wbadmin)
  • win32_shadowcopy или элемент из списка закодированных команд (powershell)
  • recoveryenabled (bcedit)
  • ignoreallfailures (bcedit)

^ устаревший список: смотрите соответствующее YARA-правило

Список закодированных команд PowerShell: JAB, SQBFAF, SQBuAH, SUVYI, cwBhA, aWV4I, aQBlAHgA и многие другие

Пример

Emotet без Raccine — Ссылка

Emotet без Raccine

Emotet с Raccine — Ссылка (игнорируйте активность процессов, связанную с установкой Raccine)

Emotet с Raccine

Инфекция пресекается на корню.

Внимание !!!

ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!

Вы больше не сможете запускать команды, использующие указанные в чёрном списке команды, на «ракцинированной» машине, пока не примените патч для удаления raccine-reg-patch-uninstall.reg. Это может сломать различные решения для резервного копирования, которые выполняют эту конкретную команду во время своей работы. Будет заблокирован не только сам запрос, но и убиты все процессы в этом дереве, включая решение для резервного копирования и вызвавший его процесс.

Если у вас есть надёжный мониторинг безопасности, который журналирует все запуски процессов, вы можете проверить свои журналы, чтобы понять, используются ли vssadmin.exe delete shadows, vssadmin.exe resize shadowstorage ... или другие заблокированные командные строки часто или эпизодически в легитимных целях; в таком случае вам следует воздержаться от использования Raccine.

История версий

  • 0.1.0 — Начальная версия, которая перехватывала и блокировала все выполнения vssadmin.exe
  • 0.2.0 — Версия, которая блокирует только выполнения vssadmin.exe, содержащие в командной строке delete и shadows, а в остальных случаях передаёт все параметры новому процессу, который вызывает vssadmin с исходными параметрами
  • 0.2.1 — Убрано explorer.exe из белого списка
  • 0.3.0 — Поддержка метода wmic с вызовом delete shadowcopy; нет вывода для запусков процессов из белого списка (позволяет избежать проблем с обработкой вывода wmic)
  • 0.4.0 — Поддержка записи в журнал событий Windows каждой заблокированной попытки; поиск дополнительных вредоносных комбинаций параметров
  • 0.4.1 — Бинарные файлы со статической компоновкой
  • 0.4.2 — Исправления ошибок от John Lambert
  • 0.5.0 — Удалено логирование в журнал событий (базовая информация была не нужна, создавала лишнюю сложность; её можно получать и через логирование создания процессов), поддержка фильтрации wbadmin
  • 0.5.1 — Улучшения от @JohnLaTwC
  • 0.5.2 — Дополнительная проверка delete shadowstorage от @JohnLaTwC, ревью кода от @_hillu, иконка приложения
  • 0.5.3 — Пакетный установщик
  • 0.6.0 — Дополнительные проверки для bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures и bcdedit.exe /set {default} recoveryenabled no

Установка

Требования

  • VC++ Runtime для YARA-сканирования (установщик содержит пакет установки с https://aka.ms/vs/16/release/VC_redist.x64.exe)
  • .NET Framework 4.5
  • Доступ в интернет для обновления YARA-правил
  • Windows 7 / Windows 2008 R2 и выше

Как пакет Visual C++ Redistributable, так и .NET Framework будут установлены автоматически при запуске install-raccine.bat.

Автоматическая установка

  1. Загрузите Raccine.zip из раздела Релизы
  2. Распакуйте его
  3. Запустите raccine-installer.bat от имени администратора

Пакетный установщик для Windows

Пакетный установщик включает опцию «удаление».

Ручное удаление

От имени администратора выполните:

  1. Выполните raccine-reg-patch-uninstall.reg
  2. Удалите папки %ProgramFiles%\Raccine и %ProgramData%\Raccine
  3. Выполните reg delete HKCU\Software\Raccine /F
  4. Выполните taskkill /F /IM RaccineSettings.exe
  5. Выполните reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /F
  6. Выполните schtasks /DELETE /TN "Raccine Rules Updater" /F

Обновления

Обновление программы

Для обновления мы рекомендуем удалить и заново установить программу. При удалении стираются все ключи реестра с настройками.

Обновление сигнатур

Начиная с версии 1.2, в Raccine встроен модуль обновления сигнатур. Эта программа с именем RaccineRulesSync.exe настроена на запуск раз в день через запланированное задание. Вы можете запустить обновление сигнатур вручную, используя опцию в меню значка в трее.

Сопоставление по YARA

Начиная с версии 1.0, Raccine дополнительно использует YARA-правила, чтобы определять, является ли командная строка процесса или родительский процесс вредоносными. Raccine использует два набора правил для двух разных целей.

  1. ./yara — правила, которые применяются к командной строке со всеми параметрами, например WMIC.exe delete justatest
  2. ./yara/in-memory — правила, которые применяются к памяти процесса родительского процесса нашего перехваченного процесса, например ransomware.exe, запустившего перехваченный нами процесс vssadmin.exe

Внешние переменные YARA

Начиная с версии 1.1, мы передаём список внешних переменных в процесс сопоставления YARA, чтобы можно было создавать гораздо более сложные и продуманные YARA-правила, учитывающие атрибуты процесса и его родителя.

Процесс сопоставления в командной строке выглядит так:

root@kitploit:~
"C:\Program Files\Raccine\yara64.exe" -d FromRaccine="true" -d Name="WMIC.exe" -d ExecutablePath="C:\Windows\System32\wbem\WMIC.exe" -d CommandLine="WMIC.exe delete justatest" -d  Priority=32 -d FromRaccine="true" -d ParentName="cmd.exe" -d ParentExecutablePath="C:\Windows\System32\cmd.exe" -d ParentCommandLine="'C:\WINDOWS\system32\cmd.exe' " -d ParentPriority=32 C:\ProgramData\Raccine\yarayara\mal_emotet.yar C:\ProgramData\Raccine\yara\Rac1C6A.tmp

В следующем листинге показан пример YARA-правила, использующего внешние переменные в своём условии.

root@kitploit:~
rule env_vars_test {
    condition:
        Name contains "WMIC.exe"
        and CommandLine contains "delete justatest"
        and ParentPriority >= 8
        and (
            ParentCommandLine contains "cmd"
            or ParentCommandLine contains "powershell"
        )
}

Развёртывание конфигурации через GPO

Папка GPO содержит Raccine.ADMX и Raccine.ADML. При развёртывании файл Raccine.ADMX помещается в C:\Windows\PolicyDefinitions. Сопутствующий файл Raccine.ADML помещается в C:\Windows\PolicyDefinitions\en-US.

Для использования: откройте GPEDIT.MSC > Конфигурация компьютера > Административные шаблоны > Система > Raccine

После внесения изменений может потребоваться применить групповую политику, выполнив gpupdate.exe.

Файл журнала

Файл журнала со всеми перехватами и выполненными действиями записывается в C:\ProgramData\Raccine\Raccine_log.txt

Файл журнала

Журнал событий Windows

Каждое событие блокировки создаёт запись в журнале событий Application.

Журнал событий

Идентификаторы, которые генерирует Raccine

  • EventId 1 — Действия по установке
  • EventId 2 — Обнаружена вредоносная активность
  • EventId 3 — Обнаружена безвредная активность

Режим симуляции

Начиная с версии 0.10.0, Raccine можно установить в «режиме симуляции», который активирует все триггеры, записывает все действия, но ничего не убивает. Этот режим следует использовать в средах, где решения для резервного копирования и другое легитимное ПО работают достаточно долго, чтобы можно было проверить, не помешает ли Raccine другому программному обеспечению. Идея в том, чтобы установить Raccine в режиме симуляции, дать ему вести журнал неделю или месяц, а затем проверить журналы и понять, заблокировал бы он легитимное ПО, используемое в организации.

Запуск с уничтожением процессов

Скриншот

Запустите raccine.exe и наблюдайте, как умирает дерево родительских процессов (скриншот v0.1)

Запуск с уничтожением процессов

GUI

Доступен и обязателен начиная с версии 1.

GUI

GUI

GUI

Смена цели перехвата

Если программа-вымогатель, с которой вы сейчас работаете, использует определённое имя процесса, например taskdl.exe, вы можете просто изменить .reg-патч для перехвата вызовов этого имени и позволить Raccine убить все родительские процессы в дереве вызвавшего процесса.

Нужна помощь

Я хотел бы расширить Raccine, но мне не хватает навыков программирования на C++, особенно на платформе Windows.

Помощь — Моя система сломана

Если с вашей установкой что-то случится, например внезапные сообщения об ошибках, сломанные службы или программы, которые больше не запускаются, выполните файл raccine-reg-patch-uninstall.reg во вложенной папке reg-patches. Это должно вернуть всё в нормальное состояние.

После этого вы также сможете выполнить полное удаление с помощью install-raccine.bat.

Прочее

Правильное произношение — "Rax-Een".

Благодарности

  • Florian Roth @cyb3rops
  • John Lambert @JohnLaTwC
  • Eran Yom-Tov @eran_yom_tov
  • Ollie Whitehouse @ollieatnccgroup
  • Branislav Đalić @LordOfThePies4
  • Hilko Bengen @hillu
Скачать инструмент
  • 0.7.0 — Дополнительные проверки для powershell.exe и win32_shadowcopy или списка закодированных команд
  • 0.7.1 — Улучшения от @JohnLaTwC
  • 0.7.2 — Использование абсолютных путей в патчах реестра
  • 0.8.0 — Создание файла журнала со всеми перехваченными запросами и выполненными действиями C:\ProgramData\Raccine_log.txt
  • 0.9.0 — Запись в журнал событий Windows от @JohnLaTwC
  • 0.10.0 — Только режим симуляции
  • 0.10.1 — Исправление режима симуляции
  • 0.10.2 — Включена команда diskshadow.exe delete shadows
  • 0.10.3-5 — Незначительные исправления и дополнения
  • 1.0 BETA — Элементы графического интерфейса и проверка параметров командной строки по YARA-правилам
  • 1.1 BETA — Сопоставление YARA-правил с внешними переменными, функции поиска и устранения неисправностей
  • 1.2 BETA — Обновление сигнатур
  • 1.3 BETA — Сканирование памяти вызвавшего родительского процесса по YARA-правилам
  • 1.4 BETA — Полная поддержка x86, перенос статических строк в YARA-правила для обхода обнаружения антивирусами, журнал разрешённых выполнений, установка .NET Framework в инсталляторе
  • 1.4.2 BETA — Исправление кода возврата (проброс кода возврата перехваченной программы), перехват taskkill.exe
  • ПеременнаяОписаниеПример значения
    FromRaccinetrue
    NameИмя файла образаWMIC.exe
    ExecutablePathПолный путь к бинарному файлуC:\Windows\System32\wbem\WMIC.exe
    CommandLineПолная командная строка с параметрамиWMIC.exe delete justatest
    PriorityПриоритет процесса32
    ParentNameИмя файла образа родительского процессаcmd.exe
    ParentExecutablePathПолный путь к исполняемому файлу родительского процессаC:\Windows\System32\cmd.exe
    ParentCommandLineПолная командная строка родительского процесса с параметрамиC:\WINDOWS\system32\cmd.exe
    ParentPriorityПриоритет родительского процесса32