12 abril 2018

Quebrar conexão HTTPS ainda é possível? (bypass https hsts)


Vocês já devem ter visto alguns vídeos nossos relacionado a ataques man-in-the-middle (mitm - em português homem-do-meio) onde o atacante fica entre a conexão do usuário com o roteador como ilustra a imagem acima. E provavelmente você se perguntou "mais porque não consigo capturar dados em sites https?". Hoje iremos esclarecer essa dúvida abaixo.

Primeiramente devemos voltar ao ano de 2009, ano de uma palestra que abalou a segurança dos sites. Moxie Marlinspike na Black Hat DC, apresentou ao mundo sua ferramenta capaz de modificar links https para http e então capturar o tráfego da rede.

Sua primeira ferramente de impacto foi o sslsniff em 2002, destinado a realizar ataque mitm injetando certificados SSL ilegítimos. Basicamente a ferramenta intercepta as requisições do cliente ao servidor e gera um certificado para o domínio assinando ele com qualquer certificado que você especificar. Enquanto isso do outro lado da conexão, o servidor realiza a conexão normalmente. No meio dessa conexão, o atacante tem a capacidade decriptar os dados, interceptar, injetar e encriptar parecendo uma conexão segura.

Mas a ferramente apresentada em 2009 foi o SSLStrip que basicamente, sem entrar em detalhes técnicos, intercepta a conexão substituindo as requisições para http, ou seja, altera todos os links de uma página do Google por exemplo de https para http.

Para resolver este problema, navegadores passaram a utilizar cabeçalhos HSTS (HTTP Strict Transport Security). Usando esta técnica é possível proteger sites contra o downgrade de protocolo (https para http), o servidor responsável pelo site através de um campo no cabeçalho de resposta impõe uma regra ao navegador, de que o usuário só pode interagir com o site se estiver sob conexão https.

Felizmente em 2014, Leonardo Nve na BH Asia apresentou uma versão melhorada do SSLStrip. Com SSLStrip 2.0 (sslstrip+) o atacante além de fazer o downgrade de https para http, conseguia enganar o HSTS alterando o endereço do site no html. Por exemplo adicionando um quarto w em www.google.com.br . Para isto é necessário utilizar um servidor DNS para que seja capaz de resolver o endereço do site já que o DNS do seu roteador não saberá como reagir a este endereço. Portanto Leonardo lançou também o dns2proxy para interpretar o endereço.

Infelizmente muitos dos navegadores populares, contornam este problema mantendo uma lista de sites populares e sites que você costuma acessar que exigem HSTS. Portanto, é possível burlar o HSTS somente se for a primeira visita do usuário ao site. Mas nem tudo está perdido pois determinados domínios não constam nessa lista, por exemplo o domínio social.facebook.com.br não consta na lista do Google Chrome versão 65.0.3325.181 (64bits).


O mesmo acontece com twitter.com.br, enquanto que twitter.com consta na lista.

Sendo assim, voltando ao exemplo do Facebook, é possível redirecionar todas as requisições de https://facebook.com para http://social.facebook.com.br realizando um ataque DNS Spoof com dns2proxy. Assim, quando o usuário logar no site, você capturará seu email e senha se sniffar a rede já que o tráfego não está sendo criptografado.

Caso use o script MITMf para realização de ataques man-in-the-middle que engane o HSTS você só precisa adicionar --hsts e --dns ao comando de execução como ilustra a imagem abaixo:

Uma outra ferramenta semelhante que possibilita a quebra de sites https é o SSLSplit que intercepta um certificado SSL/TSL e insere outro que caso seja aceito pelo usuário, possibilita farejar os dados que trafegam, saiba mais clicando aqui.

Respondendo a pergunta do título deste artigo "Quebrar conexão HTTPS ainda é possível?". Sim é possível! Mas não é tão simples, já que você depende de um cenário favorável, como um navegador desatualizado ou ação do usuário. Então nosso artigo "Cadeado verde não garante nada sobre o site" continuará atual por um longo tempo.

Fontes:
https://null-byte.wonderhowto.com/how-to/defeating-hsts-and-bypassing-https-with-dns-server-changes-and-mitmf-0162322/
https://www.guiadoti.com/2017/09/sslstrip-2-0-hsts-bypass/
https://moxie.org/software/sslsniff/
https://www.vivaolinux.com.br/dica/Interceptando-trafego-SSL-HTTPS-com-Ettercap-e-SSLstrip
https://github.com/droe/sslsplit




~ Artigos recomendados para você:









Please Donate To Bitcoin Address: [[address]]





Donation of [[value]] BTC Received. Thank You.


[[error]]