CVE-2025-60709 - CLFS Local Privilege Escalation Exploit
========================================================

DESCRIPCIÓN
-----------
Este repositorio contiene implementaciones de un exploit de escalación de privilegios locales 
que aprovecha una vulnerabilidad en el Common Log File System (CLFS) de Windows. El exploit 
está disponible en dos versiones: C original y Go.

ARCHIVOS
--------
- CVE-2025-60709.c    : Implementación original en C
- CVE-2025-60709.go   : Port a Go del exploit original
- README.txt          : Este archivo de documentación

FUNCIONALIDAD
-------------
El exploit implementa las siguientes técnicas:

1. EVASIÓN DE DEFENSAS:
   - Deshabilitación de ETW (Event Tracing for Windows)
   - Bypass de AMSI (Antimalware Scan Interface)
   - Configuración de prioridad en tiempo real

2. PREPARACIÓN DEL HEAP:
   - Grooming del lookaside list con 4096 archivos de log
   - Garantiza ubicación predecible de objetos en memoria

3. PRIMITIVA DE ESCRITURA ARBITRARIA:
   - Explota overflow en parsing de CLFS container
   - Permite escritura controlada en direcciones de kernel
   - Utiliza estructuras CClfsContainerContext falsificadas

4. ESCALACIÓN DE PRIVILEGIOS:
   - Roba token de SYSTEM process
   - Reemplaza token del proceso actual
   - Ejecuta payload como NT AUTHORITY\SYSTEM

COMPILACIÓN
-----------

Versión C:
----------
Requisitos:
- Visual Studio Build Tools o Visual Studio
- Windows SDK

Comando:
cl /O1 /MT /link ntdll.lib advapi32.lib clfsw32.lib CVE-2025-60709.c

Versión Go:
-----------
Requisitos:
- Go 1.19 o superior
- Windows (arquitectura x64)

Comando:
go build -ldflags="-s -w" -o CVE-2025-60709.exe CVE-2025-60709.go

OFFSETS DE KERNEL
-----------------
Los offsets están configurados para Windows 11 24H2 build 26100.3485+:

- EPROCESS_TOKEN = 0x4c0  (Token del proceso)
- EPROCESS_PID   = 0x440  (Process ID)
- EPROCESS_LINKS = 0x448  (Lista enlazada de procesos)
- EPROCESS_NAME  = 0x5a8  (Nombre del proceso)

NOTA: Estos offsets pueden variar entre versiones de Windows y requieren 
actualización para diferentes builds.

DIFERENCIAS ENTRE VERSIONES
----------------------------

Versión C:
- Implementación nativa con acceso directo a APIs de Windows
- Menor overhead de runtime
- Acceso directo a funciones no documentadas
- Checksum calculation completa para CLFS

Versión Go:
- Uso de syscalls a través de syscall.NewLazyDLL
- Manejo de memoria más seguro
- Código más legible y mantenible
- Checksum simplificado (placeholder)

LIMITACIONES DE LA VERSIÓN GO
------------------------------
1. VERSIÓN DE DEMOSTRACIÓN - No explota vulnerabilidades reales
2. Usa placeholders para direcciones de kernel y tokens
3. Las APIs de CLFS no están disponibles en modo usuario
4. Simula el comportamiento del exploit original para fines educativos
5. El mensaje "Arb write failed" es esperado en esta implementación

Para una implementación funcional se requiere:
   - Driver en modo kernel para acceso a CLFS
   - Resolución dinámica de direcciones de kernel
   - Cálculo correcto de checksums CLFS

CONSIDERACIONES DE SEGURIDAD
-----------------------------
- Este código es SOLO para investigación y educación
- El uso malicioso está prohibido
- Requiere privilegios de administrador local para ejecutarse
- Funciona únicamente en sistemas Windows x64

MITIGACIONES
------------
- Windows Defender y otros AV detectan estas técnicas
- HVCI (Hypervisor-protected Code Integrity) puede prevenir la explotación
- Control Flow Guard (CFG) dificulta la ejecución de shellcode
- Kernel Control Flow Integrity (kCFI) en versiones recientes

REFERENCIAS TÉCNICAS
--------------------
- Common Log File System (CLFS) Architecture
- Windows Kernel Exploitation Techniques
- EPROCESS Structure Analysis
- Lookaside List Grooming Methods

HISTORIAL DE VERSIONES
-----------------------
v1.0 - Implementación inicial en C
v1.1 - Port a Go con documentación completa

DISCLAIMER
----------
Este software se proporciona "tal como está" sin garantías de ningún tipo.
El uso de este código es responsabilidad exclusiva del usuario.
Los autores no se hacen responsables de cualquier daño o uso indebido.

SOLO PARA FINES EDUCATIVOS Y DE INVESTIGACIÓN EN SEGURIDAD.