Instrutor: Na aula
anterior, vimos como fazer o downgrade de sites HTTPS para HTTP.
E isso nos permitiu basicamente ver tudo o que um usuário faz
nesses sites, porque os dados em HTTP são
enviados em texto simples.
Portanto, pudemos ver os nomes de usuário,
as senhas, os URLs e tudo o que eles fazem em sites HTTPS.
No final da palestra, também mostrei que
o método não funcionará no Facebook, Twitter e outros
sites que usam HSTS.
O motivo pelo qual isso não funcionará nesses
sites é que os navegadores modernos vêm com uma lista de sites
que só devem ser carregados por HTTPS.
Veja o que estávamos fazendo na aula anterior.
Sempre que um navegador solicita um site, carregamos esse site, mesmo
que use HTTPS, o que
sempre devolvemos a ele a versão HTTP.
No HSTS, o navegador sabe que este site,
por exemplo, o Facebook. com, deve sempre ser carregado por HTTPS.
Portanto, antes mesmo de enviar essa solicitação para
nós, ele sempre a enviará em HTTPS.
E sempre será aceito apenas se voltar como HTTPS.
Portanto, não há nada que possamos fazer realmente, uma vez
que nos tornamos o homem do meio.
Como o navegador está fazendo essa verificação localmente,
ele está comparando com uma lista que está
armazenada no próprio computador.
Portanto, a única solução prática no momento
para contornar o HSTS é fazer o navegador pensar que
está carregando outro site.
Para fazer isso, vamos substituir todos os links HSTS nas
páginas carregadas por links semelhantes, mas eles
não são os mesmos links.
Por exemplo, podemos substituir o Facebook. com com o Facebook. milho.
Agora, eu sei que isso parece muito suspeito, mas acredite
em mim quando for para a barra de URL,
o RN aqui no meio, vai parecer muito parecido com
a letra M.
Outra forma de fazer isso, você pode substituir o Twitter. com
com twitter. com, mas com um único T aqui, em
vez de um duplo T.
Eu sei que isso parece um pouco confuso agora,
mas deixe-me ir e fazer isso de forma prática,
e você verá como isso vai funcionar.
Então, bem aqui eu tenho minha máquina Kali.
Na verdade, vamos usar o comprimido HSTS que
usamos na aula anterior.
Como mencionado na aula
anterior, este caplet já está instalado no Kali customizado,
se você quiser usá-lo com o Kali
original, você terá
que baixá-lo manualmente e colocá-lo
no caminho correto, em usuário, local, compartilhar , bettercap, caplets.
Eu tenho o comprimido bem aqui.
Como eu disse, este já é
o correto porque estou usando o Kali customizado, se
formos dentro dele, teremos um arquivo chamado hstshijack. boné.
Este é o arquivo de configuração do par.
Vou clicar com o
botão direito nele, vou abri-lo com outro
aplicativo, vou clicar em visualizar todos os aplicativos.
E você deseja escolher qualquer editor de texto que possua.
Vou manter isso no Leafpad.
Você pode ter que rolar para
baixo para encontrá-lo, mas eu tenho aqui, vou selecionar.
E como você pode ver, temos um arquivo de texto
normal com todas as configurações que podemos definir.
E eu já pré-configurei isso para você.
As principais coisas que você deseja compreender e talvez
alterar são os alvos e as substituições.
Portanto, os destinos são os domínios que usam o HSTS
que você deseja substituir.
Por exemplo, tenho twitter. com aqui, e eu
também tenho estrela. Twitter. com.
Basicamente, quando você usa uma estrela, este é um coringa.
E basicamente significa qualquer subdomínio. Twitter. com também
é um alvo.
E a substituição, você quer dizer ao programa
com o que substituir este alvo.
Por exemplo, sempre que vemos o Twitter. com, vamos
substituí-lo pelo Twitter. milho.
Semelhante vale para Facebook e Apple, e alguns
outros domínios que eu disse.
Você também pode brincar com as opções
de ofuscar e codificar.
Eu defini ambos como falsos, porque
basicamente o que eles farão,
eles irão ofuscar o código e serão codificados.
Mas percebi que alguns navegadores como o Firefox bloqueiam
código ofuscado ou codificado.
É por isso que defini ambos como false para
que o código seja deixado como está.
Aqui na carga útil, você pode definir qualquer outro
código JavaScript que deseja injetar,
deixe assim, falaremos sobre injeção de JavaScript em uma aula futura.
Por fim, você deseja ter certeza de que os domínios
falsificados de DNS estão definidos exatamente da mesma forma que as substituições aqui.
Então, literalmente copio esta linha e colo aqui.
Agora vou manter tudo igual,
não preciso modificar nada.
Mas como eu disse, se você está alvejando sites diferentes,
ou se deseja usar substituições diferentes, por exemplo, se você
quiser usar um Twitter com um único T
e manter isso. com, você pode fazer isso aqui.
Se você quiser usar um Facebook com um único O,
fique com isso. com, novamente, em vez de. milho,
você pode fazer aqui.
Uma vez feito isso, certifique-se de salvar e fechar este arquivo.
E estamos prontos para executar o ataque.
Portanto, executar esse ataque será na verdade idêntico
ao que fizemos na aula
anterior, você só quer ter certeza de modificar este arquivo corretamente.
Voltando ao bettercap, vou limpar a tela, executar o bettercap
com o mesmo comando, carregando este
comprimido de prova.
Portanto, podemos fazer todos os comandos de spoofing
do AARP e executar o sniffer automaticamente.
E perfeito, como você pode ver tudo está
funcionando como esperado sem erros.
Se você executar isso e obter
um erro, apenas saia e execute o bettercap novamente.
Em seguida, queremos executar o couplet, o caplet HSTS hijack, exatamente como mostrado
na aula anterior, tudo o
que temos que fazer é digitar a guia
HS, ele será autocompleto para nós e pressione Enter para executá-lo.
Novamente, como você não pode ver
nenhum erro, tudo está funcionando conforme o esperado.
Vamos para a máquina-alvo
e ver como isso vai funcionar.
Então, eu tenho minha máquina Windows bem aqui.
Esta é o Chrome, a versão mais recente.
E antes de fazer qualquer coisa, como
eu disse, é uma boa ideia sempre apenas remover os dados de navegação.
E antes de carregar qualquer site,
é muito importante entender que mesmo com tudo o que
estamos fazendo agora, se você tentar entrar no
Facebook e digitar. com no final aqui, não
vai funcionar, o que estamos fazendo agora não vai funcionar.
Porque o Chrome bem aqui tem uma lista armazenada neste computador que
diz para não carregar o Facebook. com, a menos
que seja carregado por HTTPS.
Então, se você contar ao Facebook bem aqui,
não vai funcionar.
A única maneira de fazer isso é se o usuário acessar primeiro
o mecanismo de pesquisa, por exemplo, google. ou seja, para a Irlanda.
E no Google, como você pode ver, o Google não usa HSTS.
Portanto, contornamos isso usando o desvio HTTPS normal.
E se o usuário aqui pesquisar seu site de
destino, por exemplo, Facebook,
nosso script será executado em segundo plano.
E vai substituir todos os links desta página
para o facebook. com com facebook. milho.
Então, se eu passar o mouse sobre isso, você
verá na barra de status, o site que
será carregado é o Facebook. milho, não
facebook. com.
Isso está bem aqui, ainda diz Facebook. com.
Mas apenas no código da página HTML
do facebook. com foi substituído pelo Facebook. milho.
Então, se eu clicar neste link, novamente, como você pode ver, obtemos
uma página normal do Facebook.
Mas se você olhar aqui no topo, verá que não há HTTPS.
E se você olhar para o nome de domínio,
verá que diz. milho não. com.
Novamente, como eu disse, você pode realmente ficar com isso. com e use
o Facebook com um O ou pode adicionar um O extra,
você pode ser tão criativo quanto quiser com isso.
Este é apenas um exemplo que estou lhe dando.
Agora, quando estivermos aqui, podemos fazer o login normalmente com meu nome
de usuário, então z @ zsecurity. org e coloque minha senha 1234567890.
Pressione Enter e, se voltarmos, role para cima.
Perfeito, como você pode ver, temos os nomes
de usuário, z @ zsecurity. org e a senha
até nove zero.
Agora, como eu disse, a única maneira de isso
funcionar é se o usuário acessar o Facebook por meio de
outro site que não use HSTS.
Se eles vão na barra de URL e digite facebook. com eles próprios, não o
poderemos fazer, por isso esta
é considerada uma solução parcial e não uma
solução completa.