Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-60709 — PoC d'exploit Windows CLFS LPE pour la recherche en sécurité | Kitploit
Outils/GitHubGitHub/kondordevsecuritycorp/cve-2025-60709
Outils DéfensifsEscalade de PrivilègesAnalyse des VulnérabilitésExploitationApprentissage et ÉducationDéveloppement de Charges UtilesExploitation de Binaires
GitHubkondordevsecuritycorp/cve-2025-60709

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

CVE-2025-60709

PoC d'exploit Windows CLFS LPE pour la recherche en sécurité

Voir le dépôt
2il y a 5 moisPas encore vérifié
Partager

CVE Type Target Component C Go Research


🚨 PoC D'EXPLOIT — UNIQUEMENT À DES FINS DE RECHERCHE EN SÉCURITÉ, D'ANALYSE DE VULNÉRABILITÉS ET DE DÉFENSE

🚨 PoC D'EXPLOIT — RECHERCHE EN SÉCURITÉ, ANALYSE DE VULNÉRABILITÉS ET USAGE DÉFENSIF UNIQUEMENT


🌐 Langues

  • 🇫🇷 Français
  • 🇫🇷 Français

🇫🇷 Documentation en français

Description

CVE-2025-60709 est une vulnérabilité d'élévation de privilèges locale (LPE) dans le pilote CLFS.sys (Common Log File System) de Windows. Elle permet à un attaquant disposant d'une exécution de code locale d'élever ses privilèges d'un utilisateur standard à NT AUTHORITY\SYSTEM via un dépassement de tampon (buffer overflow) dans le parsing des conteneurs CLFS, obtenant ainsi une primitive d'écriture arbitraire dans la mémoire du noyau.

