Bem-vindos de volta, pessoal.
Chegamos ao final deste capítulo aqui.
E esse também é o momento perfeito para fazer a transição para a próxima etapa, em que falaremos sobre a manipulação do tempo
de execução, na próxima etapa em que falaremos extensivamente sobre a liberdade, que é uma estrutura realmente incrível.
Quero dizer, este aqui é de tirar o fôlego.
Muitas ferramentas foram criadas como uma espécie de complemento para essa estrutura de liberdade.
E uma delas é a abstração.
Essa estrutura tem alguns scripts preparados que tentam resolver nossas tarefas básicas, como, por exemplo, a aplicação
de patches, a fixação de certificados ou a detecção de rotina.
E é aí que voltamos a esse ponto aqui, remendando uma fixação de certificado.
Mas, desta vez, não se trata de Smiley.
Dessa vez, isso será feito na memória desse aplicativo, que é absolutamente incrível.
Portanto, se você tiver que lidar com a fixação de certificados, a objeção pode ser muito útil para essa estrutura
e para o caso de a abstração falhar.
Portanto, se a abstração não for capaz de realizar essa tarefa, então agora somos hábeis o suficiente para
realizá-la por nós mesmos, de modo que também podemos fazer isso no smiley por conta própria agora, o que também é bastante surpreendente.
Mas, para ser sincero, ao não optar pela maneira mais fácil nesse caso, seria simplesmente executar a abstração
e desativar a fixação do certificado.
Portanto, vamos dar uma olhada nessa estrutura, como ela funciona e como podemos executar essas tarefas.
Vamos lá.
Então, aqui estamos nós agora.
Vamos dar uma olhada em como a objeção é capaz de se livrar dessa fixação de certificado
aqui.
Como já foi mencionado, a objeção é baseada no free de e o free de não é uma estrutura realmente incrível.
Portanto, daremos uma olhada detalhada na liberdade no próximo capítulo.
Se você não entender algumas partes aqui, não há problema algum, pois ainda não falamos
sobre elas.
Vamos discuti-las no próximo capítulo.
Quero apenas dar a você uma prévia do que a abstração é capaz de fazer, o que é manipulação em tempo de
execução e como você pode lidar com a fixação de certificados não corrigindo esse código.
Muito bem.
Vamos dar uma olhada na nossa configuração aqui.
Começamos com um muito limpo.
Portanto, nossa configuração regulatória e, em seguida, verificaremos se o aplicativo realmente funciona depois de estabelecermos nossa conexão
man in the middle e, então, o aplicativo não deverá mais funcionar.
Em seguida, usaremos a abstração para fazer esse aplicativo funcionar novamente.
Portanto, usaremos a abstração para perpetuar a fixação de certificados, mas desta vez será uma abordagem de tempo
de execução.
Portanto, a abstração se conectará a esse processo e, sim, modificará a memória em que esse certificado
foi fixado.
Absolutamente incrível, certo?
Com certeza.
Portanto, vamos começar agora mesmo.
Está bem.
Então, primeiro, vamos verificar nossa configuração.
Ele está funcionando?
Não, isso é ótimo.
Então, nós o conectamos e vamos ver.
É isso aí.
Agora vamos nos certificar de que nenhuma regra de deslocamento de IP esteja sendo ativada.
Então, pegamos nosso roteador e imprimimos as regras da tabela IP que estão listadas na tabela.
Não há nada aqui.
Isso é ótimo.
Muito bem, agora instalamos nosso aplicativo e começamos com a fixação do certificado.
Pesquisa de sublinhado.
Então, vamos recuperar nosso smartphone.
Ops.
Não foi instalado aqui.
Isso também é ótimo.
Novos aplicativos de terminal e certificado de fixação do underscore cert.
E, é claro, usamos a versão original da versão modificada.
E este aqui.
Tudo bem.
Isso deve funcionar agora mesmo se tivermos uma conexão Wi-Fi.
Portanto, vamos corrigir esse problema rapidamente.
Conexão WI fi.
Agora estamos conectados.
Agora ele deve funcionar.
Então, vamos iniciar esse aplicativo.
Enviar solicitação.
Sim.
Aqui está.
Bem-sucedido.
Está bem.
Legal.
O aplicativo está funcionando.
O desenvolvedor fez um ótimo trabalho.
Muito bem, agora vamos começar a suíte de arrotos.
Então, vamos entrar na suíte de arrotos e ir em direção à suíte de arrotos.
E nós o executamos aqui.
Escolhemos projetos temporários nas configurações padrão.
E depois as opções de proxy, ops, desculpe, opções de proxy.
Selecionamos essa interface 1042 0. 1 e também ativamos o proxy invisível.
Portanto, a suíte foi montada.
Legal.
Tudo bem.
Portanto, desta vez, também desativamos o suporte a Hdcp, pois, caso contrário, seria muito confuso.
Podemos fazer isso nas opções do projeto e, em seguida, no http, precisamos desativar essa opção.
Está bem.
Agora, o conjunto de arrotos foi configurado.
Vamos encaminhar nossos pacotes para a suíte burp e pronto.
Então, vamos recuperar nossa concha.
E agora queremos aplicar nossa regra de tabela IP em relação à porca da tabela.
Queremos acrescentar uma nova regra de pré-roteamento referente à porta de destino TCP 80.
Queremos alterar o endereço de destino para o destino 1042 zero 188.
Tudo bem.
E também há quatro, quatro, quatro, três.
Está bem.
A configuração está concluída.
Agora, se você entrar no histórico e apertar esse botão novamente, vamos ver se a fixação do
certificado funciona, sim, teremos um erro.
E também no painel, temos isso aqui.
O cliente não conseguiu negociar a conexão TLS.
Talvez devêssemos fechar este e torná-lo um certificado um pouco maior.
E.
Se você clicar novamente, verá que esse número está aumentando.
Portanto, o desenvolvedor também fez um ótimo trabalho na fixação desses certificados.
Muito bem.
Portanto, verificamos que tudo está funcionando corretamente agora.
E vamos nos livrar dessa abordagem de fixação de certificados com nossa estrutura de objeções ou, para ser mais exato,
com o Frida.
Então, como podemos fazer isso?
Antes de tudo, precisamos iniciar e liberar o servidor que precisa ser colocado no smartphone.
Eu já fiz isso e falaremos bastante sobre isso no próximo capítulo.
Portanto, você pode simplesmente relaxar e assistir.
Então, entramos no smartphone e precisamos acessar o diretório temporário local de dados porque
esse é o único diretório que pode executar binários.
Portanto, os executáveis, ou seja, todos esses executáveis, precisam ser colocados aqui e, ainda assim, o diretório temp não está no
diretório em tempo real.
Portanto, mesmo após a reinicialização, podemos ver que esses binários ainda estão lá.
Está bem.
Portanto, isso agora está sendo executado no smartphone.
Agora precisamos de uma rota para iniciar esse servidor gratuito aqui.
Mas você também aprenderá como usar o Free sem ter privilégios de root.
E isso é ainda mais surpreendente porque você pode ver em um momento o que Frida é capaz de fazer.
E, sim, ter isso em um dispositivo sem root para um aplicativo é absolutamente incrível.
Certo, mas desta vez precisamos nos ater aos privilégios de root.
A confiança pode torná-la não mais complexa neste momento.
Tudo bem.
Portanto, depois de obter esses privilégios, começamos a liberar o servidor, e este agora está sendo executado no dispositivo.
Então, colocamos este à direita e este aqui.
Portanto, ele está sendo executado no dispositivo.
Está bem.
Agora podemos usar a abstração para nos conectarmos a essa instância de leitor ou aqui, para ser mais exato, a
esse processo aqui.
E então podemos manipular essa memória de processo.
Legal.
Então, vejamos, primeiro temos que instalar a objeção, é claro.
Mas esse é simplesmente o estilo do PIP 3.
Objeção.
Então, esse corte é feito e podemos usar a objeção.
E o que precisamos dizer a essa objeção é a qual processo queremos nos conectar nesse caso, o que pode ser
feito por um gadget.
E agora temos que fornecer o nome do pacote desse aplicativo, que é com app hacking e certificate pinning.
Ok, agora podemos fornecer outro parâmetro, que é explore, e isso abrirá um shell interativo
para esse processo aqui.
Está bem.
E lá vamos nós.
Agora estamos conectados ao aplicativo de fixação de certificados, e tudo o que precisamos fazer é simplesmente executar
o Android.
E aqui temos muitas opções, scripts preparados que a objeção pode usar e, por exemplo, interagir com a área de transferência com
o heap, mas o armazenamento de chaves e a desativação da detecção de enraizamento também são muito bons.
E aqui temos nosso pinning SSL, portanto, executamos o Android como está, abrindo a desativação, e isso é tudo para que possamos ver que a objeção agora está
conectada ou que a Frida está conectada ao gerenciador de confiança no pin do certificado e também inserimos
este.
Vamos ver se isso realmente funciona e vamos colocar isso aqui.
Está bem.
E agora dentro da história do proxy.
Então vamos ver.
Enviar solicitação.
Aqui está.
Nós a temos.
Legal.
Desativamos a fixação de certificados com apenas essa linha.
Absolutamente fantástico.
Certo.
Portanto, agora podemos interceptar e encaminhar o material e podemos ver aqui que está funcionando.
Portanto, agora também podemos manipular a resposta, é claro, e vamos resolver isso rapidamente.
Portanto, com uma opção, interceptar respostas no nome do domínio corresponde a qualquer um, então ativamos a interceptação mais uma vez e enviamos
a solicitação.
Essa é a solicitação.
E aqui temos a resposta.
Nozes.
Sem dúvida, funciona.
Mas já percebemos isso ao ver a solicitação nos subúrbios e aqui.
Portanto, a objeção é absolutamente excelente se você quiser lidar com a fixação de certificados.
Mas, infelizmente, isso não funciona o tempo todo, porque podemos ver isso aqui.
A Objection tem alguns scripts preparados que fazem um trabalho incrível em relação a essas bibliotecas, mas, às vezes,
os desenvolvedores personalizam essas bibliotecas, aplicam seus próprios patches ou usam bibliotecas proprietárias
que não são conhecidas pela Objection.
Nesse caso, infelizmente, ele falha.
E esse também é o caso do segundo aplicativo para o Underscore Hedge.
Então, vamos dar uma olhada e minimizar esse aplicativo e, em seguida, desinstalá-lo.
Ops.
Aqui vamos nós.
Está bem.
Agora, nos aplicativos, temos o hash de sublinhado de fixação de certificado.
Esse é o aplicativo original.
Sucesso.
Se você entrar nesse site e pressionar o botão enviar solicitação, nada acontecerá.
Mas a objeção também não está mais conectada.
Podemos ver no painel que esses números vão aumentar.
Tudo bem.
A objeção foi conectada ao último processo.
Portanto, se voltarmos a essa estrutura, poderemos ver a sessão desvinculada.
Se ele fechar o aplicativo ao qual a objeção está vinculada, então a objeção, é claro, perde a conexão.
Portanto, temos que reiniciá-lo, simplesmente sair e executá-lo novamente, porque o desenvolvedor forneceu
o mesmo nome de pacote para os dois aplicativos.
Desenvolvedor bem-sucedido.
Para ser sincero, isso não nos afeta de modo geral.
Isso facilita um pouco as coisas, bastando executar esse comando novamente.
Agora, estamos vinculados a esse processo e vamos desativá-lo mais uma vez.
Tudo bem.
Podemos ver que ele encontrou um ajudante de pino de certificado.
E agora, se você voltar, vamos mantê-lo talvez em primeiro plano mais uma vez.
Portanto, desculpe-me por esse clique.
Ok, então feliz história.
Agora nós a temos.
Acho que ele adere ao primeiro plano.
Muito bem, agora vamos ver se a abstração corrigiu o problema no envio de solicitações que falharam, e podemos ver
isso como um contexto secundário.
Portanto, parece ter feito algo, mas não funciona.
Portanto, não vemos nenhuma solicitação aqui.
E sim, isso significa que a fixação do certificado não foi desativada.
Está bem.
Sim, isso é um pouco lamentável, mas agora estamos preparados e equipados com todas as habilidades para fazer
isso por conta própria.
Sabemos como fazer engenharia reversa e corrigir um aplicativo baseado no Smiley.
Portanto, já fizemos isso no passado e, se a objeção falhar, não será um grande problema para nós no momento.
Temos que esfolar um conhecimento para fazer isso por nós mesmos, o que é incrível.
Portanto, no total, usar a abstração para se livrar da fixação de certificados é absolutamente fantástico.
E se isso funcionar, então siga o caminho mais fácil.
Não há necessidade de entrar nesse assunto e corrigi-lo manualmente, caso a abstração não funcione.
Você tem todas as habilidades e conhecimentos para fazer isso por conta própria agora, o que é ainda mais incrível.
Portanto, agora estamos bem preparados para lidar com aplicativos de fixação de certificados, certo?
Com certeza.
Tudo bem.
Portanto, este é o final do capítulo.
E, no próximo, daremos uma olhada na manipulação do tempo de execução.
Daremos uma olhada detalhada na estrutura do Freedom, que é absolutamente incrível.
Nós nos divertiremos muito e, por exemplo, escreveremos nosso próprio instrutor e treinador, como vocês sabem, a
partir de jogos de computador.
Eles podem ativar e desativar determinados recursos.
E, por exemplo, escreveremos nosso treinador para fazer com que o jogador tenha um número infinito de vidas, seja invisível,
invencível, tenha vários tiros, faça uma moeda, reine e coisas desse tipo.
Portanto, faremos muitas coisas incríveis com Frida e estou realmente ansioso para vê-lo no próximo capítulo.