2. Contenido
• Presentación
• Introducción
– Objetivo
– Análisis de UPX
– Antecedentes
• Manos a la obra
– Metodología de Trabajo
– Técnica Base
– Ideas Posteriores
• Resultados
• Mejoras y Conclusiones
3. Presentación
• Quien soy?
– Estudios:
• Ingeniería Informática (UAB)
• Máster Universitario en Seguridad TIC (UEM)
– Actualmente trabajando en LAYAKK:
• RedTeam
• Desarrollo de Herramientas
• Evaluación de Productos de Seguridad
8. Análisis de UPX
• Ejecutable empaquetado:
• Sección “vacía”, no ocupa espacio en el Ejecutable.Espacio Libre
• Código del programa después de aplicarle el
algoritmo de compresión.
• Entry point y código con la rutina de descompresión.
Código
Comprimido y
Descompresor
• Recursos necesarios.Recursos
9. Análisis de UPX
• UPX
Código STUB
• Escrito en Ensamblador.
• Rutinas de desempaquetado para
diferentes arquitecturas.
• Proceso de “compilado”
• Dividido en secciones.
sección definida UPX
.section name
.code32
etiqueta ASM
Variable definida en C++
10. Análisis de UPX
• UPX
Código Programa
• Escrito en C/C++.
• Selecciona el STUB y sus secciones.
• Aplica el algoritmo de compresión.
11. Antecedentes
• Existen múltiples packers derivados de UPX
que siguen este propósito:
– UPXScrambler
– UPXFreak
– UPXSh!T
– UPXCrypter
– UPXModifier
• Existen técnicas conocidas de evasión de AV.
13. Metodología de Trabajo
• Se aplica una técnica.
• Se generan los 2 ficheros empaquetados.
• Se comprueba la tasa de detección usando
VirusTotal.
• Se evalúa su efectividad.
14. Ejecutable legítimo VS Ejecutable Malicioso
pwsafe.exe mimikatz.exe
Metodología de Trabajo
30. • Cifrado de partes de la sección de recursos
pwsafe.exe mimikatz.exe
UPX CHUCU
Cifrado de
Código
Cifrado de
Recursos
Ideas Posteriores
31. UPX CHUCU
Cifrado de
Código
Cifrado de
Recursos
Entropía
Ideas Posteriores
• Bajar entropía de segunda sección
– Gran cantidad de Texto plano
– Aleatorio
39. Resultados
• Diferentes programas
Programa de Origen Sin Proc. Inicios de 2019 Actualidad
Mimikatz 54/68 9/71 21/68
Notepad++ 0/54 4/54 -
Pwsafe (Repo. de Claves) 0/71 - 11/68
Cerber (Ransomware) 58/65 16/68 32/69
VNC (Escritorio Remoto) 0/68 - 5/69
43. Mejoras Pendientes
• Limpiar metadatos
• Crear retardo entre ejecución y descompresión
• (De cara a RT) Entrada de usuario para iniciar
descompresión
44. Mejoras Pendientes
• Aplicar técnicas Anti-Sandbox (redpills, detección de
librerias o procesos, detección de interacción
humana…)
• Dividir código cifrado en porciones
• Añadir motor de filtrado sobre AV en el programa de
optimización de la parametrización.
45. Conclusión
• El método de ofuscación implementado tiene una alta
efectividad contra detección del conjunto de AV en el
momento actual. ha funcionado durante un tiempo, no
obstante, debe ser actualizado.
• Parece que al final los AV hacen su trabajo…