
CVE-2022-22077 est une vulnérabilité de haute sévérité (score CVSS 7.8) affectant le pilote RTCore64.sys distribué avec MSI Center.
Ce document fournit un aperçu complet du framework d'exploitation CVE-2022-22077, une boîte à outils sophistiquée d'attaque BYOVD (Bring Your Own Vulnerable Driver) qui cible la vulnérabilité du pilote RTCore64.sys. Ce framework démontre des techniques avancées d'exploitation du noyau Windows à des fins éducatives et de recherche en sécurité.
Le contenu abordé comprend les bases techniques de la vulnérabilité, l'architecture du framework et l'intégration avec la boîte à outils plus large LazyOwn RedTeam. Pour une analyse détaillée de la vulnérabilité, consultez Analyse de la vulnérabilité. Pour les détails d'implémentation spécifiques des composants individuels, consultez Framework d'exploitation.
CVE-2022-22077 est une vulnérabilité de haute sévérité (score CVSS 7.8) affectant le pilote RTCore64.sys distribué avec les applications MSI Center et Dragon Center. La vulnérabilité provient d'interfaces IOCTL exposées qui permettent à des utilisateurs non privilégiés d'effectuer des lectures et écritures arbitraires en mémoire physique, contournant ainsi tous les mécanismes de sécurité du noyau Windows.
Le framework implémente l'accès à la mémoire du noyau via une approche structurée utilisant les vulnérabilités du pilote RTCore64.sys :
Par : grisun0, Architecte en chef du Chaos Noyau & Chuchoteur de pilotes à temps partiel - LazyOwn RedTeam
Lecture de 7 minutes · Publié à 3h33 parce que « HVCI ? Jamais rencontrée. »
« La meilleure façon de posséder un système est de demander la permission à son propre pilote — poliment, avec des IOCTLs. » — grisun0, probablement en train de rétro-ingénieriser MSI Afterburner en caleçon
Passons la partie où je prétends que c'est normal.
Si vous lisez ceci, vous êtes soit :
Bienvenue chez LazyOwn RedTeam™, où nous ne contournons pas la sécurité — nous l'invitons à dîner puis lui volons son portefeuille.
Aujourd'hui, je vous présente RTCore64.sys — pas un pilote, pas un outil, mais un exploit noyau entièrement opérationnel déguisé en utilitaire d'overclocking pour votre RTX 3090.
Et oui — il y a un rebondissement.
Spoiler : Il utilise toujours cmd.exe. Spoiler plus gros : Maintenant il utilise aussi beacon.exe. Spoiler encore plus gros : Les deux tournent maintenant avec les privilèges NT AUTHORITY\SYSTEM, grâce à un pilote qui pensait que « l'accès mémoire noyau arbitraire » était une fonctionnalité de qualité de vie.
🕳️ Qu'est-ce que RTCore64.sys ? (Ou : « Comment transformer MSI Afterburner en Backdoor Ring 0 ») Imaginez installer un pilote pour ajuster la tension de votre GPU… et vous donner accidentellement un accès complet en lecture/écriture à la mémoire du noyau.
C'est CVE-2022–22077 — une vulnérabilité si magnifiquement imprudente qu'elle fait passer capcom.sys pour une bibliothécaire timide.
Alors que capcom.sys demandait gentiment d'exécuter votre callback, RTCore64.sys vous tend simplement les clés du royaume — sans poser de questions.
« Voici un IOCTL. Écrivez n'importe quelle adresse. Lisez n'importe quelle valeur. Amusez-vous bien. » — MSI, probablement
Et parce que nous sommes des professionnels, nous n'utilisons pas DeviceIoControl au hasard. Nous volons des jetons SYSTEM, patchons des structures EPROCESS, et générons des shells SYSTEM — tout cela avant que votre GPU n'atteigne 70°C.
Laissez-moi vous guider à travers les cinq actes de ce casse numérique :
Faux.
À l'intérieur se trouve RTCore64.sys — un pilote signé et vulnérable qui expose des IOCTLs comme :
0x80002048 → Lire la mémoire du noyau 0x8000204c → Écrire dans la mémoire du noyau Aucune validation. Aucune vérification de cohérence. Juste du pouvoir brut, non filtré.
« Pourquoi sandboxer quand on peut noyau ? » — Équipe d'ingénierie MSI, 2019
Juste :
sc create RTCore64 binPath=C:\Windows\Temp\RTCore64.sys type=kernel
sc start RTCore64
Boum. Accès noyau déverrouillé.
Prérequis : SeLoadDriverPrivilege (que vous avez déjà, parce que vous êtes trop fort). Bonus : HVCI désactivé (parce qui a besoin de virtualisation quand on a du style ?).
CreateFileW(L"\\.\RTCore64", ...) → Attrapez le ticket d'or. EnumDeviceDrivers() → Trouvez la base de ntoskrnl.exe. Analysez PsInitialSystemProcess depuis le disque → Obtenez le décalage. Lisez l'EPROCESS de SYSTEM → Volez son jeton. Écrivez le jeton dans votre propre processus → Félicitations, vous êtes Dieu. CreateProcessW(L"beacon.exe", ...) → Lancez votre payload en tant que SYSTEM. Pas de shellcode. Pas de chaînes ROP. Juste de la pure manipulation d'objets noyau, sans fard.
del C:\Windows\Temp\RTCore64.sys
sc delete RTCore64
Pouf. Disparu. Comme un fantôme qui a overclocké votre RAM et s'est volatilisé.
tasklist /m mimilib.dll
eventcreate /t INFORMATION /id 1 /l APPLICATION /d “sekurlsa::logonpasswords”
type C:\Windows\System32\mimilsa.log
→ Hashes du Domain Admin ? Vérifié. → Mots de passe en clair ? Vérifié. → Golden Tickets ? Arrive tout de suite.
RTCore64.sys n'est pas un loup solitaire. C'est un nœud dans le LazyOwn RedTeam Framework — un écosystème modulaire, extensible et légèrement déjanté d'outils offensifs.
Imaginez ceci :
Générez du shellcode avec ShadowLink. Obscurcissez-le avec LazyAddons. Livrez-le via le vol de jeton RTCore64.sys. Exécutez-le en tant que SYSTEM via CreateProcessW. Le tout orchestré depuis un C2 qui ressemble à un téléchargement Steam. Et le meilleur ? Tout est open-source. Parce que la transparence est la meilleure opsec.
👉 Regardez-le en action (mentalement, parce que je ne filme pas ça à 4h du matin) je rigole, prenez du pop-corn et regardez :
https://www.youtube.com/shorts/V2tqH53LRIw
Oui. C'est un beacon.exe Windows :
Lancé via le vol de jeton RTCore64.sys Tournant en tant que NT AUTHORITY\SYSTEM Communiquant avec votre C2 Pendant que le Gestionnaire des tâches dit « Ça a l'air normal pour moi » Et il ne tourne même pas en tant qu'admin. C'est juste tellement bon.
Je ne suis pas seulement un red teamer. Je suis un red teamer responsable. Alors voici des infos gratuites :
yara
rule RTCore64_Based_Kernel_Exploit {
meta:
author = “LazyOwn BlueTeam”
description = “Détecte l'exploitation de RTCore64.sys via des IOCTLs et motifs connus”
license = “GPLv3”
strings:
$driver_name = “RTCore64.sys” ascii wide
$ioctl_read = { 80 00 20 48 } // 0x80002048
$ioctl_write = { 80 00 20 4C } // 0x8000204c
$create_device = “CreateFileW” ascii
$device_path = “\\.\RTCore64” ascii wide
$token_steal = “PsInitialSystemProcess” ascii
condition:
all of them
}
Recherchez :
RTCore64.sys chargé en dehors de C:\Program Files (x86)\MSI Afterburner
Appels DeviceIoControl avec 0x80002048 ou 0x8000204c
Changements de jeton de processus de bas privilège à SYSTEM
sc create ou sc start ciblant RTCore64
PsInitialSystemProcess lu depuis la mémoire du noyau
Si vous voyez cette combinaison ?
Vous vous êtes fait RTCore'iser.
Cet outil est publié uniquement à des fins éducatives et de red teaming éthique.
Ne l'utilisez pas sur des systèmes dont vous n'êtes pas propriétaire ou pour lesquels vous n'avez pas d'autorisation explicite de test.
Une mauvaise utilisation peut entraîner :
Vous faire virer Vous faire poursuivre Votre GPU qui développe un complexe de divinité Microsoft qui révoque la signature de votre pilote (encore) Votre mère qui vous demande pourquoi vous « piratez le gouvernement » encore Je décline toute responsabilité. Vous êtes seul, cowboy.
Des outils comme RTCore64.sys n'existent pas pour casser les systèmes — mais pour révéler leur fragilité.
Pour former les défenseurs. Pour tester la logique de détection. Pour faire de votre PC de jeu l'appareil le plus dangereux du réseau.
Alors allez-y. Apprenez. Testez. Cassez des choses (éthiquement).
Et souvenez-vous :
La meilleure sécurité est celle qui vous fait vous demander si votre carte graphique complote contre vous.
🔐 grisun0, qui signe — depuis un débogueur noyau, probablement dans la VRAM de votre GPU.
BYOVD Usurpation de jeton RTCore64.sys Exploitation noyau Red Teaming LazyOwn
P.S. Si votre GPU commence à s'overclocker tout seul à 3h du matin… de rien. 🚀
🔗 CVE-2022-22077 sur NVD
🔗 https://www.loldrivers.io/drivers/e32bc3da-4db1-4858-a62c-6fbe4db6afbd/
🔗 https://github.com/grisuno/beacon