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

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

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

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

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

Категории

Все категории
Loading categories
ROP_ROCKET — ROP ROCKET — это продвинутая платформа для атак с повторным использованием кода, с обширными возможностями генерации ROP цепочек, включая новую атаку на системные вызовы Windows, новый Heaven's Gate и «безшеллкодную» ROP. Платформа использует эмуляцию и обфускацию для расширения поверхности атаки. | Kitploit
Инструменты/GitHubGitHub/bw3ll/rop_rocket
Фреймворки для пентестаФреймворки для эксплойтовГенерация полезной нагрузкиЭксплуатацияОбратная инженерияШелл-кодЭксплуатация Бинарных Файлов
GitHubbw3ll/rop_rocket

ROP_ROCKET

Репозиторий
173298 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

ROP ROCKET — это продвинутая платформа для атак с повторным использованием кода, с обширными возможностями генерации ROP цепочек, включая новую атаку на системные вызовы Windows, новый Heaven's Gate и «безшеллкодную» ROP. Платформа использует эмуляцию и обфускацию для расширения поверхности атаки.

Поделиться

Представляем ROP ROCKET

Эта новая, продвинутая ROP-структура дебютировала на DEF CON 31 с некоторыми беспрецедентными возможностями. ROCKET генерирует несколько типов цепочек и предоставляет новые шаблоны или техники.

Обратите внимание, что это всё ещё работа в процессе, с некоторыми обновлёнными и расширенными возможностями, которые будут добавлены. Обновления должны быть регулярными. Если вы столкнётесь с проблемами, пожалуйста, сообщайте о них в issues или по электронной почте, и я их исправлю. Также будут добавлены дополнительные альтернативные способы генерации определённых типов гаджетов.

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

image

Мощные возможности ROP

ROP ROCKET очень мощный и обладает некоторыми уникальными возможностями, включая следующие:

  • Он может генерировать системные вызовы Windows для NtAllocateVirtualMemory и NtAllocateVirtualProtect – это первое известное использование прямых системных вызовов Windows в WoW64 ROP.
  • Он может генерировать новую атаку Heaven's Gate для перехода из x86 в x64 через ROP. Для работы с этим вам понадобится WinDbg x64 и подключение к уже запущенному процессу (не открывайте его непосредственно в отладчике).
  • Он может генерировать новую атаку Heaven's Gate для перехода из x64 в x86 через ROP. Это 64-битный код.
  • Он может генерировать ROP-атаки без шеллкода для функций LoadLibrary / GetProcAddress / System и LoadLibrary / GetProcAddress. Несколько других находятся в разработке для будущего релиза. Идея ROP «без шеллкода» — обойти обход DEP и вызывать функциональность, аналогичную шеллкоду, напрямую.
  • Он внутренне использует эмуляцию ROP-цепочек (в том числе рекурсивно) для определения расстояний до определённых указателей, используемых в качестве параметров, например указателя на строку или структуру. Без этого автоматическая генерация цепочек была бы, вероятно, неосуществима.
  • Он использует эмуляцию отдельных ROP-гаджетов для расширения поверхности атаки (пока внедрено не для всех). Это позволяет оценить каждый ROP-гаджет, чтобы увидеть, что может или не может быть испорчено, и т.д. Ожидайте гораздо большего от этой функции.
  • Это позволяет использовать гаджеты независимо от «плохих байтов» в адресе гаджета. Например, если вам нужен pushad, но в адресе есть плохие байты, мы можем закодировать его и декодировать во время выполнения, выполняя его через push r32 / ret. (См. опции обфускации.) Предусмотрено несколько типов обфускации, включая очень надёжное целочисленное переполнение, которое, вероятно, не подведёт, если есть доступные гаджеты. (Если вы исключите все \x00 и все гаджеты будут содержать их, ничего нельзя поделать.) Регистры также можно исключать, предотвращая их «затирание».
  • Альтернативный «снайперский» подход mov dereference для VirtualProtect – для тех, кому нужно избежать pushad.
  • Очень надёжные критерии исключения – исключение по CFG, ASLR, Windows DLL, плохим байтам и т.д.
  • Персистентность – ROP ROCKET извлекает x86-гаджеты при запуске. Они сохраняются в файле .obj, чтобы оставаться доступными при каждом открытии, что позволяет мгновенно использовать ранее найденные гаджеты. Генерация новых атак должна быть более или менее мгновенной. Примечание: если вы извлекли до 0x22 байтов, а затем решили уменьшить это значение, вам нужно будет очистить их и повторить захват; сохранение результатов происходит автоматически.
  • Файл config.cfg для полезных настроек в соответствии с личными предпочтениями.
  • Также планируются некоторые другие новые и уникальные функции.

