Ayer, último martes de 2020, Microsoft cierra el año con la corrección de 58 vulnerabilidades: 9 de ellas críticas en Microsoft Dynamics, Exchange y Excel. Además, este mes sigue apareciendo la alerta sobre DNS Spoofing y Microsoft recomienda limitar el tamaño del búfer para evitar fragmentación, lo que se traducirá en más conexiones más pequeñas al puerto 53, similar a lo mencionado con el ataques SAD DNS del mes pasado.
Una de las vulnerabilidades importantes CVE-2020-17049 tiene que ver (de nuevo) con la manipulación en la delegación de tickets de Kerberos. James Karnes, de la San Jose State University, ha compartido detalles sobre esta vulnerabilidad y cómo podría explotarse.
Este exploit omite las protecciones existentes para la delegación de Kerberos y brinda una oportunidad para la suplantación de identidad, el movimiento lateral y la escalamiento de privilegios. Debido a que esto se logra cambiando un solo bit, y en el espíritu de los ataques e Golden Ticket y Silver Ticket, el autor lo ha denominado Bronze Bit Attack.
- Para obtener más información sobre Kerberos, la delegación de Kerberos y la vulnerabilidad detrás de este ataque, consulte CVE-2020-17049: Kerberos Bronze Bit Attack: teoría.
- Para saber cuándo se podría usar el ataque, su implementación y ver escenarios prácticos de exploits, consulte CVE-2020-17049: Kerberos Bronze Bit Attack – Explotación práctica.
Desde la perspectiva del atacante, el exploit requiere algunos requisitos previos:
- Un punto de apoyo en el entorno objetivo para lanzar el ataque.
- El hash de la contraseña de una cuenta de servicio.
- Esa cuenta de servicio debe poder realizar una delegación restringida a otro servicio.
Con estos requisitos previos cumplidos, el atacante puede autenticarse en el segundo servicio como cualquier usuario. Esto incluye a los miembros del grupo de usuarios protegidos y cualquier otro usuario configurado explícitamente como “sensible y no se puede delegar”. El segundo servicio aceptará y procesará las solicitudes del atacante como si provinieran del usuario suplantado.
Este ataque utiliza los protocolos S4U2self y S4U2proxy introducidos por Microsoft como extensiones del protocolo Kerberos utilizado por Active Directory. El ataque utiliza el protocolo S4U2self para obtener un ticket de servicio para un usuario objetivo del servicio comprometido, utilizando el hash de contraseña del servicio.
Luego, el ataque manipula este ticket de servicio asegurándose de que su indicador de reenvío esté establecido (cambiando el bit “Forwardable” a 1). El ticket de servicio manipulado se utiliza luego en el protocolo proxy S4U2 para obtener un ticket de servicio para el usuario objetivo al servicio objetivo. Con este ticket de servicio final en la mano, el atacante puede hacerse pasar por el usuario objetivo, enviar solicitudes al servicio objetivo y las solicitudes se procesarán bajo la autoridad del usuario objetivo.
Este ataque es posible porque la bandera “Forwardable” solo está protegida al cifrar el ticket de servicio con el hash de contraseña del primer servicio. Habiendo obtenido ya el hash, el atacante es libre de descifrar el ticket de servicio, invertir el bit para establecer la bandera de reenvío y luego volver a cifrar el ticket. A diferencia del PAC, objetivo del ataque MS14-068, no hay una firma en esta parte del ticket para detectar la manipulación.
Vale la pena señalar que Microsoft publicó un parche para la vulnerabilidad el 10 de noviembre de 2020 y continuará hasta el lanzamiento del 9 de febrero de 2021. Los ataques habilitados por la vulnerabilidad Bronze Bit son una extensión de otros ataques conocidos que surgen de la delegación Kerberos. Elad Shamir y Will Schroeder tienen excelentes artículos que explican estos escenarios y cuándo podrían usarse.
El exploit Bronze Bit pasa por alto dos posibles mitigaciones para las rutas de ataque existentes, aumentando su efectividad y versatilidad. Para probar el exploit, se ha implementado en el framework Impacket. Se recomienda consultar la publicación Practical Exploitation para obtener más detalles sobre cómo se puede usar el exploit.