Download - Authenticode para malotes
![Page 1: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/1.jpg)
Authenticode para Malotes
Ramón Pinuaga
1
![Page 2: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/2.jpg)
Presentación
• Pentester y analista de seguridad en Prosegur Ciber.
• Especializado en técnicas de hacking y seguridad ofensiva.
• Últimamente me ha dado por la seguridad de los sistemas Windows.
2
![Page 3: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/3.jpg)
¿De qué va la charla?
• Que es Authenticode y otras tecnologías relacionadas.
• Para que sirven y que debilidades tienen.• Cómo aprovecharnos de estas características
para hacer cosas malas.
3
![Page 4: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/4.jpg)
¿Conocéis Authenticode?
4
![Page 5: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/5.jpg)
¿Por qué?
• Epidemia de Ransomware.• Cada vez más proyectos de Phishing dirigido.• Las corporaciones son muy vulnerables.
5
![Page 6: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/6.jpg)
Consultores malotes (aka pentesters) listos para abusar de las características de Authenticode
6
![Page 7: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/7.jpg)
¿Qué es Authenticode?
• Mecanismo de firma de código desarrollado por Microsoft.
• Permite comprobar la autenticidad y la integridad de algunos tipos de ficheros.
7
![Page 8: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/8.jpg)
Firmas digitales
8
![Page 9: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/9.jpg)
¿Para qué se utiliza?
• Verificar la identidad de un editor de software. (p.e. para generar confianza al descargar un ejecutable: reputación SmartScreen)
• Identificar los ejecutables emitidos por un editor (p.e. para establecer una protección basada en lista blanca).
• Garantizar que un ejecutable no ha sido manipulado.
9
![Page 10: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/10.jpg)
Confianza
VS
10
![Page 11: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/11.jpg)
¿Y si les damos la vuelta?
• Burlar SmartScreen usando un ejecutable de firmado.
• Burlar protecciones basadas en lista blanca utilizando ejecutables de editores legítimos.
• Añadir un beacon a un fichero sin invalidar su firma.
11
![Page 12: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/12.jpg)
Introducción a SmartScreen
• Mecanismo de seguridad que alerta cuando una descarga puede ser peligrosa.
• Configurado por defecto en IE >= 8 y en Windows >= 8.
• Se basa en un sistema de reputación (online) proporcionado por Microsoft.
• Reputación por binario (según hash) o por editor (según firma).
12
![Page 13: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/13.jpg)
¡Alerta!
13
![Page 14: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/14.jpg)
Comunicación
14
![Page 15: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/15.jpg)
¿Burlar SmartScreen?
• Para campañas de infección mediante ataques de phishing o drive-by.
• Ejecutables no conformes con SmartScreen generan desconfianza y ratio de infección menor.
15
![Page 16: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/16.jpg)
¿DoS?
16
![Page 17: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/17.jpg)
¿Cómo?
• Comprando un certificado.• Robando un certificado.• Modificando un binario confiable ya firmado.• Otros: Colisión de hashes.
17
![Page 18: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/18.jpg)
Empecemos por lo fácil
18
![Page 19: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/19.jpg)
Compra!
19
![Page 20: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/20.jpg)
Comprando un certificado
• Podemos utilizar certificados auto-firmados, pero no valen para generar reputación.
• Precio aprox. 180€ (90€ con revendedores).• Proceso de validación poco estricto (existen
certificados EV).• Mejora reputación pero no garantiza
conformidad de SmartScreen.
20
![Page 21: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/21.jpg)
Pide “prestado”
21
![Page 22: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/22.jpg)
Robando un certificado
• Técnica habitual en ataques APT y malware avanzado.• ¿Hacking?– No siempre.
• Editores descuidados dejan sus llaves de firma por ahí:– Github.– Google.– Dentro de las Apps/Appliances.– Leaks.
22
![Page 23: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/23.jpg)
Private keys everywhere!
23
![Page 24: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/24.jpg)
Hacking a lo barato
24
![Page 25: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/25.jpg)
Vamos a ponernos serios
25
![Page 26: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/26.jpg)
Referencias
• Didier Stevens: https://blog.didierstevens.com/• Injecting custom payload into signed Windows
executables (glucksmann): https://recon.cx/2012/schedule/events/246.en.html
• Compromising the Windows Enterprise via Windows Update (contextis): https://www.contextis.com/news/new-paper-released-compromising-windows-enterprise/
• Certified Canarytokens (thinkst): http://blog.thinkst.com/2016/05/certified-canarytokens-alerts-from_25.html 26
![Page 27: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/27.jpg)
Modificando un binario confiable
• ¿Podemos hacerlo sin invalidar la firma?• Solo ciertas partes.• Solo en casos muy contados podemos
conseguir inyectar código funcional.
27
![Page 28: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/28.jpg)
Firma Authenticode de un PE
28
![Page 29: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/29.jpg)
Simplificando
29
![Page 30: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/30.jpg)
¿Cómo modificar un binario sin invalidar su firma?
• Añadiendo datos al final del PE después de la firma (padding).– ¿Parcheado? ¿MS12-024, MS13-098?.– NO: EnableCertPaddingCheck no forzado por defecto.
• Anexando datos al final del fichero (fuera del PE).• Añadiendo datos dentro de la propia tabla de
certificados (p.e. certificados dummy).• Colisión de hashes.
30
![Page 31: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/31.jpg)
Colisiones
• La firma Authenticode se basa en un hash de la zona firmada.
• Firma valida si mantenemos el mismo hash.• Algoritmos soportados: MD5, SHA1, SHA256.• MD5 y SHA1 están siendo retirados.• Pero siguen siendo aceptados en muchas
situaciones (aunque roadmap de M$ muy confuso).
31
![Page 32: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/32.jpg)
Criptografía
32
![Page 33: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/33.jpg)
¿MD5?
33
![Page 34: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/34.jpg)
Deberes
34
![Page 35: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/35.jpg)
DEMO
• Verificar firma de un EXE.• Verificar firma de un VBS.• Firmas MD5 válidas y no hacen saltar
SmartScreen.
35
![Page 36: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/36.jpg)
Inyección de código
36
![Page 37: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/37.jpg)
CHUFLA
37
![Page 38: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/38.jpg)
Problema
• Las partes donde podemos inyectar son muy limitadas.
• En la presentación de Blackhat utilizan un loader externo para lanzar el código inyectado.
• No podemos ejecutar el código inyectado.• Bueno, a veces SI!
38
![Page 39: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/39.jpg)
Inyección de código
• Algunos editores usan trucos para evitar tener que firmar cada nuevo instalador.
• Añaden código en la parte no firmada.• El código no firmado, puede ser manipulado.• Búsqueda de binarios vulnerables.– Con payload fuera de la zona firmada.– Con payload que se carga de forma insegura.
• Desde la red.• Dentro del propio binario y extraído, pero podemos engañar
al extractor.
39
![Page 40: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/40.jpg)
Datos fuera de la zona firmada
Herramienta AnalyzePESig:
40
![Page 41: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/41.jpg)
Datos fuera de la zona firmada
41
![Page 42: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/42.jpg)
DEMO
• Ver distintos tipos de contenidos vulnerables:– URLs de descarga.– ZIPs adjuntos.– Menús de instalación.
• Modificación de instalador de Winzip para que instale un MSI malicioso.
42
![Page 43: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/43.jpg)
¿Qué más podemos hacer?
43
![Page 44: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/44.jpg)
Bypass de listas blancas
• Herramientas que impiden la ejecución de código “no confiable”.
• Configuración típica por: ruta segura, hash conocido, editor de confianza.
• Los binarios firmados por ciertos editores de confianza suelen ser permitidos a menudo (p.e. Microsoft, Adobe, Intel).
44
![Page 45: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/45.jpg)
Software Restriction Policies
45
![Page 46: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/46.jpg)
Binarios multiuso
• Psexec.exe• Cdb.exe• Msbuild.exe• Bginfo.exe• InstallUtil.exe
46
![Page 47: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/47.jpg)
DEMO
• Ejecución de código Powershell desde Msbuild.
• Ejecución de un VBS dentro de una carpeta protegida por SRP.
47
![Page 48: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/48.jpg)
Powershell dentro de Msbuild
48
![Page 49: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/49.jpg)
Suplantación de updates
• Resumen: Reutilizar software legitimo firmado por editores de confianza con fines maliciosos.
• También puede servir para burlar mecanismos de validación de updates.
• P.E: Técnica presentada por Contexis para suplantar updates distribuidos mediante WSUS cuando se utiliza HTTP.
49
![Page 50: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/50.jpg)
Hijack de WSUS
50
![Page 51: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/51.jpg)
Ya queda poco
51
![Page 52: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/52.jpg)
Authenticode Beacons
• Al verificar una firma Authenticode Windows valida el certificado, lo que puede requerir la llamada a URLs externas.
• Podemos usar esto como beacon.• Concepto: HoneyDocs, HoneyTags.• CanaryTokens.
52
![Page 53: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/53.jpg)
Mucho más que EXEs
• Binarios PE: .EXE, .DLL, .COM, .OCX, .SCR, .CPL• Drivers: .SYS, .VXD • Colecciones: .CAT, .CTL• Contenedores: .CAB, .MSI, .MSP, .MSM• Scripts: .VBS, .JS, .VBE, .JSE, .WSH• Powershell: .PS1, .PSM1, .PS1XML• Aplicaciones ClickOnce: .APPLICATION
53
![Page 54: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/54.jpg)
Añadiendo una firma
54
![Page 55: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/55.jpg)
DEMO
• Añadir una firma adicional a un binario legítimo.
• Comprobar como la ejecución del binario genera un beacon.
55
![Page 56: Authenticode para malotes](https://reader033.vdocuments.net/reader033/viewer/2022051520/58ce80eb1a28ab210a8b578d/html5/thumbnails/56.jpg)
Conclusiones
• Authenticode es una herramienta que nos permite controlar ciertos aspectos críticos de la seguridad de los ejecutables de un equipo.
• Sus múltiples funcionalidades son muy positivas de cara a la gestión de la seguridad.
• Pero OJO! tiene debilidades y estas pueden ser aprovechadas por usuarios maliciosos.
56