BYOVD - RTCore64.sys arbitrary kernel R/W (CVE-2019-16098)¶
MSI Afterburner'ın legal şekilde imzalı kernel driver'ı, herhangi bir authenticated user tarafından erişilebilen IOCTL'ler expose eder; bunlar arbitrary kernel virtual memory read/write ve MSR erişimi sağlar — RobbinHood ve BlackByte ransomware tarafından EDR ürünlerini kernel callback seviyesinde sessizce öldürmek için abuse edilir.
Mechanism¶
Note
RTCore64.sys, IOCTL dispatch'ini caller'ları privileged process'lerle kısıtlamadan register eder. I/O control code'ları doğrudan arbitrary kernel virtual address'leri ve Model-Specific Register'ları (MSR) read/write eder — bunlar normalde SeLoadDriverPrivilege ya da doğrudan donanım erişimi arkasında gate'lenen primitive'lerdir. Herhangi bir authenticated local user \\.\RTCore64'ü açabilir, bu IOCTL'leri issue edebilir ve sınırsız kernel memory operasyonu yapabilir. Bu durum, Microsoft'un kendi kılavuzunu ihlal eder: arbitrary kernel memory erişimine izin veren IOCTL code'ları, driver imzalı olsa bile doğası gereği tehlikelidir.
Walkthrough¶
Etkilenen driver: Micro-Star MSI Afterburner 4.6.2.15658 ve daha eski sürümlerle gelen RTCore64.sys (ve RTCore32.sys).
CVE: CVE-2019-16098 (CVSS 7.8 HIGH; CWE-125/CWE-787; 2019-09-11 tarihinde yayımlandı).
Device symbolic link: \\.\RTCore64
IOCTL code'ları (public research'ten):
| Code | Operation |
|---|---|
0x80002030 |
Bir Model-Specific Register'dan (MSR) read |
0x80002048 |
Arbitrary 4-byte kernel virtual memory read |
0x8000204C |
Arbitrary 4-byte kernel virtual memory write |
Read için kavramsal input buffer (0x80002048):
Offset 0x00: [source kernel address] // address to read from
Offset 0x08: [output field] // receives the 4-byte value
Token-stealing exploitation yolu:
1. OpenFile("\\.\RTCore64") // any authenticated user
2. Locate ntoskrnl.exe base // via EnumDeviceDrivers / NtQuerySystemInformation
3. Read PsInitialSystemProcess // IOCTL 0x80002048 → SYSTEM EPROCESS pointer
4. Walk EPROCESS.ActiveProcessLinks // find own EPROCESS
5. Read SYSTEM EPROCESS Token field // IOCTL 0x80002048
6. Write SYSTEM token into own EPROCESS // IOCTL 0x8000204C
7. Spawn privileged shell
Gerçek dünyadan BYOVD kill-chain (BlackByte ransomware, 2022, Sophos'a göre):
1. Drop RTCore64.sys into %APPDATA%\Roaming\
2. Register as a service → driver loads
3. Read kernel version from ntoskrnl.exe PE headers
4. Look up offsets for PspCreateProcessNotifyRoutine,
PspCreateThreadNotifyRoutine, PspLoadImageNotifyRoutine
(hardcoded encrypted table of ~1,000 version-specific offsets)
5. Enumerate callback array entries via 0x80002048
6. Compare driver names against list of >1,000 EDR/AV driver names
7. Zero out matching callback pointers via 0x8000204C
8. Deploy ransomware payload with EDR blind
RTCore64 kernel read (örnek DeviceIoControl çağrısı)
Detection¶
- Driver hash blocklist: LOLDrivers, bilinen RTCore64.sys varyantları için altı SHA-256 hash dokümante eder (LOLDrivers UUID
e32bc3da-4db1-4858-a62c-6fbe4db6afbd): 01aa278b07b58dc46c84bd0b1b5c8e9ee4e62ea0bf7a695862444af32e87f1fdcdd2a4575a46bada4837a6153a79c14d60ee3129830717ef09e0e3efd9d00812f1c8ca232789c2f11a511c8cd95a9f3830dd719cad5aa22cb7c3539ab8cb4dc3ad215185dc833c54d523350ef3dbc10b3357a88fc4dde00281d9af81ea0764d5d9a2bf0f5ba185170441f003dc46fbb570e1c9fdf2132ab7de28b87ba7ad1a0c22e125c284a55eb730f03ec27b87ab84cf897f9d046b91c76bea2b5809fd51c5(Tam liste: loldrivers.io)- Service/driver oluşturma: MSI Afterburner kurulum yolunun dışında
RTCore64.sysyükleyensc createveyaNtLoadDriverevent'lerinde alarm üret. - Device open: MSI Afterburner (
MSIAfterburner.exe) olmayan herhangi bir process'ten\\.\RTCore64üzerine yapılanCreateFile. - IOCTL telemetry: RTCore64 device'ına karşı
0x80002048/0x8000204Cloglayan EDR veya kernel filter driver. - Kernel callback enumeration:
PspCreateProcessNotifyRoutineentry'lerinin toplu olarak sıfırlanmasını izlemek, BlackByte/RobbinHood pattern'i için yüksek güvenilirlikte davranışsal bir göstergedir. - ETW + Sysmon: RTCore64.sys için YARA ve Sigma kuralları LOLDrivers GitHub'da tutulur.
Mitigation¶
- Microsoft Vulnerable Driver Blocklist: RTCore64.sys, Microsoft'un önerilen block list'ine dahildir. Windows 11 ve Windows Server 2022 bunu varsayılan olarak zorunlu kılar; daha eski sistemler block'u WDAC
DriverSiPolicy.p7büzerinden uygulayabilir. - HVCI: Integrity check'lerini geçemeyen driver'ların kurulumunu engeller; ayrıca HVCI tarafından korunan code page'leri hedefleyen arbitrary kernel write'ların faydasını sınırlar.
- WDAC custom policy: Etkilenen driver sürümü için hash'e ya da MSI signing certificate'ına göre deny et.
- Kullanılmıyorsa MSI Afterburner'ı kaldır: Driver'ı attack surface'ten tamamen çıkarır.
- Kernel callback monitoring: Callback'leri
ObRegisterCallbacksüzerinden register eden ve callback table bütünlüğünü out-of-band doğrulayan (ör. korumalı bir hypervisor agent'ı ile) korumalı bir EDR konuşlandır. - Driver hardening (geliştirme): IOCTL caller'ları açık bir DACL ile
IoCreateDeviceSecureüzerinden kısıtlanmalı; kernel memory erişimi asla unprivileged user'lara expose edilmemeli.
References¶
- NVD – CVE-2019-16098
- Sophos – Remove All The Callbacks: BlackByte Ransomware Disables EDR Via RTCore64.sys Abuse
- Picus Security – BlackByte Ransomware Bypasses EDR Products via RTCore64.sys Abuse
- LOLDrivers – RTCore64.sys
- seg-fault.gitbook.io – RTCore64.sys CVE-2019-16098 exploitation walkthrough
- CyberBit – Exploring real-world MSI Afterburner RTCore driver exploitation