Post

CyberHeroes - Desafio hacker [TryHackMe]

Resolvendo Máquina do TryHackMe em português

🏆 CyberHeroes — Writeup em Português

Resolução desafio hacker fácil do TryHackMe

Want to be a part of the elite club of CyberHeroes? Prove your merit by finding a way to log in! Quer fazer parte do clube de elite dos CyberHeroes? Prove seu mérito encontrando uma maneira de fazer login!

Assim que a máquina é iniciada e me fornece o IP necessário para a atividade, começo executando um NMAP. No entanto, confesso que acabei não utilizando, pois enquanto esperava o scan verificar todas as portas, já estava investigando por conta própria. No final, não foi útil.

IP alvo gerado para mim => 10.10.32.251

Scan

1
sudo nmap -sS -sV -p- 10.10.32.251

Desktop View

Então, enquanto o scan estava em execução, já fui testar no navegador e descobri que era um serviço web.

http://10.10.32.251

Cheguei a pensar em deixar um bruteforce de diretório rodando enquanto explorava o site, mas decidi dar uma olhada no código fonte da página primeiro.

Investigação

Desktop View

Desktop View

Ao ver os arquivos .css, decidi abrir em uma nova página e testar os diretórios anteriores, mais especificamente o ‘assets’, que parecia ser usado para armazenar tudo. Para minha surpresa, era acessível, nos dando inclusive os diretórios presentes ali dentro e a versão do Apache. Não foi tão útil assim nesse caso, mas foi interessante pela oportunidade de conseguir investigar alguns arquivos.

Desktop View

Há muitas coisas que eles fazem nesses CTFs para desviar sua atenção e essa parecia ser uma delas, por isso desisti de ficar investigando isso. Mas, caso eu não encontrasse nada nos próximos passos, eu com certeza voltaria aqui por ter deixado algo passar.

Assim, decidi voltar para a página inicial e continuar a investigar as funcionalidades do site. Me deparei com a aba de login do site. É um ‘login.html’.

Confesso que ser um .html chamou minha atenção.

Tela de Login

Tentei algumas opções padrões, como admin:admin e até SQL injection com o padrão 'or1=1 --. Comecei a pensar em usar minha proxy para depois, talvez, fazer um bruteforce com Hydra.

No entanto, antes disso, decidi olhar primeiro através da ferramenta de desenvolvedor, na aba network, para testar o login e, para minha surpresa, não capturava nada… nenhuma requisição era feita.

Desktop View

Desktop View

Desktop View

Isso me fez pensar que poderia se tratar de uma autenticação local. Fui até o código fonte e encontrei no JavaScript o login, porém com a senha invertida de trás para frente. Reverti a string via terminal usando o comando rev.

Sobre o comando rev: É um utilitário Unix/Linux que inverte a ordem dos caracteres em cada linha de entrada. Muito útil para casos como este onde strings estão invertidas como ofuscação básica.

1
2
3
4
# Sintaxe básica
echo "texto" | rev        # Inverte "texto" para "otxet"
rev arquivo.txt           # Inverte cada linha do arquivo
echo "olleh" | rev        # Resultado: "hello"

Desktop View

1
echo "54321@terceSrepuS" | rev

Isso resultou em: SuperSecret@12345

Desktop View

Credenciais h3ck3rBoi:SuperSecret@12345

Ferramentas de Desenvolvedor - Análise Avançada

Durante esta investigação, as ferramentas de desenvolvedor do browser foram fundamentais:

Aba Network (Rede):

  • Monitora todas as requisições HTTP/HTTPS
  • Mostra métodos, status codes, headers
  • Observação importante: Não houve requisições ao tentar o login

Aba Sources (Fontes):

  • Acesso a todos os arquivos JavaScript, CSS, HTML
  • Permite busca global por strings
  • Debugging e breakpoints
  • Dica: Use Ctrl+Shift+F para buscar em todos os arquivos

Aba Console:

  • Execução de JavaScript em tempo real
  • Debug de erros e testes rápidos
  • Uso prático: document.getElementById('password').value para ver valores

Aba Application/Storage:

  • LocalStorage, SessionStorage, Cookies
  • IndexedDB e WebSQL
  • Service Workers e Cache

Teclas úteis para CTFs:

  • F12: Abrir DevTools
  • Ctrl+U: View Source
  • Ctrl+Shift+I: Inspector
  • Ctrl+Shift+C: Element selector

Ao tentar logar…

Pronto!

Ao fazer o login, temos a resposta… super fácil!!

até achei, por um segundo, que era pegadinha e que poderia ser uma flag falsa… rs

Desktop View

flag{edb0be532c540b1a150c3a7e85d2466e}

Lições Aprendidas

Este CTF, apesar de simples, ensinou várias lições importantes:

Metodologia de Investigação

  1. Enumeração sistemática: Sempre começar com nmap, mesmo que depois não seja necessário
  2. Análise manual primeiro: Navegar pelo site antes de partir para ferramentas automatizadas
  3. Código fonte é fundamental: View source deve ser sempre o segundo passo
  4. Network monitoring: Sempre observar se requisições estão sendo feitas

Técnicas Específicas

Autenticação Client-Side:

  • É sempre insegura
  • Fácil de contornar com análise de código
  • Comum em CTFs iniciantes

Ofuscação Básica:

  • Strings invertidas são muito comuns
  • Base64, ROT13, hexadecimal também frequentes
  • Sempre teste transformações simples primeiro

Dicas para CTFs Similares

Padrões comuns de ofuscação:

1
2
3
4
5
6
7
8
9
10
11
// String invertida (como neste caso)
password = "54321@terceSrepuS".split('').reverse().join('');

// Base64
password = atob("U3VwZXJTZWNyZXRAMTIzNDU=");

// ROT13
password = rot13("FhcreFreerg@12345");

// Hexadecimal
password = Buffer.from('537570657253656372657440313233343', 'hex').toString();

Ferramentas úteis online:

  • CyberChef: “Swiss army knife” para decodificação
  • Base64decode.org: Para Base64
  • rot13.com: Para ROT13
  • Hex to ASCII converters

Automatização com scripts:

1
2
3
4
# Script rápido para testar transformações comuns
echo "string_suspeita" | rev                    # Invertida
echo "string_suspeita" | base64 -d              # Base64
echo "string_suspeita" | tr 'A-Za-z' 'N-ZA-Mn-za-m'  # ROT13

Mindset para CTFs

  1. Simplicidade primeiro: A solução mais simples é frequentemente a correta
  2. Documentação: Sempre anotar o que já foi testado
  3. Persistência: Não desistir após primeira tentativa
  4. Lateral thinking: Pensar fora da caixa quando métodos convencionais falham

Meu perfil na plataforma: https://tryhackme.com/p/laidler

Esta postagem está licenciada sob CC BY 4.0 pelo autor.

Comments powered by Disqus.