Esta semana en seguridad: ITG18 iraní, ProcMon para Linux y recolección de basura fallan

Incluso los profesionales de seguridad avanzados están cometiendo errores catastróficos, y esta vez fueron los operadores del ITG18 de Irán. Estamos hablando de nuevo sobre el extraño mundo sombrío de los piratas informáticos patrocinados por el estado. Esta historia proviene de IBM X-Force Incident Response Intelligence Services (IRISO). Sospecho que un fan de Deadpool debería trabajar en IBM, pero eso no es apropiado.

Un servidor sospechoso de ser utilizado por ITG18 estaba configurado incorrectamente, y cuando los datos y videos de capacitación se almacenaban allí, esos datos eran de acceso público. Entre los datos capturados se encontraban registros de cuentas comprometidas pertenecientes a personal militar estadounidense y griego.

Los videos de capacitación también contenían información interesante. Si una cuenta objetivo usaba autenticación de dos factores, el atacante tenía que señalar y renunciar al acceso a esa cuenta. Si una cuenta de Google se rompió, la práctica comenzó con Google Takeout, el servicio de Google que le permite descargar todos los datos que Google ha recopilado en relación con esa cuenta. Yoiks.

Para aprovechar Scratch, primero debes inventar el universo

En esta columna cubrimos una gran cantidad de exploits de nivel central, pero nunca nos hemos ocupado de una guía muy similar a la publicada recientemente por Secfault Security. Intentan cerrar la brecha entre ser un programador y un autor explotador, pasando por el proceso de construir un PoC de explotación eficaz y funcional basado en una edición de Google Project Zero.

ProcMon

Imagen de Microsoft, MIT con licencia

Microsoft continúa desarrollando su presencia en Linux, esta vez reimplementando Process Monitor como ProcMon para Linux. Un poco de historia, Process Monitor es parte de la serie Sysinternals, desarrollada originalmente por [Bryce Cogswell] y [Mark Russinovich], fundadores de Winternals. Por cierto, también rompieron la historia raíz de Sony BMG, utilizando herramientas sysinternals. Menos de un año después de que estallara la historia, Microsoft adquirió Winternals, y durante un tiempo [Cogswell] siguió [Russonovich] permaneció en Microsoft y ahora es el CEO de Azure.

ProcMon está escrito en C ++ y publicado bajo la licencia MIT. Realiza un seguimiento de las llamadas al sistema que se producen en una máquina en tiempo real, lo que ofrece una visión detallada del rendimiento del sistema. Se utiliza para problemas de seguridad, depuración y rendimiento. En general, es una herramienta muy útil y debería ser una parte útil del conjunto de herramientas del gerente de administración. La fuente está disponible bajo una licencia aprobada por OSI, por lo que las diversas distribuciones deben recoger y empaquetar ProcMon pronto.

Contenedores de servicios de Windows

Windows Server admite varias formas de ejecutar procesos en contenedores: contenedores HyperV y contenedores de Windows Server. Está ampliamente aceptado que la contenedorización basada en la virtualización proporciona un aislamiento más seguro. Es decir, si un contenedor virtualizado se ve comprometido, es mucho más difícil para un atacante migrar y atacar la máquina host, en comparación con la contenedorización basada en núcleos.

La noticia es una nueva forma de escapar del contenedor de Windows Server. Aunque no es tan común como en una máquina Linux, Windows admite enlaces simbólicos. La lectura en profundidad también destaca cómo las máquinas Windows modernas se convierten en máquinas POSIX con una capa compatible con Windows en la parte superior. Por ejemplo, el directorio "C:" es en realidad un enlace simbólico global a " Device HarddiskVolumeX ".

Si un proceso en contenedor pudiera crear un enlace de símbolo global, ALTERNATIVAMENTE uno que mostrara el directorio raíz, entonces el escape de contenido sería insignificante. Como era de esperar, los controles de seguridad del contenedor no permiten que los procesos aislados creen un enlace de símbolo de este tipo durante el tiempo de ejecución. Dicho esto, hay una función particular de la que se puede abusar para crear el enlace de símbolo global. Los parámetros de función específicos aún no se han revelado, para hacer un poco más difícil la explotación salvaje.

Restablecimiento de contraseña incorrecto

