Ataque MITM con sitios web implementados HSTS

Aug 25 2020

Quiero realizar un ataque Man-in-the-Middle contra mi propia red con fines educativos. Quiero el siguiente escenario: realizar un ataque MITM con Bettercap, navegar a un sitio web y aceptar la advertencia del certificado, lo que significa aceptar el certificado presentado por Bettercap (el atacante).

Pregunta 1:

Quiero saber si esto es posible hoy en día con la implementación de la política de seguridad HSTS en los sitios web y la lista de precarga de HSTS.

Pregunta 2:

¿Mis únicas posibilidades son los sitios web que no tienen el HSTS implementado o hay alguna manera de eliminar HSTS y realizar el ataque aceptando el certificado?

Respuestas

1 mti2935 Aug 25 2020 at 18:40

Pregunta 1: Sí, esto es posible. El hecho de que el sitio esté en la lista de precarga de HSTS solo le dice al navegador que siempre debe conectarse al sitio por https y no por http. La lista de precarga de HSTS no contiene información sobre el certificado en sí.

Pregunta 2: No, debido a la respuesta a la pregunta 1.

1 EsaJokinen Aug 26 2020 at 01:27

Aunque no son normativos , los navegadores generalmente siguen los consejos de implementación de agentes de usuario bien razonados de RFC 6797, 12 para no permitir que el usuario omita los errores si existe una política de HSTS conocida.

12.1. Sin recurso de usuario

La falla en el establecimiento de una conexión segura debido a cualquier advertencia o error (según la Sección 8.4 ("Errores en el establecimiento de transporte seguro")) debe hacerse sin "recurso del usuario". Esto significa que no se debe presentar al usuario un cuadro de diálogo que le dé la opción de continuar. Más bien, debe tratarse de manera similar a un error del servidor donde no hay nada más que el usuario pueda hacer con respecto a la interacción con la aplicación web de destino, aparte de esperar y reintentar.

Básicamente, "cualquier advertencia o error" significa cualquier cosa que pueda causar que la implementación de UA anuncie al usuario que algo no es del todo correcto con el establecimiento de la conexión.

No hacer esto, es decir, permitir que el usuario recurra a ellos, como "hacer clic en los cuadros de diálogo de advertencia / error", es una receta para un ataque man-in-the-middle. Si una aplicación web emite una política HSTS, entonces está optando implícitamente por el enfoque "sin recurso de usuario", por el cual todos los errores de certificado o advertencias provocan la terminación de la conexión, sin posibilidad de "engañar" a los usuarios para que tomen la decisión incorrecta y se comprometan .

Si necesita poder MitM sus propias conexiones, por ejemplo, con fines de prueba o depuración, la única forma de evitar HSTS es instalar el certificado de CA raíz de su proxy HTTPS como una CA raíz confiable. De esta forma, el certificado utilizado por el proxy se convierte en un certificado válido y, por tanto, HSTS no es un problema.

De acuerdo con el certificado de CA de Provide a Bettercap para integrar en el navegador # 536 , el certificado de CA raíz de Bettercap se almacenaría en formato /root/.bettercap-ca-cert.pem.