Instrutor: Até agora, vimos várias coisas
que podemos fazer quando nos tornamos o homem do meio.
Então, vimos como podemos ver tudo o que o computador de destino faz
na rede.
Assim, pudemos ver os sites, os nomes de usuário,
as senhas, as imagens, tudo o que carregam
em seu navegador.
Também vimos que, como somos o
homem do meio, podemos redirecioná-los para outros sites.
Portanto, sempre que eles solicitarem
um domínio, podemos redirecioná-los para outro
lugar, fazendo um ataque de falsificação de DNS.
Outra coisa muito legal que
podemos fazer é modificar o HTML, modificar as páginas,
conforme elas carregam no navegador de destino.
Obviamente, tudo isso é possível
porque somos o homem
do meio, porque podemos interceptar todos esses dados.
Portanto, podemos esperar pelo código HTML,
que é o código responsável por carregar as páginas da web.
E à medida que flui pelo
nosso computador, podemos inserir qualquer parte do código que
quisermos e o navegador executará esse código.
Agora, o HTML é apenas responsável por renderizar os elementos que você
vê na página da web.
Então ele é responsável pelos botões, pelos
fóruns, pelo texto, ele
realmente não permite que façamos muito.
Mas os navegadores modernos podem executar código JavaScript.
JavaScript é uma linguagem de programação poderosa que
podemos usar para fazer tantas coisas, podemos realmente
modificar a página inteira,
remover elementos ou adicionar elementos à página,
podemos substituir links.
E isso é realmente o
que eu fiz quando modifiquei o plugin HSTS.
Então, adicionei o código que substituirá o HTTPS por HTTP.
E também adicionei o código que substituirá o link real, o
nome de domínio real com o nome de domínio falso,
aquele com o ponto
corn ou o que você definir no script.
Você pode até mesmo usá-lo para conectar o navegador a
outras estruturas de exploração do navegador, que
podemos usar para explorar ainda mais o destino
e até obter controle total sobre o computador.
E veremos isso mais tarde no curso.
Mas, por agora, vou mostrar como injetar um
código JavaScript muito simples nas páginas carregadas.
E então vamos desenvolver isso em
palestras futuras e ver como isso pode ser poderoso e útil.
Então, bem aqui, tenho minha máquina Kali.
E antes de executar o melhor
cap e mostrar como
injetar JavaScript, primeiro de tudo, precisamos ter algum código
JavaScript para injetar no navegador de destino.
Vou abrir um editor de texto.
E vou escrever um código JavaScript muito, muito simples.
Como eu disse, veremos como podemos usar isso para
executar um código mais útil.
Mas, por enquanto, estamos mantendo isso simples apenas
para ver como podemos realmente executar o código JavaScript.
Então tudo que vou fazer é alertar, abrir um
colchete, aspas e vou dizer teste de JavaScript
Vou fechar as aspas e fechar o colchete
e adicionar um ponto e vírgula.
Então, bem aqui, este código,
tudo o que ele fará é exibir uma mensagem de aviso,
uma mensagem de alerta dizendo código JavaScript.
Então, como vamos tentar injetar esse código em todas as páginas, sempre
que carregarmos uma página
da web, devemos ver uma mensagem dizendo JavaScript test.
Agora vou salvar isso.
Então, vou para Arquivo, Salvar.
E vou colocar isso no meu diretório raiz.
E vou chamá-lo de alerta. js, vou apertar
Enter.
E isso está salvo agora na minha raiz, então
se eu sair, podemos ver que temos o arquivo bem aqui.
Portanto, este é o arquivo que contém
o código que queremos injetar em qualquer página da web que carregue
no computador de destino.
A próxima etapa é acessar nosso plug-in de sequestro HSTS.
Como eu mostrei antes, isso estava em user, local,
share, bettercap, caplets, HSTS hijack, certifique-se de usar aquele
que eu incluí nos recursos, não aquele
que vem integrado com o bettercap,
porque o integrado um não funcionará como você queria.
Portanto, aqui temos o hstshijack. arquivo cap.
Este é o arquivo de configuração de todo o plugin.
Então, vou clicar com o
botão direito e abri-lo com meu editor de texto.
E aqui, o que queremos
modificar são as cargas úteis aqui.
Como você
pode ver aqui, ele já está injetando
um arquivo JavaScript chamado keylogger. js, mas também queremos injetar
nosso próprio código.
Vou adicionar uma vírgula aqui.
E vou adicionar uma estrela seguida de dois pontos.
Adicionamos esta estrela aqui para dizer que quero
injetar meu script em qualquer página que o destino carregue.
Se você deseja injetar seu código em
domínios específicos, pode remover a estrela e apenas
listar os domínios em que deseja injetar esse código aqui.
Mas, como eu disse, queremos injetar isso em todas as páginas.
Vou colocar isso como uma estrela.
E depois dos dois pontos, colocarei a localização
do arquivo JavaScript que desejo injetar
no navegador.
Então, se olharmos aqui para trás,
este é o arquivo que acabamos de criar, que
está na raiz da minha casa, e é chamado de alerta. js.
Vou colocar aqui, vou apenas dizer root slash para
frente, seguido de alert. js.
E é isso.
Vou salvar este Ctrl S e encerrá-lo com o Ctrl
Q, e estamos prontos para começar.
Vou para o meu terminal, vou rodar o bettercap usando
exatamente o mesmo comando que estamos usando.
Portanto, estamos apenas fornecendo a interface como eth0, e estamos
fornecendo nosso arquivo de spool para executar automaticamente o ataque de
spoofing ARPX, nos colocando no meio da conexão.
E como você pode ver, isso está funcionando
sem erros, então está tudo perfeito.
O que também quero fazer agora
é executar meu plug-in de sequestro HSTS.
E como você sabe, tudo o que temos que fazer é apenas digitar
H S e tab, isso será autocompleto, vou apertar Enter
e tudo está funcionando sem nenhum erro.
Então está tudo perfeito.
E como você pode ver aqui, ele está dizendo que
as cargas úteis, está carregando as cargas úteis do JavaScript, são o keylogger.
Este é o padrão que o arquivo já estava carregando.
E aquele que acabamos de especificar, que está
nos alertas de raiz. js.
Portanto, agora, a qualquer momento que nosso destino carrega qualquer página da web, o
código que colocamos no alerta. js deve
ser injetado na página carregada e
deve ser executado.
O resultado disso deve nos mostrar uma
mensagem simples dizendo teste JavaScript.
Então, vamos ao alvo.
E como de costume, uma boa ideia é apenas remover
os dados de navegação apenas para ter certeza de que nada está armazenado em cache.
E sempre gosto de primeiro testar com o caso mais simples
e depois passar para cenários mais complexos.
Então, antes de tudo, vou testá-lo em uma página HTTP
normal, para que não haja nada a
ser ignorado, nenhuma criptografia.
Então, vamos apenas para o Volnweb. com.
E perfeito, como você pode ver, temos uma mensagem
de alerta aqui nos informando sobre o teste de JavaScript.
Então, basicamente, isso significa o código
JavaScript em meu alerta. O arquivo js foi injetado nesta página.
Portanto, agora que verificamos que ele funciona em páginas HTTP normais, vamos
prosseguir e testá-lo em uma página que usa HTTPS,
como stackoverflow. com.
Perfeito, está funcionando conforme o esperado.
Outro exemplo seria o LinkedIn. com.
Lembre-se de que esses sites usam HTTPS.
E como você pode ver, somos capazes de carregá-los sem HTTPS
aqui, ou seja, apenas por HTTP.
Portanto, mesmo se você fizer login aqui,
poderá obter o nome
de usuário e a senha conforme mostrado antes.
Finalmente, vamos testar o site HSTS usando o
método de desvio parcial do HSTS que mostrei a você.
Para que isso funcione, precisamos primeiro ir para o
Google e precisamos ir para um domínio do Google que
não use HSTS, semelhante ao google. ou seja,
Na verdade, este é o site local do Google para a Irlanda.
E como você pode ver, o código funciona.
Isto é bom.
O Google só usa HTTPS de qualquer maneira.
Mas vamos procurar o Facebook.
Agora sabemos que o Facebook usa HSTS.
E como o HSTS é usado, não devemos ser capazes de
injetar nada no site, porque
o navegador só vai carregá-lo por HTTPS.
Mas usando nosso método de bypass parcial.
Se eu clicar aqui no Facebook, como você pode ver,
o código é executado.
Porque o que estamos carregando agora é o Facebook. milho, não facebook.
com.
E como você pode ver, temos uma página normal do Facebook
novamente, que parece idêntica.
E se você fizer o login, poderá obter o nome de usuário
e a senha.
Como você pode ver, isso funcionará em
páginas HTTP e HTTPS e até mesmo em HSTS se o destino
pesquisar esse site, não se colocar o nome de domínio aqui.
Então, se o alvo entrar e literalmente digitar facebook. com manualmente e tecle enter,
o navegador irá forçar a conexão HTTPS como você pode ver aqui,
porque como eu disse, ele tem uma
lista pré-carregada de sites que só pode carregar
por HTTPS e porque o navegador está estabelecendo conexão HTTPS, o
os dados serão criptografados e, portanto,
queremos ser capazes de injetar qualquer coisa neles.