
CVE-2025-3464: exploit LPE pour ASUS AsIO3.sys
CVE-2025-3464 : Exploit d'élévation de privilèges locale non privilégié pour ASUS AsIO3.sys - contournement d'authentification TOCTOU + décrément PreviousMode
Cet exploit ne fonctionne que sur Windows 11 22H2 ou antérieur. Microsoft a corrigé ces manigances PreviousMode.
Exploit d'élévation de privilèges locale pour le pilote ASUS AsIO3.sys. Obtient NT AUTHORITY\SYSTEM
Cet exploit combine un contournement d'authentification (CVE-2025-3464) avec une primitive de décrément pour élever les privilèges de n'importe quel utilisateur local jusqu'à SYSTEM.
| Propriété | Valeur |
|---|---|
| CVE | CVE-2025-3464 |
| Type | Élévation de privilèges locale |
| Pilote | AsIO3.sys (ASUS) |
| Testé | Windows 11 22H2 (Build 22621) |
Le pilote AsIO3.sys valide les processus appelants en vérifiant si leur chemin d'exécutable contient AsusCertService et en contrôlant une empreinte SHA256. Cette vérification est vulnérable à une condition de concurrence Time-of-Check-Time-of-Use (TOCTOU) utilisant des liens physiques NTFS.
Déroulement de l'attaque :
AsusCertService pointant vers l'exécutable de l'exploitAsusCertService.exeRemarque : Le pilote vérifie uniquement si le chemin contient AsusCertService via une correspondance de sous-chaîne. Tout chemin inscriptible par l'utilisateur fonctionne (par ex. C:\Users\Public\AsusCertService\), ce qui rend l'exploitation possible sans privilèges administrateur.
Le pilote expose un IOCTL qui appelle ObfDereferenceObject sur un pointeur contrôlé par l'utilisateur. Cela effectue un décrément atomique de 8 octets à (ObjectPtr - 0x30), fournissant une primitive de décrément arbitraire.
Exploitation via PreviousMode :
NtQuerySystemInformation(SystemHandleInformationEx)KTHREAD + 0x232 (champ PreviousMode)NtReadVirtualMemory/NtWriteVirtualMemory peuvent accéder à la mémoire du noyau# Compile (Linux cross-compile)
x86_64-w64-mingw32-gcc -O2 -o AsIO3_FullExploit.exe AsIO3_FullExploit.c -lntdll -lshlwapi
AsIO3_FullExploit.exe
Prérequis :
Offsets de structure (Windows 11 22H2)
KTHREAD + 0x232 = PreviousMode KTHREAD + 0x220 = Process (pointeur EPROCESS) EPROCESS + 0x440 = UniqueProcessId EPROCESS + 0x448 = ActiveProcessLinks EPROCESS + 0x4B8 = Token
Remarque : Les offsets dépendent de la version. Vérifiez-les pour votre build Windows cible. Windows 23H2 déclenche un PREVIOUS_MODE_MISMATCH (0x1f9). Une atténuation pour ces astuces PreviousMode.
Notes techniques
Références
Avertissement
Ce code est fourni uniquement à des fins de recherche en sécurité autorisée et de formation. Utilisez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de test. L'accès non autorisé à des systèmes informatiques est illégal.