Ataque MITM com sites implementados por HSTS

Aug 25 2020

Quero realizar um ataque Man-in-the-Middle contra minha própria rede para fins educacionais. Desejo o seguinte cenário: Executar um ataque MITM com Bettercap, navegar até um site e aceitar o aviso de certificado, o que significa aceitar o certificado apresentado pela Bettercap (o invasor).

Questão 1:

Eu quero saber se isso é possível hoje em dia com a política de segurança HSTS sendo implementada em sites e lista de pré-carregamento HSTS?

Questão 2:

São minhas únicas possibilidades os sites que não possuem o HSTS implementado ou existe uma maneira de remover o HSTS e realizar o ataque aceitando o certificado?

Respostas

1 mti2935 Aug 25 2020 at 18:40

Pergunta 1: Sim, isso é possível. O fato de o site estar na lista de pré-carregamento do HSTS apenas informa ao navegador que ele deve sempre se conectar ao site por https e não por http. A lista de pré-carregamento do HSTS não contém nenhuma informação sobre o certificado em si.

Pergunta 2: Não, devido à resposta à pergunta 1.

1 EsaJokinen Aug 26 2020 at 01:27

Embora não normativo , os navegadores geralmente seguem os bem fundamentados Conselhos de Implementação do Agente do Usuário da RFC 6797, 12 para não permitir que o usuário ignore os erros se houver uma política de HSTS conhecida em vigor.

12,1. Sem recurso do usuário

A falha no estabelecimento da conexão segura em quaisquer avisos ou erros (de acordo com a Seção 8.4 ("Erros no estabelecimento de transporte seguro")) deve ser feita sem "recurso do usuário". Isso significa que não deve ser apresentada uma caixa de diálogo ao usuário com a opção de prosseguir. Em vez disso, deve ser tratado de forma semelhante a um erro de servidor em que não há mais nada que o usuário possa fazer em relação à interação com o aplicativo da web de destino, exceto esperar e tentar novamente.

Essencialmente, "quaisquer avisos ou erros" significa qualquer coisa que faria com que a implementação do UA anuncie ao usuário que algo não está totalmente correto com o estabelecimento da conexão.

Não fazer isso, ou seja, permitir o recurso do usuário, como "clicar em caixas de diálogo de aviso / erro", é uma receita para um ataque man-in-the-middle. Se um aplicativo da web emite uma política HSTS, ele está implicitamente optando pela abordagem "sem recurso do usuário", em que todos os erros ou avisos de certificado causam o encerramento da conexão, sem chance de "enganar" os usuários para que tomem a decisão errada e se comprometam .

Se você precisa ser capaz de MitM suas próprias conexões, por exemplo, para fins de teste ou depuração, a única maneira de contornar o HSTS é instalar o certificado CA raiz do proxy HTTPS como CA raiz confiável. Desta forma, o certificado usado pelo proxy torna-se um certificado válido e, portanto, o HSTS não é um problema.

De acordo com a Provide a Bettercap's CA certificado para integrar no navegador # 536 , o certificado CA raiz da Bettercap seria armazenado em /root/.bettercap-ca-cert.pem.