- Diagrama de un flujo de ataque de varias etapas que encadena la explotación de numerosos formatos de archivo y funciones legacy de Windows, como OOXML, RTF, OLE, CHM y VBScript, hasta llegar finalmente al PEAPOD Payload
- Un OOXML alojado de forma remota carga el afchunk.rtf incrustado, y los OLE Objects dentro de este son el punto de partida para conexiones a recursos externos y filtración de credenciales
- Durante el ataque, las NTLM Credentials se envían a un SMB Server controlado por el atacante, y los archivos maliciosos se colocan mediante un archivo
.search-msy un ZIP escrito en%LocalAppData% - Si se desecharan todas las tecnologías del gráfico, se resolvería cerca del 80% de los problemas de seguridad, y Windows es, en la práctica, una “capa de compatibilidad de malware para todo”
- Diagnóstico compatible: Microsoft no puede eliminar tecnologías legacy por razones comerciales legítimas y, al mismo tiempo, ningún sistema de alto valor puede estar realmente seguro sobre este stack
Etapa 1 — Entrada por documento y filtración de credenciales
- Un documento OOXML alojado de forma remota carga un afchunk.rtf incrustado mediante XML
- Dentro de afchunk.rtf hay dos OLE Objects, que actúan como punto de bifurcación para conexiones externas y robo de credenciales
- Los OLE Objects se conectan al enlace
/MSHTML_C7/start.xml - Los OLE Objects extraen NTLM Credentials y las envían a un SMB Server controlado por el atacante
- Los OLE Objects se conectan al enlace
file001.urltambién apunta al mismo SMB Server
Etapa 2 — Vía XSLT e iframe
/MSHTML_C7/start.xmllleva astart.xmlen XSLT format- start.xml (XSLT) se conecta con RFile.asp
- RFile.asp genera dos iframes, y estos iframe vuelven a conectarse al SMB Server controlado por el atacante
Etapa 3 — Entrega de archivos mediante SMB Server
- El SMB Server entrega
[somehex]_file001.htm [somehex]_file001.htmlleva a un archivo .search-ms, que provoca un ZIP escrito en%LocalAppData%[somehex]_file001.htmtambién se bifurca haciaredir_obj.htm, y redir_obj.htm carga (loads)1111.htm
Etapa 4 — Despliegue del ZIP y ejecución del payload
- Dentro del ZIP escrito en
%LocalAppData%se incluyen2222.chmy1111.htm 2222.chmcarga (loads)file1.mhtfile1.mht→fileH.htm→ se conecta con Downloader VBScript- Downloader VBScript finalmente ejecuta el PEAPOD Payload
Crítica central — Tecnologías legacy de Windows y seguridad
- La afirmación de que, si se desecharan todas las tecnologías que aparecen en el gráfico, se resolvería cerca del 80% de los problemas de seguridad informática
- La expresión de que Windows funciona como una “capa de compatibilidad de malware para todo” (malware compatibility layer)
- Es posible sostener a la vez que Microsoft no puede eliminar estas tecnologías legacy por razones comerciales legítimas y que, mientras se esté sobre este stack, ningún sistema de alto valor puede estar seguro
- A partir de la experiencia de haber visto cómo se configuran los sistemas PLC “airgapped” de las fábricas, alivio de que la ciberguerra cinética que causa daños físicos no sea una realidad
1 comentarios
Comentarios de Hacker News
Cuanto más poderosa es una plataforma para muchos usos, más inevitable es que aparezca malware
La razón por la que el malware dirigido a consumidores apunta menos al escritorio Linux es que su cuota ronda el 3%, así que conviene más apuntar al escritorio Windows, que permite llegar a muchísimos más usuarios
La otra opción es convertir la computadora en algo que en la práctica sea un teléfono avanzado, es decir, un dispositivo cerrado para consumir medios, poner todo en sandbox y quitar la capacidad de hacer cosas “malas”
Claro, el rastreo sería la excepción, porque las empresas que hacen sistemas operativos también venden publicidad
No se volvió perfecto, pero al final el problema no era la popularidad en sí, sino el diseño inseguro del software, y todavía hay bastante margen de mejora
macOS va en esa dirección, y Qubes es un ejemplo más radical
Es muy probable que el futuro de la computación de escritorio vaya hacia que todo se ejecute en su propia máquina virtual
Linux está enormemente extendido en teléfonos en forma de Android, y los teléfonos son un objetivo tan atractivo como los escritorios, o quizá hoy incluso más
El malware móvil existe, pero es mucho menos común y más difícil de conseguir
La manera de instalar software en Linux es completamente distinta de Windows, y lograr que alguien ejecute un bloque binario requiere un esfuerzo considerable
Hasta el punto de que suele considerarse más fácil distribuir algo en contenedores que como binario compilado para un escritorio específico
Si se mira más allá del escritorio, Linux está por todas partes en el mundo de los servidores, y como es el sistema operativo más popular para correr software de servidor, es un objetivo muy valioso para los hackers
Difícilmente habrá algo más atractivo que tomar el control de los servidores de un banco
Decir que no hay absolutamente nada que haga a Linux intrínsecamente más seguro que Windows suena poco realista
Los sistemas tipo Unix fueron diseñados desde el principio pensando en múltiples usuarios, así que los permisos de usuario llevan décadas integrados en el flujo normal de uso, y solo eso ya aporta una gran capa de seguridad que dificulta que tengan éxito rootkits o gusanos con privilegios de root
En el viejo Windows 9x~XP, en la práctica todos tenían privilegios de administrador, y usar o reemplazar DLL de system32 era algo fácil
Para atacar Linux hay que engañar al usuario para que ejecute algo con privilegios elevados o encontrar una vulnerabilidad en software que corra con privilegios de root
Para atacar Windows antiguo bastaba con lograr que el usuario ejecutara mi software
En móvil, Android, o sea Linux, es el más grande, e incluso supera a Windows si se mira desde el punto de vista del usuario final
Y aun así no hay tantas quejas sobre malware en Android como en Windows
No diría que Microsoft sea incompetente en seguridad de Windows, pero históricamente sí hubo decisiones de diseño que causaron problemas
win9x no tenía aislamiento de procesos, aunque eso era posible incluso en i386, y la gente esperaba que los programas antiguos siguieran funcionando también en WinXP, que ya usaba el kernel NT
La distribución centralizada de software en Windows es relativamente reciente comparada con apt, que existe desde 1998, y detalles pequeños como ocultar extensiones también hacen que Windows sea un objetivo más fácil que ChromeOS, iOS, Android, macOS o GNU/Linux
Recuerdo aquello de “si Linux se vuelve tan popular como Windows, los desarrolladores de malware lo van a atacar”, pero si se consideran las smart TVs, sistemas de infoentretenimiento, servidores, supercomputadoras, sistemas embebidos y móviles, especialmente Android, Linux hace mucho que es más grande que Windows
No creo que la baja cuota de escritorio sea la razón principal de que haya menos malware
https://gs.statcounter.com/os-market-share#monthly-202206-20...
Linux tiene una superficie de ataque amplia porque hay muchísimos paquetes, pero su núcleo es muy abierto, así que recibe mucha atención y muchas miradas
Las vulnerabilidades normalmente se parchean rápido, y además las versiones de Linux y los paquetes GNU prácticamente hacen funcionar todo internet, así que incentivos para comprometerlos no faltan
También, en Linux es mucho más fácil detectar cuando un proceso está haciendo algo que no debería, y resulta más sencillo inspeccionar por dentro y verificar qué está pasando
En Windows, el mayor problema de seguridad sigue siendo la combinación de ocultar las extensiones por defecto y la ausencia de un bit de permiso de ejecución
Esto hace demasiado fácil que un atacante cree un ejecutable malicioso con ícono de documento de Word o de un formato de archivo familiar, y el usuario común prácticamente no tiene forma de detectar el riesgo
Si existiera un bit de permiso de ejecución, un
.exevenido de un lugar extraño no se ejecutaría así nada más sin que se le otorgue permisoSi las extensiones se mostraran por defecto, incluso un usuario con conocimientos mínimos podría ver el peligro
Dado que Windows ya muestra muchas alertas, ayudaría bastante con solo advertir en el primer doble clic: “esto es un archivo ejecutable, ten cuidado”
Los binarios descargados desde el navegador llevan un atributo extendido de “potencialmente inseguro” y muestran una advertencia al abrirse por primera vez, pero el enfoque está al revés
Todos los binarios deberían advertir hasta que se les agregue un atributo de “el usuario entiende el riesgo”
Por eso, para distribuir malware, los atacantes tienen que recurrir a rodeos engorrosos como servidores SMB en Internet que ellos controlan para poder propagar ejecutables
Además, las ACL de Windows sí tienen permisos de ejecución por usuario, grupo y objeto relacionado con políticas
Vienen activados por defecto para ejecutables legibles, pero no hay ninguna restricción para volver un ejecutable no ejecutable
Encima, casi todos los ejecutables muestran por defecto una advertencia gigantesca del nivel de “está intentando infectar la computadora, matar a tus mascotas y sacrificar a tus hijos a Satanás”
Se puede desactivar, pero en la mayoría de los casos está activa
Por eso los atacantes aprovechan efectos secundarios de casos periféricos como incrustaciones OLE en RTF o wrappers CHM/MHT
La mitad de este gráfico también podría aplicarse a macOS o Linux configurados para entorno corporativo
En su mayor parte, es simplemente el navegador y las aplicaciones de oficina haciendo su trabajo
El punto clave es que no hay código realmente ejecutable en el contexto del sistema operativo hasta la parte final, cuando se escapa del sandbox y el script descarga la carga útil real
El usuario tiene que desbloquearlo manualmente
Puede que esta función esté desactivada
Mucha gente la desactiva porque es molesto tener que autorizar casi todo lo descargado de Internet
El navegador predeterminado advierte antes de la descarga, SmartScreen pregunta al ejecutar apps no verificadas, y UAC vuelve a preguntar una última vez
De hecho, en muchos lugares se configura para prohibir la ejecución en todo el perfil del usuario
Hoy en día, el malware ni siquiera es lo peor de Windows
Windows es básicamente un motor de telemetría descargable y un kart de spyware con pantalla de inicio de sesión
Cuando no está actuando como promotor de centro comercial y vendiéndote toda clase de productos y basura seleccionados mediante vigilancia, te hace gaslighting como un ex tóxico porque no “necesitas” un navegador nuevo
Cuando toca actualizar, solo queda rezar para que el hardware sea compatible
Redmond gasta la misma energía incansable en convencerte de que una PC de 5 años que funciona perfectamente “ya está vieja” que en recordarte que mires su app store fantasma y su patio de juegos de microtransacciones
Aunque logres instalar Chrome de alguna manera, en cuanto Microsoft detecta una preferencia no aprobada por marketing, la mayoría de las apps no recuerdan esa configuración por mucho tiempo
Windows deambula de stand en stand como un payaso zombi en un festival embrujado, incomodando a la gente con su sola existencia antes de volver a la carpa del circo del Estados Unidos corporativo
Tal vez ese ya sea prácticamente el único lugar donde queda público que reciba bien a Windows
El escritorio se siente como una estación del Subway cubierta por todos lados con anuncios de abogados baratos y grafitis, realmente repugnante
Sorprende cuántas combinaciones de botones terminan en pop-ups para usar otros productos de Microsoft que nadie necesita
No puedo creer que haya llegado a ser tan malo
Hace falta una alternativa a Windows para el consumidor promedio
Esto es irse por la tangente
El texto trata sobre seguridad informática y no tiene relación con la experiencia hostil hacia el usuario de Windows
Windows es una capa de compatibilidad para malware de todo tipo
Windows NT y todas las versiones posteriores de Windows tienen controles de seguridad heredados de VMS, así que cuentan con más controles de seguridad que casi cualquier otro sistema operativo
Pero la mayoría están desactivados o debilitados para reducir la fricción y aumentar la adopción
En Linux también vienen debilitados por defecto, pero como llegó más tarde al mercado y nunca fue un entorno tan de solo dar clic como Windows, al principio hubo más fricción para usuarios no técnicos
Tampoco es solo un problema de controles de seguridad
Tanto Windows como Linux permiten por defecto el overcommit de memoria, lo cual puede afectar la estabilidad pero favorece la adopción por parte de desarrolladores
Todo esto se puede endurecer, pero existe el riesgo de romper aplicaciones escritas esperando el comportamiento predeterminado
Como ya dijeron otros, Windows es el objetivo por defecto porque tiene la mayor tasa de adopción y uso
Si algún día Linux toma la delantera, también atraerá mucho más interés de quienes escriben malware
Todavía hay muchos vectores de ataque sin explorar en
udev, los montajesbinfmt,eBPF,systemdy la forma en que hoy están conectados entre síSi los juegos en Linux siguen mejorando al ritmo actual, eso podría llegar antes de lo que uno piensa
Las plataformas de juego suelen programarse contra el comportamiento por defecto o esperar privilegios elevados, lo que vuelve inviable endurecer el sistema operativo, y no mucha gente va a comprarse una máquina aparte solo para jugar con tal de separarla del dispositivo donde usa impuestos, banca, correo electrónico y redes sociales
Al principio pensé que este tuit iba sobre lenguajes sin seguridad de memoria como C y C++ y los compiladores JIT de los navegadores web
porque decía algo como: “Los problemas de seguridad informática se resolverían en un 80% si se descartaran todas las tecnologías de esta imagen”
Chromium dice que “alrededor del 70% de los bugs de seguridad de alta gravedad son problemas de seguridad de memoria, o sea, errores con punteros en C/C++, y la mitad de ellos son bugs de use-after-free”
https://www.chromium.org/Home/chromium-security/memory-safet...
Microsoft también dice que “aproximadamente el 70% de las vulnerabilidades a las que se les asigna un CVE cada año siguen siendo problemas de seguridad de memoria”
https://msrc.microsoft.com/blog/2019/07/a-proactive-approach...
El título en HN también es un título editado del original
Si mal no recuerdo, ya están probando por primera vez un reemplazo de DLL basado en Rust, y migrar aunque sea la mitad podría tomar bastante tiempo
La mayor parte del malware simplemente abusa de funciones comunes del sistema operativo de manera lógica
No creo que sea cierto eso de que “la seguridad informática se resolvería en un 80%”
Se usarían otros vectores de ataque, y una vez que bloquees la mayoría de las rutas de ataque, llegarás a sistemas operativos móviles con casi ningún privilegio y seguimiento masivo integrado
Aun así, el malware podría seguir estando por todas partes
https://www.bleepingcomputer.com/news/security/apps-with-15m...
La causa de todo esto es la compatibilidad hacia atrás, y es realmente difícil de manejar
En un mundo ideal, cada vez que hubiera que romper compatibilidad, se ofrecería una documentación enorme y la migración se haría lo más painless posible
Pero existe el pequeño problema del software abandonado
Hoy en día hay una cantidad sorprendente de casos en los que software cuyo funcionamiento ya nadie entiende sigue siendo necesario para tareas importantes
¿Debería ser ilegal que empresas y organismos cercanos al sector público operen con software propietario que nadie mantiene activamente y que ni siquiera tiene contrato de soporte?
MHTML resuelve un problema real, y VBScript es básicamente como bash pero con otra forma de hablar
La incrustación OLE es una gran idea que lamentablemente hoy ya no se usa mucho
Poder meter una hoja de cálculo dentro de un documento de texto sin hacks raros con tablas es una buena idea
Las macros de VBA mueven más empresas que cualquier startup
Los archivos de ayuda CHM eran realmente excelentes, y es una lástima que hayan sido reemplazados por sitios web mediocres donde tienes que depender de Google para encontrar algo
También era una buena idea que no solo pudieras guardar resultados de búsqueda complejos sino además compartirlos, pero nunca se promocionó lo suficiente
La función de enviar archivos para poder encontrar “fotos tomadas con mi cámara entre agosto y septiembre del año pasado” es una buena idea, porque evita tener que enviar un álbum de fotos propietario
Digas lo que digas sobre la dependencia propietaria y las terribles prácticas de negocio, Microsoft sí tuvo buenas ideas que los sistemas operativos competidores solo alcanzaron años o décadas después
En la mayoría de los productos competidores todavía no se pueden incrustar documentos de forma tan fácil y efectiva como en Microsoft Office
Estas funciones no están abandonadas; las usan millones de personas en todo el mundo
Microsoft debería mejorar la configuración de sus herramientas para detectar mejor el código ejecutable
El VBScript al final de la cadena no debería haberse ejecutado
Daría pena que la mayoría de las otras herramientas “legacy” desaparecieran por la posibilidad de malware
Ahí están las VM, DOSBox, Wine, etc.
Hace unos 10 años descubrí que un proceso importante que corría en todas las máquinas de las tiendas de Home Depot dependía de un programa llamado Batchman
Batchman era una utilidad de entrada por tecleo publicada en PC Magazine en 1989
Si rompes la compatibilidad, alguien tiene que recrear ese proceso que llevaba décadas funcionando silenciosamente
Nadie del equipo de HD con el que trabajaba había visto jamás ese código, y nadie sabía qué era Batchman ni qué hacía
El stack más popular siempre termina siendo el objetivo preferido del malware
Si otra plataforma llegara a ocupar el 90% del mercado objetivo, cuesta creer que esa plataforma no terminaría siendo la víctima abrumadora del malware
Para dar contexto, trabajé en los 80 como encargado de primera línea de eliminar malware, y en ese tiempo el objetivo principal eran las Apple Mac de los laboratorios de computación universitarios
¿Cuál fue el malware más ingenioso que eliminaste en esa época?
¿No es eso parecido a decir que “si descartas la historia, los problemas se reducen muchísimo”?
Pero la historia existe de verdad
Y además, cada vez que hago clic en un enlace de Twitter me sale “Something went wrong” y tengo que recargar; ¿así es el Twitter moderno?
Así que, según cómo definas moderno, sí y no
https://nitter.net/matthew_d_green/status/167913542680678400...