sslstrip
y bettercap
funcionan "a veces" en los navegadores Chrome en sitios como Facebook, Google, AOL y otros sitios que usan HSTS de precarga. ¿Por qué a veces funciona cuando no debería funcionar en absoluto?
sslstrip
y bettercap
funcionan "a veces" en los navegadores Chrome en sitios como Facebook, Google, AOL y otros sitios que usan HSTS de precarga. ¿Por qué a veces funciona cuando no debería funcionar en absoluto?
Según la documentación , esto funciona reescribiendo los enlaces HTTPS a los enlaces HTTP con una diferente subdominio Dado que ninguno de estos sitios usa la directiva includeSubDomains
, el navegador no usará HSTS para estos enlaces reescritos. El uso de la directiva includeSubDomains
evita este ataque haciendo que los navegadores obliguen al uso de HTTPS para todos los subdominios de un sitio, en lugar de solo ciertos subdominios.
Normalmente, esto no debería funcionar para sitios precargados, dado que la lista de precarga requiere que se especifique includeSubDomains
, pero aparece la lista ha hecho ciertas excepciones a ese requisito, en particular para Google y Facebook. Google tiene una larga lista de subdominios precargados que incluyen accounts.google.com, docs.google.com, encrypted.gogole.com, etc., pero google.com no está precargado. Del mismo modo, Facebook tiene www.facebook.com, m.facebook.com, secure.facebook.com y varios otros cargados previamente, pero facebook.com no lo está. Por lo tanto, si ya está en un sitio HTTP, sslstrip2 puede volver a escribir un enlace desde www.facebook.com a wwww.facebook.com para evitar HSTS.
Al probar esto, descubrí que la lista de precarga de Firefox también difiere de la de Chrome más de lo que uno podría esperar. Como se señala aquí , la lista de Firefox se basa en la de Chrome, pero Firefox hace su propia validación de la lista. Esto se traduce en casos como touch.facebook.com, donde Chrome tiene includeSubdomains
configurado como verdadero en su lista de precarga, pero Firefox lo tiene como falso (de hecho, cuando acabo de probarlo, el encabezado que obtuve fue strict-transport-security max-age=15552000; preload
).