La historia de un control de seguridad en un sitio web me llamó la atención esta semana, elaborada por [Maxwell “ꓘ” Dulin]. El formulario de restablecimiento de contraseña es el foco aquí y tiene algunos problemas. El primero es un defecto común: el formulario de restablecimiento de contraseña comprueba si una determinada dirección de correo electrónico está en el sistema. No es el peor defecto, pero le da información al atacante: puede adivinar direcciones de correo electrónico y recibe confirmación cuando hay una cuenta con esa dirección.

La siguiente falla es sutil, el contenido del correo electrónico de restablecimiento del correo electrónico lo genera el host enviado en la solicitud HTTP. Esto normalmente funciona como se esperaba: el usuario va a ourwebsite.com/reset, ingresa su dirección de correo electrónico y envía el formulario para generar una solicitud de restablecimiento de contraseña. Reciben un correo electrónico con un enlace a ourwebsite.com esto permite el restablecimiento de la contraseña. Sin embargo, un atacante puede enviar una solicitud HTTP maliciosa al formulario de restablecimiento de contraseña, utilizando la dirección de otra persona, y manipular el host. El correo electrónico de reajuste ahora apunta al host inyectado. Si el usuario hace clic en el enlace del correo electrónico, el valor mágico se envía a un host especificado por el atacante, quien luego puede restablecer la contraseña del usuario.

El ultimo defecto [Maxwell] Encontrado fue el peor del conjunto. El token de restablecimiento se confirma cuando el usuario hace clic por primera vez en el enlace enviado por correo electrónico, pero no se confirma cuando se actualiza la contraseña. Puede crear su propia cuenta, pasar por el proceso de restablecimiento de contraseña y luego cambiar el formulario de restablecimiento de contraseña para indicar la cuenta de otro usuario. Dado que la vista posterior lo ve como ya autenticado, establece obedientemente la nueva contraseña, incluso si la cuenta específica no le pertenece.

Es probable que ninguno de nosotros use el pequeño sitio web en el que se realizó esta revisión, pero los pasos descritos y los problemas a buscar son una buena guía para cualquiera que necesite lo mismo.

Uso de recolección de basura después de gratis

CVE-2019–1367 es un error más antiguo en este momento, que se descubrió explotado en la naturaleza en 2019, y una redacción completa de Confiant. Es otra vulnerabilidad más en Internet Explorer. jscript motor. Para una reseña muy breve, jscript.dll es la extinta implementación de IE de JavaScript. Ya no es la implementación predeterminada, pero se puede solicitar desde una página web por motivos de compatibilidad. Parece que jscript.dll solo es accesible en Internet Explorer, y ninguna iteración de Edge es compatible con la implementación heredada.

Este vuln fue utilizado activamente por actores estatales y fue un ataque estilo agua en el que simplemente visitar el sitio web malicioso fue suficiente para comprometer. La siguiente página de la entrada ingresa los detalles técnicos. Esta es una clase de vulnerabilidad que no hemos cubierto antes. Es use-after-free en lenguaje de recolección de basura.

La recolección de basura es la alternativa a liberar memoria manualmente cuando termina con ella. Una de las ventajas es que supuestamente hace que los errores de uso después de la liberación pasen, entonces, ¿qué está pasando aquí? El código de recolección de basura en jscript.dll no realiza un seguimiento adecuado del cálculo de referencia en algunas situaciones. Este error aborda específicamente el Array.sort() función de recuperación. Los argumentos para esta función no se rastrean correctamente, por lo que el caso JS se puede manipular para que un cambio de GC libere un objeto al que se accederá más tarde.

Para la explotación y un análisis más detallado de cómo se utilizó este defecto en la naturaleza, consulte la parte 2 y la parte 3 de la entrada completa.

  • Ren dice:

    ¡Ja, ge genio! ¡Se suponía que la recolección de basura era una de las grandes ventajas de Java sobre C!

  • Ren dice:

    FYI,
    Dos líneas en la sección ProcMon, dicen "sysenternals"
    no "sysinternals".
    Creo que eso es lo suficientemente importante como para corregirlo.

    • Jonathan Bennett dice:

      ¡Buena atrapada! Arreglado, gracias.

    • Enero 42 dice:

      Creo que Bryce Cogswell y Mark Russinovich son eternos.

Fernando Román
Fernando Román

Deja una respuesta

Tu dirección de correo electrónico no será publicada.