
Exploit für verwundbaren Treiber LnvMSRIO.sys
Proof-of-Concept-Exploit für LnvMSRIO.sys (Lenovo MSR I/O-Treiber), der beliebiges Lesen/Schreiben von physischem Arbeitsspeicher und Kernel-Speicherzugriff über Superfetch-VA-zu-PA-Übersetzung demonstriert.
| Eigenschaft | Wert |
|---|---|
| Treibername | LnvMSRIO.sys |
| Gerätename | \\.\WinMsrDev |
| Dienstname | LnvMSRIO |
| Hersteller | Lenovo |
| Zweck | MSR- und physischer Speicherzugriff für Systemdienstprogramme |
Der Treiber stellt privilegierte Kernel-Operationen für den Benutzermodus bereit:
Physischer Speicher lesen (16 Bytes):
Offset 0: UInt64 PhysicalAddress
Offset 8: DWORD AccessSize (1=byte, 2=word, 8=qword)
Offset 12: DWORD Count (number of elements)
Physischer Speicher schreiben (16 Bytes Header + Daten):
Offset 0: UInt64 PhysicalAddress
Offset 8: DWORD AccessSize
Offset 12: DWORD Count
Offset 16: Data[] (bytes to write)
Da der Treiber nur physischen Speicherzugriff bietet, verwenden wir die Superfetch-Technik, um Kernel-Virtualadressen in physische Adressen zu übersetzen:
NtQuerySystemInformation(SystemSuperfetchInformation)LnvMSRIOExploit.exe <path_to_LnvMSRIO.sys>
Anforderungen:
LnvMSRIOExploit.dproj in der Delphi-IDE (RAD Studio)Win64\Release\LnvMSRIOExploit.exeDieses Tool wird ausschließlich für Bildungs- und autorisierte Sicherheitsforschungszwecke bereitgestellt. Die unbefugte Nutzung gegen Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche Genehmigung zum Testen haben, ist illegal. Der Autor übernimmt keine Haftung für Missbrauch.
Nur für Forschungs- und Bildungszwecke.
| IOCTL-Code | Funktion | Beschreibung | PoC |
|---|
0x9C406104 | Physischer Speicher LESEN | Mappt über MmMapIoSpace | ✅ |
0x9C40A108 | Physischer Speicher SCHREIBEN | Mappt und schreibt physischen Speicher | ✅ |
0x9C402084 | MSR LESEN | Modellspezifisches Register lesen | ❌ |
0x9C402088 | MSR SCHREIBEN | Modellspezifisches Register schreiben | ❌ |