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

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

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

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

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

Категории

Все категории
Loading categories
LibTP_Gadget — Библиотека Crystal Palace для проксирования вызовов Nt API через Threadpool. Обновлено для call-гаджетов. | Kitploit
Инструменты/GitHubGitHub/saerxcit/libtp_gadget
Обход IDS/IPSПост-эксплуатацияRed TeamingГенерация ШеллкодаРазработка Полезной НагрузкиСостязательная Атака
GitHubsaerxcit/libtp_gadget

LibTP_Gadget

Библиотека Crystal Palace для проксирования вызовов Nt API через Threadpool. Обновлено для call-гаджетов.

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

Популярное

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

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

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

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

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

LibTP_Gadget

Это обобщение https://github.com/AlmondOffSec/LibTPLoadLib для проксирования API с произвольным количеством аргументов (на самом деле максимум 11, но этого достаточно). Предоставляется в виде разделяемой библиотеки Crystal Palace. API сделан совместимым с LibTP от @rasta-mouse для лёгкого переключения с помощью spec-файлов. Хуки предоставлены, чтобы продемонстрировать новейшие возможности Crystal Palace.

ВНИМАНИЕ ⚠️ : Этот проект не готов к использованию как есть. Я не предоставляю модуль, в котором можно найти call-гаджет. Вам придётся найти свой собственный. Подробнее читайте в блоге.

Примечание : Из-за возможности передавать 11 аргументов (7 из которых будут помещены в стек), call-гаджет должен находиться внутри функции с достаточно большим стековым кадром. Ищите add rsp не менее 0x68.

ВНИМАНИЕ ⚠️ : Из-за внутренних особенностей этой техники невозможно получить возвращаемое значение проксируемой функции. Проксирование NTAPI, как правило, более практично, поскольку их возвращаемое значение — это «всего лишь» NTSTATUS. Однако это затрудняет понимание того, действительно ли функция завершилась успешно 🙃.

Как

  1. Найдите рабочий гаджет в модуле, доступном на целевой системе. В src/tp_gadget.c впишите его имя в вызов LoadLibraryA и в функцию GetCallGadgetAddress, чтобы она получала его адрес. При необходимости модифицируйте ассемблерную заглушку (sub rsp значение, регистр, который будет использовать гаджет для вызова).

  2. Скомпилируйте проект: make. Результат — разделяемая библиотека Crystal Palace libtp_gadget.x64.zip.

  3. Скомпилируйте пример COFF (он просто загрузит wininet.dll, затем локально выделит память и выполнит шеллкод): make -C example_print. Результатом будет COFF-файл example_print.x64.o.

  4. Создайте spec-файл Crystal Palace, предписывающий линковщику использовать наши хуки на DFR: возьмите Simple PIC spec-файл Tradecraft Garden и добавьте следующие строки между mergelib "../libtcg.x64.zip" и export:

root@kitploit:~
        mergelib "../libtp_gadget.x64.zip"

        attach "KERNEL32$LoadLibraryA"          "H_LoadLibraryA"
        optout "ProxyNtApi"                     "H_LoadLibraryA"
        attach "NTDLL$NtOpenProcess"            "H_NtOpenProcess"
        attach "NTDLL$NtAllocateVirtualMemory"  "H_NtAllocateVirtualMemory"
        attach "NTDLL$NtWriteVirtualMemory"     "H_NtWriteVirtualMemory"
        attach "NTDLL$NtProtectVirtualMemory"   "H_NtProtectVirtualMemory"
        attach "NTDLL$NtFreeVirtualMemory"      "H_NtFreeVirtualMemory"
        attach "NTDLL$NtClose"                  "H_NtClose"
        attach "NTDLL$NtCreateThreadEx"         "H_NtCreateThreadEx"
        attach "NTDLL$NtOpenThread"             "H_NtOpenThread"
        attach "NTDLL$NtSuspendThread"          "H_NtSuspendThread"
        attach "NTDLL$NtResumeThread"           "H_NtResumeThread"
        attach "NTDLL$NtGetContextThread"       "H_NtGetContextThread"
        attach "NTDLL$NtSetContextThread"       "H_NtSetContextThread"
        attach "NTDLL$NtWaitForSingleObject"    "H_NtWaitForSingleObject"
  1. Свяжите всё вместе с помощью Crystal Palace, чтобы получить PIC-шеллкод: path/to/crystalpalace/link simplepic_modified/loader.spec example_print/example_print.x64.o out.bin.

  2. Запустите шеллкод любым загрузчиком.

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

  • Raphael Mudge, Adversary Fan Fiction Writers Guild
  • Chetan Nayak, Dark Vortex
  • Daniel Duggan, Rasta Mouse
Скачать инструмент