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

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

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

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

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

Категории

Все категории
Loading categories
RustChain — Скрывайте артефакты памяти с помощью ROP и аппаратных точек останова. | Kitploit
Инструменты/GitHubGitHub/kudaes/rustchain
Криминалистика памятиЭксплуатацияRed TeamingРазработка Полезной Нагрузки
GitHubkudaes/rustchain

RustChain

Скрывайте артефакты памяти с помощью ROP и аппаратных точек останова.

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

Популярное

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

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

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

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

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

Описание

Этот инструмент — простой PoC того, как скрыть артефакты памяти с помощью ROP-цепочки в сочетании с аппаратными точками останова. ROP-цепочка изменит защиту страницы памяти основного модуля на N/A во время сна (т.е. при вызове функции Sleep). Для получения более подробной информации об этой технике обхода сканирования памяти ознакомьтесь с оригинальным проектом Gargoyle. Только x64.

Идея состоит в том, чтобы установить аппаратную точку останова в kernel32!Sleep и новый фильтр верхнего уровня для обработки исключения. При вызове Sleep срабатывает предварительно установленная функция фильтра исключений, что позволяет нам вызвать ROP-цепочку без необходимости использования классических хуков функций. Таким образом, мы избегаем появления странных и необычных частных областей памяти в процессе, связанных с известными DLL.

ROP-цепочка просто вызывает VirtualProtect() для установки текущей страницы памяти в N/A, затем вызывает SleepEx и, наконец, восстанавливает защиту памяти RX.

Обзор процесса выглядит следующим образом:

  • Мы используем SetUnhandledExceptionFilter для установки новой функции фильтра исключений.
  • SetThreadContext используется для установки аппаратной точки останова на kernel32!Sleep.
  • Мы вызываем Sleep, что вызывает аппаратную точку останова и направляет поток выполнения к нашей функции фильтра исключений.
  • ROP-цепочка вызывается из функции фильтра исключений, позволяя изменить защиту текущей страницы памяти на N/A. Затем вызывается SleepEx. Наконец, ROP-цепочка восстанавливает защиту памяти RX, и нормальное выполнение продолжается.

Этот процесс повторяется бесконечно.

Как видно на изображении, защита памяти основного модуля меняется на N/A во время сна, что позволяет избежать сканирования памяти, ищущего страницы с разрешением на выполнение.

Установлена защита памяти N/A во время сна

Компиляция

Поскольку мы используем плагин LITCRYPT для обфускации строковых литералов, перед компиляцией кода необходимо установить переменную окружения LITCRYPT_ENCRYPT_KEY:

root@kitploit:~
C:\Users\User\Desktop\RustChain> set LITCRYPT_ENCRYPT_KEY="yoursupersecretkey"

После этого просто скомпилируйте код и запустите инструмент:

root@kitploit:~
C:\Users\User\Desktop\RustChain> cargo build
C:\Users\User\Desktop\RustChain\target\debug> rustchain.exe

Ограничения

Этот инструмент — всего лишь PoC, и для полноценной работы необходимо реализовать некоторые дополнительные функции. Основная цель проекта — изучить, как реализовать ROP-цепочку и интегрировать её в Rust. Из-за этого инструмент будет работать только при использовании «как есть», и при попытке использовать его иными способами (например, компиляции в DLL и рефлексивной загрузки и выполнения) ожидаются сбои.

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

  • @thefLinkk за его проект DeepSleep, который вдохновил меня на создание этого инструмента.
Скачать инструмент