1 puntos por GN⁺ 2023-07-14 | 1 comentarios | Compartir por WhatsApp
  • 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-ms y 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
  • file001.url también apunta al mismo SMB Server

Etapa 2 — Vía XSLT e iframe

  • /MSHTML_C7/start.xml lleva a start.xml en 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.htm lleva a un archivo .search-ms, que provoca un ZIP escrito en %LocalAppData%
  • [somehex]_file001.htm también se bifurca hacia redir_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 incluyen 2222.chm y 1111.htm
  • 2222.chm carga (loads) file1.mht
    • file1.mhtfileH.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

 
GN⁺ 2023-07-14
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

    • La excusa común de que Windows 95 a XP tenía mucho malware por su popularidad siempre estuvo ahí, pero después de Vista Microsoft empezó a tomarse la seguridad más en serio y la situación mejoró bastante
      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
    • Hay una tercera opción: mantener el poder de la plataforma, pero elevar el nivel de aislamiento predeterminado del software de terceros y dejar que el usuario elija los permisos
      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
    • El ejemplo que se presenta parece refutar justamente esa idea
      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
    • La idea de que Linux recibe menos ataques de malware porque solo tiene 3% de cuota en escritorio ya no resulta convincente
      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...
    • No estoy totalmente de acuerdo con esa afirmación
      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 .exe venido de un lugar extraño no se ejecutaría así nada más sin que se le otorgue permiso
    Si 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”

    • Todos los archivos descargados ya reciben Mark of the Web, y eso por sí solo ya bloquea la mayoría de los abusos simples
      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
    • Si el archivo fue descargado por IE/Edge y vino de la zona de Internet, se registra el ADS Zone.Identifier para marcarlo y bloquear su ejecución
      El usuario tiene que desbloquearlo manualmente
    • Windows, por defecto, no ejecuta sin autorización cosas que no tengan una firma válida
      Puede que esta función esté desactivada
      Mucha gente la desactiva porque es molesto tener que autorizar casi todo lo descargado de Internet
    • Windows ya hace lo propuesto en varias capas
      El navegador predeterminado advierte antes de la descarga, SmartScreen pregunta al ejecutar apps no verificadas, y UAC vuelve a preguntar una última vez
    • Si usas NTFS, sí existe un bit de permiso de ejecución
      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

    • Arranqué Windows con Boot Camp por primera vez desde Windows 8 y la experiencia fue inimaginablemente miserable
      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
    • “Evita publicaciones incendiarias. No te vayas por la tangente. Quita los memes de Internet.”
      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 montajes binfmt, eBPF, systemd y 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

    • Solo Android ya tiene 50% más dispositivos que Windows
  • 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

    • Esa es una gran razón por la que Microsoft adoptó Rust recientemente
      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 inmensa mayoría del malware no usa ninguna vulnerabilidad, y mucho menos algo como un zero-day
      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?

    • En realidad, todas estas tecnologías son bastante buenas
      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
    • Una capa de compatibilidad completamente funcional podría aislarse del resto del sistema o ejecutarse con permisos de usuario reducidos; no hace falta meter la compatibilidad hacia atrás dentro del sistema operativo
      Ahí están las VM, DOSBox, Wine, etc.
    • En empresas grandes y numerosas hay muchísimo software viejo cuya existencia ya nadie recuerda, y que ejecuta procesos silenciosamente en segundo plano, tan común en la vida diaria que se da por hecho que siempre está ahí, como la gravedad
      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
    • No sería fácil exigirle a una empresa que ya desapareció que mantenga su software
  • 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

    • ¿Dónde está el malware ampliamente distribuido en servidores Linux?
    • Suena a un trabajo bastante genial
      ¿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í ha sido mi experiencia con Twitter desde hace años
      Así que, según cómo definas moderno, sí y no
  • https://nitter.net/matthew_d_green/status/167913542680678400...