BYOVD - MSI Center RTCore64 (CVE-2022-22077)¶
MSI Afterburner, MSI Center ve Dragon Center'ın altında yatan ortak kernel driver'ı olan RTCore64.sys, herhangi bir authenticated kullanıcıya arbitrary kernel memory R/W IOCTL'leri sunar; CVE-2022-22077'nin bu driver sınıfına eşlenmesi community research'te öne sürülmüş, ancak resmi bir vendor advisory'sinde doğrulanmamıştır.
Mechanism¶
Note
RTCore64.sys yalnızca MSI Afterburner ile değil, aynı zamanda MSI'nin sistem yönetimi ve donanım izleme paketleri olan MSI Center ve Dragon Center ile de dağıtılır. Her üç ürün de aynı kernel driver'ını paylaşır; bu driver, unprivileged çağıranların arbitrary kernel virtual address'leri ve physical memory bölgelerini okuyup yazmasına izin veren bir IOCTL dispatch'i register eder. Etkilenen sürümlerde device object kısıtlayıcı bir ACL taşımadığı için, herhangi bir yerel authenticated kullanıcı bir handle elde edip bu işlemleri doğrudan tetikleyebilir. Signed sertifika sayesinde Windows Driver Signature Enforcement load'u engellemez ve BYOVD saldırganları, patch'lenmiş bir sürüm halihazırda kuruluyken bile bilinen-vulnerable bir sürümü drop edebilir.
Warning
CVE-2022-22077 tanımlayıcısı, community PoC repository'lerinde (örneğin grisuno/CVE-2022-22077) MSI Center'daki RTCore64.sys driver'ına atfedilmiş şekilde görünür. Ancak NVD, CVE-2022-22077'yi bir Qualcomm Snapdragon use-after-free (CWE-416, CVSS 7.8) olarak kaydeder. Bu CVE numarasını RTCore64.sys ile ilişkilendiren hiçbir resmi MSI veya MSRC advisory'si doğrulanmamıştır. Altta yatan driver güvenlik açığı gerçek ve iyi belgelenmiştir; CVE ilişkisi ise doğrulanmamıştır. Aynı driver sınıfının doğrulanmış CVE-2019-16098 dokümantasyonu için bkz. byovd-rtcore64-sys-arbitrary-kernel-r-w.
Walkthrough¶
Etkilenen driver: RTCore64.sys, şunlarla dağıtıldığı haliyle:
- MSI Afterburner (doğrulanmış CVE-2019-16098)
- MSI Center (community tarafından atfedilen CVE-2022-22077 — doğrulanmamış)
- Dragon Center (aynı ortak driver bileşeni)
Device symbolic link: \\.\RTCore64
IOCTL kodları (RTCore64 driver sınıfı üzerine public research'ten):
| Code | İşlem |
|---|---|
0x80002048 |
Arbitrary 4-byte kernel virtual memory read |
0x8000204C |
Arbitrary 4-byte kernel virtual memory write |
0x80002030 |
Model-Specific Register (MSR) oku |
0x80002040 |
Physical memory'yi kernel virtual space'e map'le (sonraki CVE'ler) |
Kavramsal exploitation yolu (token stealing):
1. OpenFile("\\.\RTCore64") // no ACL enforcement on affected versions
2. Enumerate kernel drivers to locate // NtQuerySystemInformation class 11
ntoskrnl.exe base address
3. Read PsInitialSystemProcess global // IOCTL 0x80002048
4. Walk EPROCESS.ActiveProcessLinks // repeated 4-byte reads
5. Read SYSTEM EPROCESS.Token // IOCTL 0x80002048
6. Write into own process Token field // IOCTL 0x8000204C
7. Spawn privileged shell
Saldırgan kullanımı (EDR bypass pattern'i, Talos / Sophos'a göre):
BlackByte dahil ransomware grupları, payload'larını deploy etmeden önce kernel notification callback'lerini (PspCreateProcessNotifyRoutine, PspLoadImageNotifyRoutine) kaldırmak ve EDR ürünlerini kör etmek için bilinen-vulnerable RTCore64.sys kopyalarını — MSI Center ile dağıtılan sürümler dahil — drop etmiştir.
0x80002040 üzerinden örnek physical memory map
// Map BIOS/firmware physical range into kernel VA for leak
struct { ULONG64 physAddr; ULONG64 length; ULONG64 mappedVA; } buf;
buf.physAddr = 0x000E0000; // BIOS shadow
buf.length = 0x20000;
DeviceIoControl(hDriver, 0x80002040, &buf, sizeof(buf),
&buf, sizeof(buf), &ret, NULL);
// buf.mappedVA → readable kernel VA of physical range
Detection¶
- Driver hash blocklist: CVE-2019-16098 için belgelenen aynı hash set'ini kullanın (bkz. byovd-rtcore64-sys-arbitrary-kernel-r-w). LOLDrivers birden fazla RTCore64.sys SHA-256 hash'i tutar; dağıtım kaynağından bağımsız olarak hepsini block'layın.
- Device open monitoring: Bilinen MSI yazılımı dışından
\\.\RTCore64'e yapılan herhangi birCreateFileçağrısı şüphelidir. MSI Center process'leri path ve code-signing cert'e göre allowlist'lenebilir. - Service installation:
RTCore64.sys'i beklenmedik path'lerden (örn. kullanıcının yazabildiği temp dizinleri) kuranNtLoadDriver/sc createolaylarında alert verin. - ETW / Sysmon:
RTCore64.sysiçinImageLoadolayı; beklenen MSI kurulum dizini ile correlate edin. - IOCTL telemetry: Non-MSI process'lerden RTCore64 device'ına
0x80002048/0x8000204CkodluDeviceIoControlçağrılarını izleyin. - Kernel callback integrity:
PspCreateProcessNotifyRoutinearray içeriğinin out-of-band doğrulanması (hypervisor veya protected kernel agent), EDR-kill pattern'ini tespit eder.
Mitigation¶
- Microsoft Vulnerable Driver Blocklist: RTCore64.sys hash'leri önerilen block list'tedir; WDAC
DriverSiPolicy.p7bveya Windows 11 varsayılanları üzerinden enforce edin. - HVCI: Hypervisor-Protected Code Integrity, code-backed page'leri hedefleyen arbitrary kernel write'larından gelen zararı sınırlar ve kernel callback mekanizmasını sertleştirir.
- WDAC deny policy: Etkilenen sürümler için driver hash'ine veya MSI signing sertifikasına göre block'layın. Deny policy'nin üç dağıtım vektörünü de (Afterburner, MSI Center, Dragon Center) kapsadığından emin olun.
- Kullanılmayan MSI araçlarını kaldırın: MSI Center veya Dragon Center gerekli değilse, driver'ı tamamen ortadan kaldırmak için uninstall edin.
- Privilege separation:
SeLoadDriverPrivilege'i gereken minimum hesaplarla sınırlayın; standart kullanıcılar service creation API'leri üzerinden bile driver load edememelidir. - Vendor update: MSI, MSI Afterburner'ın sonraki sürümlerini (4.6.5.16370 sonrası) patch'lemiştir. Kurulu sürümün güncel olduğundan emin olun ve güncellenmiş driver'ın device object üzerinde ACL kısıtlamaları içerdiğini kontrol edin.
References¶
- Cisco Talos – Exploring vulnerable Windows drivers
- Sophos – Remove All The Callbacks: BlackByte Ransomware Disables EDR Via RTCore64.sys Abuse
- CyberBit – Exploring real-world MSI Afterburner RTCore driver exploitation
- NVD – CVE-2022-22077 (Qualcomm Snapdragon – not MSI)
- LOLDrivers – RTCore64.sys
- byovd-rtcore64-sys-arbitrary-kernel-r-w — confirmed CVE-2019-16098 entry for the same driver class