Ataque MITM com sites implementados por HSTS
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
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.
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.