Skip to content

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 bir CreateFile ç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) kuran NtLoadDriver / sc create olaylarında alert verin.
  • ETW / Sysmon: RTCore64.sys için ImageLoad olayı; beklenen MSI kurulum dizini ile correlate edin.
  • IOCTL telemetry: Non-MSI process'lerden RTCore64 device'ına 0x80002048 / 0x8000204C kodlu DeviceIoControl çağrılarını izleyin.
  • Kernel callback integrity: PspCreateProcessNotifyRoutine array 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.p7b veya 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