Обход ASLR с высокой энтропией

Август 2025 г.: ROP ROCKET имеет мини-инструмент обхода ASLR, выпущенный на DEFCON 10 августа 2025 г., который генерирует девять вариантов обхода 64-битного ASLR с высокой энтропией.

r_bypass1

ASLR Bypass Screenshot

Инструкции по установке

Настройка

Это должно быть установлено как локальный пакет. Есть файл setup.py. Для этого просто перейдите в каталог и выполните следующую команду: py -m pip install -e ./ В зависимости от вашей установки Python вам может потребоваться немного изменить её. Если вы просмотрите установленные пакеты, вы должны увидеть ROP-ROCKET: py -m pip list Считается, что все необходимые зависимости включены, но если вы столкнётесь с какими-либо проблемами – из-за новизны этого релиза – просто откройте issue, и мы рассмотрим это.

Первый запуск

Просто запустите его из командной строки: py rop2.py rop_tester_syscall.exe Полностью эксплуатируемый rop_tester_syscall.exe также включён в виде zip-файла. Он был разработан, чтобы помочь убедиться, что все гаджеты находятся и не пропущены.

История

Этот инструмент был вдохновлён гораздо более старым JOP ROCKET, который я написал в рамках части своей докторской диссертации и выпустил на DEF CON 27 в 2019 году. Это привело к значительному дальнейшему развитию JOP и многим новым возможностям JOP, а также к предоставлению обширной документации по механике и использованию JOP в различных статьях. Этот инструмент сейчас немного устарел — это более старый стиль Python. С этим новым исследованием часть вдохновения заключается в попытке сделать что-то новое и иное в области ROP. На данный момент мы выполнили эту задачу. Так что в некотором смысле этот инструмент вдохновлён JOP-инструментом, что позволяет нам, возможно, попытаться мыслить нестандартно и менее традиционными способами, чем обычно с ROP. ROP ROCKET не имеет никаких возможностей JOP — он строго посвящён ROP. Единственным полностью посвящённым JOP инструментом является JOP ROCKET, так как всё остальное имеет лишь заглушки для будущей работы над JOP. В любом случае, я хотел прояснить эту историческую информацию, чтобы схожесть названий никого не смущала, так как это два совершенно разных и несвязанных инструмента.

Скриншоты

image

ROCKET сгенерировал атаку Heaven's Gate x86-to-x64, выведя её на экран и сохранив.

image

ROCKET сгенерировал системный вызов Windows для NtProtectVirtualMemory для Win 10/11, выведя его на экран и сохранив.

image

Благодаря своим внутренним возможностям эмуляции ROCKET может рассматривать множество необычных комбинаций гаджетов. Приведённый выше код предназначен для захвата указателя стека (ESP) и перемещения его в ECX. Он может находить альтернативные способы сделать это, а не просто использовать один ROP-гаджет, который может быть недоступен. Сначала он перемещает esp в edi; затем edi перемещается в ebx; а затем ebx перемещается в esi. ECX устанавливается в ноль с помощью целочисленного переполнения, а затем значение esi (содержащее наш указатель стека) добавляется к ecx. В результате указатель стека оказывается в ecx. Эквивалентный более короткий гаджет был бы mov ecx, esp # ret — однако такой не всегда возможен. ROCKET также корректно обрабатывает дополнительные инструкции pop, создавая правильные заполнители. Обратите внимание, что ROP ROCKET тщательно учитывает регистры, которые необходимо защищать («исключённые регистры»), которые могут меняться от гаджета к гаджету. В приведённом выше примере ни один регистр, который мы пытаемся защитить, не «затирается».

