Cargando
SecurityInside.info
  • Sobre SecurityInside
  • GitHub
  • Click to open the search input field Click to open the search input field Buscar
  • Menú Menú
  • Link to X
  • Link to Rss this site
  • Link to Youtube

Evitando HSTS, ¿una cuestión de tiempo?

10 mayo, 2015/en Hacking/por Antonio López

Como vimos en el artículo anterior http://securityinside.info/hsts-una-defensa-mitm-sslstrip/ , HSTS fue creado para que los navegadores rechazasen conexiones HTTP a ciertos lugares y, de este modo evitar ataques de interceptación tipo mitm o sslstrip. Para ello, se introduce la nueva cabecera Strict-Transport-Security en el protocolo HTTP, que establece unos parámetros para indicar al navegador una política de como manejar las conexiones SSL para un sitio web en concreto. Los navegadores que implementan HSTS mantienen además una lista «precargada» de dominios  con lo cual se  evitaría el posible ataque al visitar por primera vez que se visita un sitio y no conocer que implementa HSTS. El ataque en esas circunstancias de primera visita, de no existir las listas precargadas podría ser efectivo. Es lo que se denomina ataque bootstrap.  

Más información sobre las listas precargadas puede encontrarse en el sitio web del proyecto Chromium, uno de los precursores principales de las listas precargadas HSTS.

Ataques a HSTS

A pesar de las listas precargadas, aún existen algunas oportunidades para esquivar este mecanismo de protección, entre ellos:

  • Ataques DNS. Mediante la manipulación de las resoluciones DNS de la víctima podemos evitar que el dominio a atacar sea encontrado en las políticas HSTS manipulando la respuesta DNS que recibe la víctima. Así, y mediante un ataque mitm e interceptando las resoluciones de nombre,  se obligaría a la víctima a conectarse, por ejemplo a «cuentas.google.com» cuando se pretendía conectar a «accounts.google.com» . La manipulación de la resolución DNS engañaría al navegador al no encontrar ese nombre entre sus registros HSTS. Esta aproximación ha sido implementada y presentada en la Blackhat Asia 2014 por Leonardo NVE
  • Ataques basados en tiempo. Esta estrategia consiste en conseguir que la política HSTS caduque con lo cual el navegador, hasta que no renueve recibiendo el parámetro «max-age» visitando de nuevo el sitio, ignorará la obligación de establecer conexión HTTPS. Este el el tipo de ataque es el que vamos a describir aquí, y que fue demostrado por  José Selvi presentando en la BlackHat Europa 2014 su estudio y la correspondiente demostración.

HSTS, listas precargadas y registros dinámicos

Como hemos dicho, si conseguimos de algún modo hacer caducar los registros HSTS que mantiene el navegador, éste ignorará la política correspondiente y no forzará la conexión HTTPS hasta haber actualizado la política. Como podemos ver en las listas precargadas antes referidas, son multitud de sitios los que ya se encuentran enumerados. Observando las cabeceras en una solicitud HTTP podemos encontrar en la respuesta del servidor si éste incorpora HSTS:

 

Cabeceras HSTS

Cabeceras HSTS

En la siguiente imagen observamos como por ejemplo el sitio www.icloud.com no muestra el parámetro «preload» , cosa que sí aparece en facebook.com. De esta sencilla consulta podemos inferir que, presumiblemente www.icloud.com no se encuentra entre los registros precargados del navegador, y por tanto sería vulnerable en una primera visita a un ataque bootsrap.

Efectivamente, comprobamos en el navegador (chrome) que no existe el registro:

icloud hsts

No existe el registro HSTS de www.icloud.com precargado

 

Sin embargo tras visitar https://www.icloud.com:

Registro HSTS de www.icloud.com tras visitar el sitio

Registro HSTS de www.icloud.com tras visitar el sitio

Con estos ejemplos comprobamos que cualquier sitio que incorpore HSTS y que no esté precargado se registrará al visitar por primera vez el sitio HTTPS correspondiente, y quedará dinámicamente almacenado en las políticas del navegador hasta que expire (max-age) o sea eliminado. Las entradas precargadas no se pueden eliminar manualmente

NOTA: El modo en que se administran los registros HSTS depende en última instancia de la implementación propia del navegador en sí, con lo que este comportamiento puede variar entre los distintos navegadores existentes y debe ser comprobado en cada caso.

Hasta ahora mucha teoría, pero… ¿como podemos burlar hsts?

Regreso al futuro, engañando HSTS con ataques NTP

Como se menciona al comienzo del artículo, uno de los posibles métodos para evitar la protección HSTS pasa por hacer creer al navegador que la política ha caducado y de ese modo la ignore. Para ello, y dado que el navegador comprueba el tiempo basándose en la máquina donde corre, si conseguimos modificar el reloj de la máquina víctima a través de un ataque de red, estaremos en condiciones de burlar al navegador (o al menos, intentarlo) y evitar que fuerce una conexión HTTPS. A partir de ese momento, un ataque mitm con sslstrip sería efectivo.

NTP spoofing: Delorean, y directos al futuro

