Malware en archivos LNK: cómo se convierten en armas los accesos directos de Windows
· 5 min de lectura
Los archivos de acceso directo han sido un vector fiable de entrega de malware Windows durante quince años y contando. Son pequeños, parecen inofensivos en Explorer, la extensión está oculta por defecto, y el formato les permite lanzar cualquier ejecutable con cualquier argumento bajo cualquier icono. Los informes de CISA, Mandiant, Trellix y SentinelOne desde 2023 en adelante siguen marcando el mismo patrón: .lnk está de vuelta en la cima del kit de herramientas de acceso inicial. El cambio es real, y el truco es que no hay nada que parchear, el abuso usa campos legítimos exactamente como están especificados.
Dos variantes del abuso de LNK
Explotación del parser
Un pequeño número de CVEs han permitido que un Shell Link ejecute código simplemente porque Explorer lo renderizó.
- CVE-2010-2568, el bug de parseo que Stuxnet usó para propagarse a través de unidades USB. Explorer cargaba automáticamente una DLL maliciosa mientras dibujaba el icono del acceso directo. Sin clics necesarios.
- CVE-2017-8464, misma familia, más amplia. Parcheada, pero los sistemas sin parchear siguieron siendo objetivos durante años.
- CVE-2020-0729, CVE-2022-37969, problemas posteriores del lado del parser con radio de impacto menor.
Windows moderno parchea el parser, así que esta clase es rara en 2026. La amenaza activa es todo lo de la siguiente sección.
Convertir en arma campos legítimos
La especificación Shell Link permite que un acceso directo lance cualquier cosa con cualquier argumento bajo cualquier icono. Las campañas actuales abusan exactamente de eso, sin necesidad de exploit:
- Target apunta a
C:\Windows\System32\cmd.exe,powershell.exe,mshta.exe,rundll32.exe,regsvr32.exe, o un binario living-off-the-land recientemente popular. Raramente la aplicación que el icono pretende ser. - Arguments lleva una línea que descarga o decodifica una carga útil,
-enc <base64>,iex (iwr http://...),mshta http://...,rundll32 .\loader.dll,Entry, o cadenas de bypass AMSI. - WorkingDirectory apunta a la raíz del ISO/ZIP o a
%TEMP%/%APPDATA%, de modo que una DLL sidecar o script se resuelve con una ruta relativa. - IconLocation se resuelve a una DLL del sistema,
imageres.dll,-187es el icono PDF,imageres.dll,-3es Word, para coincidir con el nombre de archivo del cebo.Invoice_April.pdf.lnkrenderizado con un icono PDF.
Desde 2022, cuando Microsoft comenzó a bloquear macros VBA en docs Office etiquetados con Mark-of-the-Web, este es el patrón de phishing dominante: contenedores ZIP o ISO, .lnk dentro, carga útil sidecar que el LNK invoca. Qakbot, Bumblebee, IcedID, las reactivaciones de Emotet y la mayoría de la ingesta de afiliados de ransomware de 2023-2025 lo han usado.
Cómo se ve un LNK malicioso bajo el capó
Parsea un .lnk real de phishing (suéltalo en el parser de la página de inicio, sin subida, sin ejecución) y típicamente verás:
LinkInfo → LocalBasePath = C:\Windows\System32\cmd.exeopowershell.exe. No el archivo que el icono pretende ser.StringData → COMMAND_LINE_ARGUMENTSque contiene-enc,-EncodedCommand,iex,IEX,Invoke-Expression,mshta,rundll32.exe,regsvr32.exe, URLs, o blobs base64 más largos de lo que el LNK original tiene plausiblemente derecho a llevar.StringData → WORKING_DIRapuntando a la raíz del ISO/ZIP o a%TEMP%/%APPDATA%.StringData → ICON_LOCATIONapuntando dentro deimageres.dlloshell32.dll, no un archivo real.ShellLinkHeader → ShowCommand = 7(minimizado). Mantén la ventana cmd fuera de la vista.- Bloques ExtraData lo suficientemente ricos como para filtrar la máquina de build del atacante a través del nombre NetBIOS y GUID droid del TrackerDataBlock. Varios éxitos públicos de atribución vinieron exactamente de eso, los informes Lazarus, APT37, APT41 lo citan explícitamente.
LinkFlagsconHasArgumentsyHasIconLocationestablecidos, a menudo conIsUnicodeyHasExpStringpara el EnvironmentVariableDataBlock que resuelve rutas%USERPROFILE%o%TEMP%en tiempo de ejecución.
Los patrones de detección se superponen naturalmente a la salida de un parser. El formato CSV de LECmd de Eric Zimmerman es a lo que apuntan la mayoría de reglas de detección; lnkparse3 y lnkinfo de libyal emiten datos equivalentes en esquemas diferentes.
Lista de triaje
Antes de abrir cualquier .lnk que no hayas creado tú mismo:
- Confirma que el archivo es lo que afirma. Windows oculta
.lnkpor defecto.Invoice.pdfpuede ser en realidadInvoice.pdf.lnk. Muestra las extensiones, o haz un volcado hex de los primeros 20 bytes, un LNK real se abre con4C 00 00 00seguido del LinkCLSID00021401-0000-0000-C000-000000000046. - Lee el LocalBasePath. Si no es la aplicación que esperarías para el icono, para.
- Lee los COMMAND_LINE_ARGUMENTS. Cualquier comando codificado, URL incrustada o referencia a un archivo sidecar en el mismo archivo es una bandera roja.
- Lee el ICON_LOCATION. Una ruta dentro de
imageres.dllmientras el destino escmd.exees la máscara clásica. - Lee los bloques ExtraData. El nombre NetBIOS y GUID droid del TrackerDataBlock a veces te entregarán la máquina de build. Úsalos para agrupar muestras.
- Detona en otro sitio. Si tienes que entender la carga útil, hazlo en una VM aislada con la red bloqueada. Nunca en tu máquina de trabajo.
Barandillas defensivas
- Muestra extensiones de archivo en Explorer. Controlado por política si no puedes confiar en los usuarios.
- Usa reglas de Attack Surface Reduction: "Bloquear ejecución de scripts potencialmente ofuscados" y "Bloquear robo de credenciales de LSASS" ambas atenúan la cadena LNK típica.
- Aplica Mark-of-the-Web a contenedores ISO e IMG descargados (esto cambió en Windows 11 22H2; verifica tu build).
- Despliega una regla de detección basada en parser que marque accesos directos cuyo target sea
cmd.exe/powershell.exe/mshta.exe/rundll32.exe/regsvr32.exefuera de una lista de permitidos conocida. - Asegúrate de que la auditoría de línea de comandos de EVTX (
4688con líneas de comando, o SysmonEventID=1) esté activada. El LNK es el disparador; el proceso generado es donde realmente atrapas la cadena.
Lecturas adicionales
- La especificación [MS-SHLLINK] de Microsoft, los campos que estas campañas abusan están documentados allí.
- CISA, avisos de archivos LNK maliciosos desde 2023 en adelante, detalle a nivel de campaña.
- Eric Zimmerman, LECmd, parser offline cuyo esquema de salida es al que apuntan la mayoría de reglas de detección.
- Para artefactos corroborantes cuando un LNK se ejecuta: Prefetch, AmCache, EVTX, parser Jumplist para la fila DestList correspondiente, parser MFT.