Será que dá para hackear aquelas máquinas de venda de shope você já viu essas máquinas de venda de shope que estão cada vez mais populares por aí agora tem Shopping tem bar tem condomínio São máquinas conectadas à internet e você sozinho consegue com o aplicativo pagar o seu shope liberar a torneira E literalmente encher o caneco será que não dá para hackear uma máquina dessas aí fazer ela liberar o shope de graça encher o nosso caneco aqui sem ter que pagar um centavo eu sei que você pensou isso também hein então para fins puramente didáticos
eu fui atrás dessa resposta para vocês aliás um spoiler aqui ó a falha que eu achei no final desse processo me deixaria pegar chope à vontade em mais de 300 pontos desse fornecedor Então você já viu que a coisa aqui foi interessante né saúde oi oi eu sou Gabriel Patos seja muito bem-vindo de volta ao canal que saudade que eu tava disso aqui e tá a gente quer então achar uma falha em um sistema a máquina tá ali na nossa frente a gente tem o app no nosso celular beleza Qual que é o primeiro passo
então e olha eu vou te falar que o mais massa do hacking é justamente esse estágio porque é aqui que a gente vê o processo criativo acontecendo mesmo todo esse lance de formular as hipóteses de onde podem ter vulnerabilidades pensar em quais abordagens você vai fazer é onde tá a magia do hacking é onde a coisa é realmente legal meu primeiro objetivo nesse teste é conseguir enxergar a conversa que o aplicativo deles faz instalado no meu celular com o servidor deles na internet ou até mesmo mesmo a máquina de shop via internet só que assim
nesse estágio nesse momento aqui a gente ainda não tem ideia de como essa comunicação acontece como a gente não tem essa pista eu comecei o meu processo indo atrás de capturar a comunicação que rolasse usando o protocolo http porque a gigantesca maioria dos apps usam http Inclusive é o que você tá usando nesse exato instante para me assistir aqui eu usei um app de IOS chamado proxyman para gravar todas as requisições e respostas que acontecerem no protocolo h attp comecei a Navegar aleatoriamente pelos Recursos do app da máquina de shop tipo o de ver o
meu saldo ou consultar o estrato de consumos ou editar a minha conta e olha só dá para ver aqui que o proxan tá capturando as requisições http com sucesso o que é um ótimo sinal pra nossa análise e isso já expõe pra gente uma superfície de ataqu bem interessante e até faria sentido eu parar tudo e focar nessa superfície de ataque que eu já tô reconhecendo aqui só que eu tava muito determinado a enxergar um outro momento da aplicação que é o momento em que o app do usuário fala pro servidor que ele quer que
aquela máquina de shop seja liberada era isso que eu tava buscando Então agora que eu já tô com o meu celular gravando essas comunicações eu tive que voltar lá na máquina de shope e pegar ali um shoping né para você ver os desafios que eu enfrento pelo nosso trabalho escanei O cr code da máquina enchi ali tudo bonitinho e eu não dei nem um golinho nesse show antes de ver se eu tinha conseguido logar a Bendita comunicação que eu estava em busca e sabe que que eu encontrei com esse experimento nada simplesmente o proxy man
não tinha nada logado sobre esse momento da liberação o que que tá acontecendo aqui então como é que não tem nenhuma requisição logada sobre isso bom se a gente tem certeza que a gente tá gravando tudo que for conversado no protocolo http isso só pode significar então que especificamente nesse momento ele se comunica de alguma outra forma O que significa que a gente vai ter que cavar um pouco mais a coisa aqui eu comecei aqui baixando o apk que é o pacote de aplicativo Android do app da máquina de shop no meu computador em seguida
eu usei uma ferramenta que faz o processo de decompilation ela gera um código fonte Java que representa algo bem próximo do que o desenvolvedor original escreveu para aquele aplicativo para nossa sorte não tinha nada protegendo esse App Contra esse tipo de análise então o código que é ferramenta gerou para mim tá legível as instruções estão Claras então isso aqui vai ser extremamente valioso na análise falando na organização original navegando pelo código essa parte aqui me chamou muito a atenção embora esse App use http para boa parte dos recursos ele tem um outro protocolo implementado e
essa parte do código então é o que descreve como essa comunicação acontece rapidinho já deu para ver aqui a definição de uma conexão que o weap faz com com um servidor deles em uma porta TCP e assim eu sou mega ansioso né então antes de seguir lendo o código eu já resolvi conectar nesse server e ver que que isso Daria né para isso eu usei a ferramenta ncat que suporta SSL que é um requisito dessa conexão aqui então aqui eu coloco o host de destino a porta e vamos embora e olha só a conexão foi
estabelecida e o server mandou uma mensagem pra gente o server me recebeu mandando uma mensagem identify your meio creepy esse negócio né mas falando sério agora isso aqui na real é um ótimo sinal pra gente significa que a gente estabeleceu uma conexão para um destino certo e que a gente tá se comunicando da forma esperada estamos na direção certa portanto Tá bom mas e agora vamos mandar tipo um oi e ver que que ele responde preenchemos aqui o nosso Oi e enviamos e olha a mensagem que o server retornou aqui dá para ver que ele
tentou processar o nosso Oi como um Jason e por isso caiu em um erro essa foi uma ótima informação pra gente a gente sabe com esse erro que o server espera um Jason vindo da gente só que a gente ainda não sabe como a gente monta esse Jason então é hora da gente voltar pro nosso gabarito o código fonte do app e ver como ele se comporta quando ele tá nessa situação nessa conexão com o server dele depois de achar esse momento de identificação aqui no código fonte do app dá para ver que nessa hora
ele envia um Jason pro servidor e contém um atributo identifier com valor sempre fixo de user em seguida segida um atributo identify que passa como valor o ID do meu usuário aqui a coisa tá ficando interessante hein E logo depois um Private token contendo aqui um token hardcoded um código de token fixo contido integralmente aqui no código fonte do App nessa altura aqui minha mente já foi um Boom total e por fim a gente tem um atributo target que a gente já vai cavar mais para ver do que que ele se trata e de novo
na base da ansiedade já Montei um Jason de exemplo para enviar pro servidor e vend no que que isso aqui vai dar no lugar do ID de usuário eu simplesmente coloquei o número um Lembrando que os ids baixos costumam ser dos administradores ou dos desenvolvedores os usuários iniciais do banco de dados Jon montado eu disparo e a gente tem uma resposta do server aqui usuário desabilitado a gente muda o nosso Jason para passar a usar o ID de usuário dois e enviamos e olha agora o erro foi outro Tap not connected agora é inegável que
a coisa tá ficando boa aqui hein já tem até um cheirinho de vulnerabilidade no ar aqui hein tá vamos lá o termo Tap significa torneira em inglês e assim a gente tem que pensar aqui que esse App tá se conectando em um servidor para pedir para liberar uma máquina de shope que o usuário tá vendo ali na frente dele então em algum momento esse servidor precisa saber de qual máquina a gente tá falando sobre Qual é a máquina que o usuário quer que seja liberada e é justamente para isso que esse target tá aí tá
lembrado que no processo de uso desse app tudo começou com o usuário lendo um QR Code né esse QR Code representa um Mac address um endereço físico de cada unidade dessa máquina então aqui tudo que eu precisei foi pegar qualquer app de leitura de QR Code ler o QR Code da máquina que eu tava testando e passar o valor dele como target aqui preencho tudo isso que a gente descobriu aqui no nosso teste e envio pro server então Wel e não é que a gente tá dentro com direito a mensagenzinha de boas-vindas e tudo hein
a gente recebeu um evento de boas-vindas do sver o que indica que ele aceitou essa nossa identificação então ele tá realmente achando que a gente é um usuário de número qualquer que a gente jogou lá e é aqui que mora a vulnerabilidade o server não Tá exigindo nada do lado do usuário para provar que ele realmente é aquela pessoa aquele dono do perfil do número que ele tá dizendo ser ele não pede senha ele não é de token que tenha sido autenticado anteriormente todas as informações que ele pede aqui a gente consegue chutar a gente
consegue fornecer para qualquer conta então o server tá deixando a gente se passar por qualquer outro usuário desse sistema E daqui pra frente tudo que a gente fizer de pedidos vai cair na conta de quem for o dono do perfil o número que a gente jogar aqui quem será que vai pagar a rodada aí estamos indo bem hein e aliás se você curte esse tipo de exploração e quer aprender hacking comigo chega junto na pato Academy que é a minha plataforma de conteúdos de hacking já são mais de 100 aulas comigo disponíveis onde eu te
ensinam a encontrar vulnerabilidades como essa que você tá vendo aqui além de muitas outras e lá tem também Labs para você hackear tem lives exclusivas e uma comunidade animal que vai te acompanhar por toda a sua jornada Então já entra aqui nesse QR Code ou . Academy para saber mais e para se tornar um membro e eu te vejo lá nas aulas e na comunidade mas tá o nosso copo ainda tá vazio Então vamos seguir a gente tá identificado com sucesso mas a gente precisa ainda mandar algum comando alguma ação para esse servidor desempenhar né
Qual é Então o comando que libera essa torneira seguindo então o comportamento de escrito no código né eu encontrei esse comando chamado Open Tap que faz total sentido com ser a ação de liberar de abrir a torneira de shoping então agora sim é hora da gente ver se a gente consegue mandar ao servidor abr a torneira de shope em nome de outro usuário Então eu fui lá preenchi o comando e tei enter não é que deu boa o server respondeu a gente com um indicador de que beleza ele aceitou e liberou a torneira da máquina
que a gente tá especificando se alguém tivesse passando na frente dessa máquina nesse momento viria ela liberada e ele poderia puxar a torneira e preencher de shope à vontade vade que alguém pagaria essa conta que não seria a gente e é louco que embora a gente tenha a evidência do server aceitando o comando a gente quer ver isso na máquina a gente quer ver isso na nossa frente acontecendo né eu fiquei muito ansioso para ir na máquina testar essa liberação e agora finalmente a gente tem tudo o que a gente precisa para isso chegou chegou
o momento da Verdade chegou a hora de testar Estamos indo lá pr pra máquina aqui que tem aqui perto já tô derretendo estão 30º Então tá extremamente propício para um showzinho espero que Bom vamos lá e tá aqui o nosso Alvo do dia para facilitar as coisas eu subi o meu exploit num servidor na nuvem e tô acessando ele por SSH aqui do meu celular como primeiro teste eu envio o comando de liberar a máquina passando outro usuário aqui no caso o usuário de id2 a gente tem a confirmação de que a torneira aceitou o
comando e a tela da máquina já passa a mostrar o nome de quem é dono dessa carteira de id2 deu certo e aqui a gente só teria que pôr o copo e se servir mas espera lá que antes eu decidi chutar mais alguns outros ids de usuário aqui então eu executo a minha ferramenta de novo passando outro ID E mais uma vez torneira liberada e a gente tem na tela de novo o nome do usuário dono dessa outra carteira mudo ID mais uma vez e estamos dentro de novo mais um nome de usuário aparecendo aqui
que seria quem ia pagar a conta da rodada muito massa né para encerrar aqui com chave de ouro a gente tem que tirar o nosso shope né eu executo de novo a minha ferramenta usando o usuário de ID número do só que dessa vez Bora tirar esse shope e agora sim então definitivamente deu bom a gente exploit essa maquininha aqui com sucesso e olha essa belezinha de shop vindo pra gente depois de terminar de servir a minha ferramenta ainda recebe do Servidor o valor total que a máquina teria cobrado da nossa conta só que é
claro essa cobrança foi para Wallet de algum outro usuário qualquer se você curtiu todo esse sucesso da exploração que a gente fez aqui hoje já fica de olho lá na pato Academy porque dentro da nossa plataforma vai rolar uma versão exclusiva desse conteúdo com aulas mostrando todo o processo da descoberta dessa falha Então já chega junto em p. Academy CR code tá aqui na tela entra pra nossa comunidade se torna um membro e vem evoluindo no hacking com a gente antes de encerrar esse vídeo um aviso importante aqui Você sabem aqui a gente se diverte
Mas é claro que a gente age com ética as falhas desse vídeo foram reportadas em setembro de 2023 então eu segurei mais de um ano com esses conteúdos gravados para dar tempo da empresa corrigir todos esses problemas eu conversei com o próprio CEO da empresa que me recebeu super bem e eu repassei para ele todos esses meus achados e aliás o id2 ali que eu usei nos testes era o ID do próprio CEO então nenhum usuário foi prejudicado e eu ainda ofereci a pagar por todos esses shops que eu tirei durante os meus testes Mas
eles falaram que não precisava e ainda me deram uns créditos extra para eu poder garantir um happy hour então lembre-se sempre de usar os seus conhecimentos com responsabilidade e pro bem