image

ROCKET предоставляет множество опций для того, что и как вы захватываете гаджеты. Значения по умолчанию, конечно, можно задать в файле config.cfg. Здесь пользователь решает просматривать только куски памяти размером не более 0xa (15) байт.

image

Вы можете не только выводить отдельные ROP-цепочки, но и распечатывать все найденные гаджеты, сгруппированные по категориям, например mov edx. Существуют сотни возможностей. Вы также можете уточнить результаты, изменив количество строк на гаджет.

image

При выводе результатов доступно множество опций для различных типов фильтров, применяемых для исключения гаджетов, таких как ASLR, CFG, системные DLL Windows или просто нежелательные байты. Всё это высоко настраиваемо.

image

Иногда вам нужно обфусцировать определённый гаджет, который может оказаться недоступным из-за плохих байтов в адресе гаджета. У нас есть много опций для этого, и вы также можете исключать гаджеты на основе используемых регистров или плохих байтов.

image Здесь пользователь использовал обфускацию для динамического декодирования адреса xor eax, edi # ret во время выполнения, который гипотетически он не мог использовать иначе. После декодирования push r32 / ret вызывает его немедленное выполнение. Это отличный способ использовать гаджеты, иначе недоступные из-за плохих байтов. ROCKET делает это за секунды. Его способность делать это с помощью целочисленного переполнения почти гарантированно сработает, при условии отсутствия проблем с плохими байтами или нехваткой доступных регистров (т.е. пользователь исключил слишком много регистров).

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

Этот инструмент был создан и написан д-ром Брэмвеллом Бризендайном, начиная с начала 2023 года.

Шива Шашанк Кусума работал с д-ром Брэмвеллом Бризендайном в качестве аспиранта над разработкой шаблонов для ROP ROCKET. Он проделал неоценимую работу и был со-докладчиком на DEFCON и Black Hat Arsenal. В 2025 году Шива также начал вносить вклад в программирование ROP ROCKET.

Обновления

09/18/2023 – Различные улучшения; дальнейшая поддержка альтернативных способов определения дальнего перехода, ведущего к системному вызову Windows.

3/2024 – Много важных обновлений на довольно регулярной основе – пожалуйста, старайтесь иметь самую последнюю копию, если вы планируете активно использовать ROP ROCKET. Отдельные изменения не будут перечисляться. Незначительные изменения и обновления, вероятно, будут продолжаться. Будут описаны только основные новые функции. (Некоторые небольшие новые функции уже добавлены.) Конец марта – 3 апреля 2024 г. – Масштабные обновления эмуляции для улучшения и повышения эффективности; поддержка гораздо большего количества возможных вариантов для генерации отдельных гаджетов; исправление ошибок; новый выпуск VirtualAlloc и VirtualProtect через pushad. Хотя другие инструменты ранее предоставляли поддержку VirtualProtect и VirtualAlloc, поэтому мы этого не делали, теперь мы считаем, что было бы упущением не включить их, особенно учитывая, что они могут быть улучшены за счёт возможностей инструмента. Созданы полные шаблоны для VirtualAlloc и VirtualProtect через pushad, которые также включают шеллкод (открыть калькулятор).

5/2024 – Масштабная переработка системных вызовов Windows для значительного расширения возможностей поиска в реальных бинарных файлах. Даже длинные и нежелательные гаджеты, которые «утекают» регистр FS (необходимый для системных вызовов Windows в SysWow64, т.е. 32-битном режиме), могут быть обработаны автоматически. Многочисленные другие незначительные улучшения.

6/28/2025 – Масштабные обновления, включая поддержку 17 новых WinAPI, ранее не включённых в ROP ROCKET. Добавлена возможность задать начальную величину переполнения – это актуально, так как может влиять на вычисления строк или указателей при эмуляции.

Скачать инструмент