En la pasada BlackHat, el conocido investigador José Selvi (http://www.pentester.es) presentó una herramienta escrita en python como prueba de concepto para sortear HSTS. La herramienta se llama Delorean y hace las veces de servidor NTP el cual podemos configurar para mantenerse a la escucha de solicitudes ntp y responder con los parámetros deseados, en este caso llevar hacia adelante el reloj de la víctima.

Utilizando Delorean, iptables, sslstrip y mitm es posible llevar a cabo un ataque man in the middle y conseguir interceptar el  tráfico HTTPS a pesar de HSTS.

En el siguiente vídeo realizamos una demostración:

Conclusión

A pesar de que en los últimos años se ha avanzado mucho en la seguridad de las comunicaciones, son tan numerosas las variables que intervienen en las mismas, que hacen muy difícil definir un protocolo de comunicación que sea estándar e integrable y que a su vez proporcione una seguridad inquebrantable. HSTS en sí mismo es una muy buena protección pero como hemos visto, factores externos (en este caso un ataque NTP) abren una brecha en su diseño. De la misma forma, este mismo ataque que hemos demostrado aquí, con Ubuntu y Firefox puede no resultar efectivo en otro entorno,  dependiendo del sistema operativo, del mecanismo de sincronización, del sitio a atacar, del navegador, etc. Sin embargo, la posiblidad ahí está.

 

  • Acerca de
  • Últimas entradas
Antonio López
Antonio López
Técnico de Seguridad en Incibe_
Físico reciclado en el mundo de la seguridad informática. Curioso por naturaleza, intrépido "por defecto".

Ver descripción | Ver perfil en LinkedIn
Antonio López
Últimas entradas de Antonio López (ver todo)
  • Contenedores Linux y seguridad. Docker - 6 julio, 2016
  • De Charleta: «A Year in the Backdoor Factory» (Joshua Pitts) - 30 mayo, 2016
  • De Charleta: «Writing Bad @$$ Malware For OS X» (Patrick Wardle) - 7 marzo, 2016

¿Nos ayudas a compartir?

  • Compartir en X (Se abre en una ventana nueva) X
  • Compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
  • Comparte en Facebook (Se abre en una ventana nueva) Facebook
  • Haz clic en Pinterest (Se abre en una ventana nueva) Pinterest
  • Compartir en Reddit (Se abre en una ventana nueva) Reddit
  • Enviar un enlace a un amigo por correo electrónico (Se abre en una ventana nueva) Correo electrónico

Relacionado

Etiquetas: Man in the middle, SSL, ssltrip
Compartir esta entrada
  • Compartir en WhatsApp
https://www.securityinside.info/wp-content/uploads/hsts_b.png 321 800 Antonio López https://securityinside.info/wp-content/uploads/logo.png Antonio López2015-05-10 22:22:532024-11-06 12:22:01Evitando HSTS, ¿una cuestión de tiempo?
Quizás te interese
HSTS, una defensa contra MITM y sslstrip
de-charleta De Charleta: «A Year in the Backdoor Factory» (Joshua Pitts)

Categorías

  • Anonimato (18)
  • Auditoría (30)
  • Charlas y ponencias (68)
  • Cloud Security (9)
  • Control de acceso (29)
  • Desarrollo (32)
  • Dispositivos (19)
  • Eventos (25)
  • Exploiting (6)
  • Forense (6)
  • Formación (39)
  • Gobierno IT (36)
  • Hacking (20)
  • Herramientas (26)
  • I+D (13)
  • Ingeniería inversa (6)
  • ISO 27001 (10)
  • Live (20)
  • Malware (22)
  • Noticias (54)
  • Pentesting (12)
  • Privacidad (39)
  • Sin categoría (1)
  • Vulnerabilidades (24)

Archivo

  • mayo 2026
  • abril 2025
  • septiembre 2024
  • junio 2024
  • abril 2024
  • marzo 2024
  • enero 2021
  • septiembre 2020
  • abril 2020
  • febrero 2020
  • enero 2020
  • octubre 2019
  • septiembre 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • febrero 2019
  • enero 2019
  • octubre 2018
  • agosto 2018
  • mayo 2018
  • abril 2018
  • marzo 2018
  • febrero 2018
  • diciembre 2017
  • noviembre 2017
  • octubre 2017
  • septiembre 2017
  • julio 2017
  • junio 2017
  • mayo 2017
  • abril 2017
  • marzo 2017
  • febrero 2017
  • enero 2017
  • diciembre 2016
  • noviembre 2016
  • octubre 2016
  • septiembre 2016
  • julio 2016
  • junio 2016
  • mayo 2016
  • abril 2016
  • marzo 2016
  • febrero 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • octubre 2015
  • septiembre 2015
  • agosto 2015
  • julio 2015
  • junio 2015
  • mayo 2015
  • abril 2015
  • marzo 2015
[2015 - 2024] - SecurityInside.info - Segura gracias a Defender Eye
  • Link to X
  • Link to Rss this site
  • Link to Youtube
Link to: Ofuscación de malware en macros de MS Office (II) Link to: Ofuscación de malware en macros de MS Office (II) Ofuscación de malware en macros de MS Office (II)Ofuscación de malware en macros de MS Office Link to: Exfiltración del IMEI en aplicaciones móviles Link to: Exfiltración del IMEI en aplicaciones móviles Exfiltración del IMEIExfiltración del IMEI en aplicaciones móviles
Desplazarse hacia arriba Desplazarse hacia arriba Desplazarse hacia arriba