Ce dépôt contient deux implémentations :

  • CVE-2025-60709.c — Implémentation originale en C (accès direct aux API natives de Windows)
  • CVE-2025-60709.go — Port en Go (version de démonstration/pédagogique — n'exploite PAS de vulnérabilités réelles)

🎯 Détails de la vulnérabilité

ChampDétail
Identifiant CVECVE-2025-60709
TypeÉlévation de privilèges locale (LPE)
ComposantCLFS.sys (pilote Common Log File System)
Système cibleWindows 11 24H2 (build 26100.3485+)
Architecturex64 uniquement
VecteurDépassement de tampon dans le parsing des conteneurs CLFS
ImpactÉlévation vers NT AUTHORITY\SYSTEM
PrérequisExécution de code locale (utilisateur standard)

🏗️ Structure du dépôt

root@kitploit:~
CVE-2025-60709/
├── CVE-2025-60709.c    (5.3 KB, 157 líneas) — Exploit C original
├── CVE-2025-60709.go   (9.2 KB, 285 líneas) — Port Go (demo educativa)
└── README.txt          (4.2 KB, 132 líneas) — Documentación original

🔬 Analyse technique détaillée

Flux d'exploitation complet

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                    CVE-2025-60709 LPE                       │
└─────────────────────────────────────────────────────────────┘

[1] EVASIÓN DE DEFENSAS
    ├─ KillETW()   → Parchea EtwEventWrite en ntdll con RET (0xC3)
    └─ KillAMSI()  → Parchea AmsiScanBuffer en amsi.dll con RET (0xC3)

[2] HEAP GROOMING (preparación de memoria)
    └─ GroomLookaside()
       ├─ Crea 4096 archivos: C:\Windows\Temp\groom_00000.blf
       ├─ Llama CreateLogFile() + AddLogContainer() por cada uno
       └─ Agota lookaside lists → garantiza layout de heap predecible

[3] PRIMITIVA DE ESCRITURA ARBITRARIA — ClfsArbWrite(Address, Value)
    ├─ Construye buffer CLFS malformado (0x102010 bytes)
    │    ├─ Firma válida CLFS en +0x00: 0x0201
    │    ├─ Sector size shift en +0x14: 2
    │    ├─ First client region en +0x28: 0x100
    │    ├─ cbRecord OVERSIZED en +0x100: 0xFF00 (64 KB > datos reales)
    │    ├─ Marcador shadow zone en +0x9A8: 0x13371337
    │    └─ CClfsContainerContext falso en offset (0xFF00 + 0x100):
    │         ├─ pContainer = TargetAddress - 0x10
    │         └─ cbContainer = Value (dato a escribir)
    ├─ Calcula checksum CLFS correcto (driver lo valida)
    ├─ Escribe contenedor malformado → C:\Windows\Temp\evil.blf
    ├─ Crea log apuntando a evil.blf
    ├─ Llama ClfsReadRestartArea() → dispara parsing kernel
    └─ Driver desborda buffer → escribe Value en Address ✓

[4] ROBO DE TOKEN SYSTEM
    ├─ Lee EPROCESS del proceso SYSTEM via PsInitialSystemProcess
    └─ Extrae token en EPROCESS + EPROCESS_TOKEN (offset 0x4c0)

[5] ESCALACIÓN DE PRIVILEGIOS
    └─ ClfsArbWrite(CurrentEprocess + 0x4c0, SystemToken)
       └─ Sobreescribe token del proceso actual con token SYSTEM ✓

[6] EJECUCIÓN DE PAYLOAD C2
    ├─ VirtualAlloc(PAGE_EXECUTE_READWRITE)
    ├─ Copia shellcode beacon de 1789 bytes
    ├─ CreateThread() → ejecución como NT AUTHORITY\SYSTEM
    └─ Beacon C2: IPv6 + DoH → fallback Gmail drafts
       └─ sRDI + sleep obfuscation + ETW/AMSI ya parcheados

[7] PERSISTENCIA
    └─ Sleep(INFINITE) → proceso mantiene token SYSTEM

Offsets EPROCESS (Windows 11 24H2 build 26100.3485+)

ChampOffsetDescription
EPROCESS_TOKEN0x4C0Jeton de sécurité du processus
EPROCESS_PID0x440Identifiant du processus (PID)
EPROCESS_LINKS0x448Liste chaînée des processus actifs
EPROCESS_NAME0x5A8Nom du processus (ImageFileName)

⚠️ Ces offsets varient selon les builds de Windows. Ils nécessitent une mise à jour pour d'autres versions.


Mécanisme du dépassement de tampon dans CLFS

root@kitploit:~
Contenedor CLFS legítimo:
  [Header 0x100 bytes][Record: cbRecord bytes de datos reales]

Contenedor malformado (evil.blf):
  [Header válido][cbRecord=0xFF00 → kernel lee 65,280 bytes]
                          ↓
  Kernel overflow → llega a CClfsContainerContext falso
                          ↓
  pContainer  = TargetKernelAddress - 0x10
  cbContainer = ValueToWrite
                          ↓
  Driver usa estructura falsa → escribe ValueToWrite en TargetKernelAddress

Fonctions clés — CVE-2025-60709.c

FonctionRôle
GetKernelBase()ZwQuerySystemInformation(SystemModuleInformation) → base de ntoskrnl.exe
KillETW()VirtualProtect + surécriture d'EtwEventWrite dans ntdll.dll par 0xC3 (RET)
KillAMSI()Charge amsi.dll + surécriture d'AmsiScanBuffer par 0xC3 (RET)
GroomLookaside()Crée 4096 journaux CLFS pour épuiser les lookaside lists → tas déterministe
ClfsArbWrite()Cœur de l'exploit — primitive d'écriture arbitraire en mémoire noyau
main()Orchestre l'attaque : ETW→AMSI→groom→vol de jeton→arb write→beacon

Différences C vs Go

AspectVersion CVersion Go
TypeExploit fonctionnel (selon la documentation)Démo pédagogique uniquement
APIAccès direct (ntdll, clfsw32, advapi32)Wrappers syscall.NewLazyDLL()
Checksum CLFSAlgorithme completPlaceholder simplifié
Adresses noyauRéellesPlaceholder codé en dur (0x123456)
Payload C2Shellcode de 1789 octetsOctets NOP (0x90) de test
Résultat attenduÉlévation vers SYSTEMMessage "Arb write failed (yeah)"

Compilation

Version C (nécessite Visual Studio Build Tools + Windows SDK) :

root@kitploit:~
cl /O1 /MT /link ntdll.lib advapi32.lib clfsw32.lib CVE-2025-60709.c

Version Go (nécessite Go 1.19+ sur Windows x64) :

root@kitploit:~
go build -ldflags="-s -w" -o CVE-2025-60709.exe CVE-2025-60709.go

🛡️ Atténuations et détection

Atténuations Windows

AtténuationEfficacité
HVCI (Hypervisor-protected Code Integrity)Élevée — empêche l'écriture en mémoire noyau
kCFI (Kernel Control Flow Integrity)Élevée — complique les chaînes ROP/JOP
CFG (Control Flow Guard)Moyenne — complique l'exécution de shellcode
Windows DefenderMoyenne — détecte les techniques connues
Mise à jour WindowsÉlevée — le correctif officiel élimine la vulnérabilité

Règle YARA

root@kitploit:~
rule CVE_2025_60709_CLFS_LPE {
    meta:
        description = "Detects CVE-2025-60709 CLFS LPE exploit"
        author      = "KONDORDEVSECURITYCORP"
        date        = "2026-03"
        cve         = "CVE-2025-60709"
        severity    = "critical"

    strings:
        $clfs_sig   = { 01 02 00 00 }
        $magic      = { 37 13 37 13 }
        $evil_file  = "evil.blf" ascii wide
        $groom_file = "groom_" ascii wide
        $etw_func   = "EtwEventWrite" ascii wide
        $amsi_func  = "AmsiScanBuffer" ascii wide
        $token_off  = { C0 04 00 00 }       // EPROCESS_TOKEN = 0x4C0

    condition:
        3 of them
}

IOC — Artefacts système

TypeValeur
Fichier malforméC:\Windows\Temp\evil.blf
Journal malformé\\.\C:\Windows\Temp\evil_log
Fichiers de groomingC:\Windows\Temp\groom_00000.blf … groom_04095.blf
ProcessusPriorité élevée anormale (REALTIME_PRIORITY_CLASS)

Détection comportementale

root@kitploit:~
ARCHIVO:   Creación masiva de *.blf en C:\Windows\Temp\ (> 100 en segundos)
ARCHIVO:   Creación de C:\Windows\Temp\evil.blf
PROCESO:   Proceso en modo REALTIME_PRIORITY + llamadas a ClfsReadRestartArea
MEMORIA:   Escritura en PAGE_EXECUTE_READWRITE + CreateThread inmediato
API:       VirtualProtect sobre EtwEventWrite o AmsiScanBuffer
KERNEL:    Acceso a PsInitialSystemProcess desde user-mode

Vérification rapide

root@kitploit:~
# Verificar archivos de grooming
Get-ChildItem C:\Windows\Temp -Filter "groom_*.blf" | Measure-Object

# Verificar archivo exploit
Test-Path C:\Windows\Temp\evil.blf

# Verificar integridad de ntdll (ETW patch)
Get-AuthenticodeSignature (Get-Process -Name notepad | Select -First 1).Path

🇫🇷 Documentation en français

Description

CVE-2025-60709 est une vulnérabilité d'élévation de privilèges locale (LPE) dans le pilote Windows CLFS.sys (Common Log File System). Elle permet à un attaquant disposant d'une exécution de code locale d'élever ses privilèges d'un utilisateur standard à NT AUTHORITY\SYSTEM grâce à un dépassement de tampon (buffer overflow) dans le parsing des conteneurs CLFS, obtenant une primitive d'écriture arbitraire dans la mémoire du noyau.

Ce dépôt contient deux implémentations :

  • CVE-2025-60709.c — Implémentation originale en C (accès direct aux API Windows natives)
  • CVE-2025-60709.go — Port Go (version de démonstration/pédagogique — n'exploite PAS de vulnérabilités réelles)

🎯 Détails de la vulnérabilité

ChampDétail
Identifiant CVECVE-2025-60709
TypeÉlévation de privilèges locale (LPE)
ComposantCLFS.sys (pilote Common Log File System)
Système cibleWindows 11 24H2 (build 26100.3485+)
Architecturex64 uniquement
VecteurDépassement de tampon dans le parsing des conteneurs CLFS
ImpactÉlévation vers NT AUTHORITY\SYSTEM
PrérequisExécution de code locale (utilisateur standard)

🔬 Analyse technique

Flux d'exploitation

root@kitploit:~
[1] DEFENSE EVASION
    ├─ KillETW()   → Patch EtwEventWrite in ntdll with RET (0xC3)
    └─ KillAMSI()  → Patch AmsiScanBuffer in amsi.dll with RET (0xC3)

[2] HEAP GROOMING
    └─ GroomLookaside()
       ├─ Creates 4096 files: C:\Windows\Temp\groom_00000.blf
       ├─ Calls CreateLogFile() + AddLogContainer() for each
       └─ Exhausts lookaside lists → guarantees predictable heap layout

[3] ARBITRARY WRITE PRIMITIVE — ClfsArbWrite(Address, Value)
    ├─ Constructs malformed CLFS buffer (0x102010 bytes)
    │    ├─ Valid CLFS signature at +0x00: 0x0201
    │    ├─ Oversized cbRecord at +0x100: 0xFF00 (65,280 bytes)
    │    ├─ Shadow zone marker at +0x9A8: 0x13371337
    │    └─ Fake CClfsContainerContext at offset (0xFF00 + 0x100):
    │         ├─ pContainer  = TargetAddress - 0x10
    │         └─ cbContainer = Value (data to write)
    ├─ Computes valid CLFS checksum (driver validates)
    ├─ Writes malformed container → C:\Windows\Temp\evil.blf
    ├─ Creates log pointing to evil.blf
    ├─ Calls ClfsReadRestartArea() → triggers kernel parsing
    └─ Driver overflows buffer → writes Value to Address ✓

[4] SYSTEM TOKEN THEFT
    ├─ Reads SYSTEM process EPROCESS via PsInitialSystemProcess
    └─ Extracts token at EPROCESS + 0x4C0

[5] PRIVILEGE ESCALATION
    └─ ClfsArbWrite(CurrentEprocess + 0x4C0, SystemToken)
       └─ Overwrites current process token with SYSTEM token ✓

[6] C2 PAYLOAD EXECUTION
    ├─ VirtualAlloc(PAGE_EXECUTE_READWRITE)
    ├─ Copy 1789-byte shellcode beacon
    ├─ CreateThread() → runs as NT AUTHORITY\SYSTEM
    └─ Beacon: IPv6 + DoH C2 → Gmail drafts fallback
       └─ sRDI + sleep obfuscation + ETW/AMSI already patched

[7] PERSISTENCE
    └─ Sleep(INFINITE) → process keeps SYSTEM token

Offsets EPROCESS (Windows 11 24H2 build 26100.3485+)

ChampOffsetDescription
EPROCESS_TOKEN0x4C0Jeton de sécurité du processus
EPROCESS_PID0x440Identifiant du processus
EPROCESS_LINKS0x448Liste chaînée des processus actifs
EPROCESS_NAME0x5A8Nom du processus (ImageFileName)

⚠️ Ces offsets varient selon les builds de Windows. Ils doivent être mis à jour pour d'autres versions.


Mécanisme du dépassement de tampon dans CLFS

root@kitploit:~
Legitimate CLFS container:
  [0x100 byte Header][Record: cbRecord bytes of real data]

Malformed container (evil.blf):
  [Valid Header][cbRecord=0xFF00 → kernel reads 65,280 bytes]
                        ↓
  Kernel overflows → reaches fake CClfsContainerContext
                        ↓
  pContainer  = TargetKernelAddress - 0x10
  cbContainer = ValueToWrite
                        ↓
  Driver uses fake structure → writes ValueToWrite to TargetKernelAddress

Fonctions clés — CVE-2025-60709.c

FonctionRôle
GetKernelBase()ZwQuerySystemInformation(SystemModuleInformation) → base de ntoskrnl.exe
KillETW()VirtualProtect + surécriture d'EtwEventWrite dans ntdll.dll par 0xC3 (RET)
KillAMSI()Charge amsi.dll + surécriture d'AmsiScanBuffer par 0xC3 (RET)
GroomLookaside()Crée 4096 journaux CLFS pour épuiser les lookaside lists → tas déterministe
ClfsArbWrite()Cœur de l'exploit — primitive d'écriture arbitraire en mémoire noyau
main()Orchestre : ETW→AMSI→groom→vol de jeton→arb write→beacon

Différences C vs Go

AspectVersion CVersion Go
TypeExploit fonctionnel (selon la doc)Démo pédagogique uniquement
APIDirectes (ntdll, clfsw32, advapi32)Wrappers syscall.NewLazyDLL()
Checksum CLFSAlgorithme completPlaceholder simplifié
Adresses noyauRéellesPlaceholder codé en dur (0x123456)
Payload C2Shellcode de 1789 octetsOctets NOP (0x90)
Résultat attenduÉlévation vers SYSTEMMessage "Arb write failed (yeah)"

Compilation

Version C (nécessite Visual Studio Build Tools + Windows SDK) :

root@kitploit:~
cl /O1 /MT /link ntdll.lib advapi32.lib clfsw32.lib CVE-2025-60709.c

Version Go (nécessite Go 1.19+ sur Windows x64) :

root@kitploit:~
go build -ldflags="-s -w" -o CVE-2025-60709.exe CVE-2025-60709.go

🛡️ Atténuations et détection

Atténuations Windows

AtténuationEfficacité
HVCI (Hypervisor-protected Code Integrity)Élevée — empêche les écritures en mémoire noyau
kCFI (Kernel Control Flow Integrity)Élevée — bloque les chaînes ROP/JOP
CFG (Control Flow Guard)Moyenne — entrave l'exécution de shellcode
Windows DefenderMoyenne — détecte les techniques connues
Windows UpdateÉlevée — le correctif officiel élimine la vulnérabilité

Règle YARA

root@kitploit:~
rule CVE_2025_60709_CLFS_LPE {
    meta:
        description = "Detects CVE-2025-60709 CLFS LPE exploit"
        author      = "KONDORDEVSECURITYCORP"
        date        = "2026-03"
        cve         = "CVE-2025-60709"
        severity    = "critical"

    strings:
        $evil_file  = "evil.blf" ascii wide
        $groom_file = "groom_" ascii wide
        $etw_func   = "EtwEventWrite" ascii wide
        $amsi_func  = "AmsiScanBuffer" ascii wide
        $magic      = { 37 13 37 13 }
        $token_off  = { C0 04 00 00 }

    condition:
        3 of them
}

IOC — Artefacts système

TypeValeur
Fichier malforméC:\Windows\Temp\evil.blf
Journal malformé\\.\C:\Windows\Temp\evil_log
Fichiers de groomingC:\Windows\Temp\groom_00000.blf … groom_04095.blf
ProcessusPriorité REALTIME_PRIORITY_CLASS anormale

Détection comportementale

root@kitploit:~
FILE:    Mass creation of *.blf in C:\Windows\Temp\ (> 100 in seconds)
FILE:    Creation of C:\Windows\Temp\evil.blf
PROCESS: REALTIME_PRIORITY process + ClfsReadRestartArea calls
MEMORY:  Write to PAGE_EXECUTE_READWRITE + immediate CreateThread
API:     VirtualProtect over EtwEventWrite or AmsiScanBuffer
KERNEL:  PsInitialSystemProcess access from user-mode

Vérification rapide

root@kitploit:~
# Check grooming files
Get-ChildItem C:\Windows\Temp -Filter "groom_*.blf" | Measure-Object

# Check exploit file
Test-Path C:\Windows\Temp\evil.blf

📚 Références techniques

  • Architecture du Common Log File System (CLFS) — Microsoft Docs
  • Analyse de la structure EPROCESS — Windows Internals
  • Techniques de heap grooming avec les lookaside lists
  • Exploitation du noyau Windows — vol de jeton (token stealing)
  • HVCI et sécurité basée sur la virtualisation — Microsoft

⚠️ Avis légal

FR : Ce PoC d'exploit est publié uniquement à des fins de recherche en sécurité, d'analyse de vulnérabilités, de renseignement sur les menaces et de défense. Utiliser ce code contre des systèmes sans autorisation écrite explicite est illégal et peut violer le CFAA, le Computer Misuse Act et les lois équivalentes. Les auteurs déclinent toute responsabilité en cas d'usage abusif.

FR : Ce PoC d'exploit est publié uniquement pour la recherche en sécurité, l'analyse de vulnérabilités, le renseignement sur les menaces et des fins défensives. L'utilisation de ce code contre des systèmes sans autorisation écrite explicite est illégale et peut enfreindre le CFAA, le Computer Misuse Act et la législation équivalente. Les auteurs n'assument aucune responsabilité en cas de mauvaise utilisation.


GitHub Telegram

Télécharger l’outil