Skip to main content

CTF Jeopardy

CTF Jeopardy

Bom, se tem uma página dedicada a esse tipo de competição, não preciso nem dizer que ele é o mais conhecido né? Sei que vocês estão acostumados com o termo só CTF, então nesta página vou mencionar assim, só para facilitar. Sobre essa modalidade, foi a utilizada no nosso processo seletivo, então você já está acostumado com essa modalidade, principalmente se participou de alguma competição que divulgamos no começo do ano.

A grande vantagem desse tipo de competição é que você aprende muita teoria e prática em um ambiente controlado, sem precisar defender máquinas em tempo real como nas outras. Aqui o objetivo é resolver enigmas técnicos que simulam problemas reais de segurança. E para isso existem algumas categorias, algumas mais famosas e clássicas como engenharia reversa e criptografia, mas também tem algumas menos comuns como blockchain, vamos explicar as clássicas nessa página.


Forense

Forense em CTF é a análise de evidências digitais. As flags podem incluir análise de formato de arquivo, esteganografia, análise de despejo de memória ou análise de captura de pacotes de rede. Qualquer desafio para examinar e processar uma informação oculta a partir de arquivos de dados estáticos (em oposição a programas executáveis ou servidores remotos) pode ser considerado um desafio forense (a menos que envolva criptografia, caso em que provavelmente pertence à categoria Cripto), dito isto, temos os seguintes tipos de desafio:

File Formats

Arquivos possuem estruturas específicas (ex.: PNG começa com 89 50 4E 47), cada tipo de formato de arquivo tem metadados, informações específicas e peculiares diferentes, é claro que não é necessário que você saiba todos os tipos, mas é importante entender os principais e os que você não conhece. Geralmente a solução está nos cabeçalhos ou rodapés, claro né, se aquele arquivo realmente for o que ele diz ser, nada impede um .heic de dizer que é um .PNG.

Ferramentas:

  • binwalk - Extração de dados ocultos em arquivos.
  • foremost - Recuperação de arquivos baseada em seus cabeçalhos e rodapés.

Metadata

Sabe aquela foto que você tira com o celular? Ela não guarda só a imagem. Junto dela vêm os metadados: informações como o modelo da câmera, a data, a hora e, às vezes, até as coordenadas GPS de onde a foto foi tirada. Em CTFs, os desafios de metadados exploram justamente essas informações "escondidas" em arquivos. A flag pode estar no campo "Autor" de um PDF, nos comentários de um arquivo de áudio ou nas coordenadas de uma imagem.

Ferramentas:

  • exiftool - Ferramenta para ler, escrever e editar metadados em uma vasta gama de arquivos.

Steganography

Esteganografia é a arte de esconder uma mensagem dentro de outra coisa, à vista de todos. Pense em uma imagem que parece normal, mas que na verdade contém um arquivo de texto secreto. O desafio aqui é duplo: primeiro, suspeitar que existe algo escondido ali e, segundo, descobrir o método (e às vezes a senha) usado para extrair a informação. A flag pode estar nos bits menos significativos de um pixel ou oculta no espectro de um arquivo de áudio.

Ferramentas:

  • steghide - Uma ferramenta clássica para esconder e extrair dados de imagens e áudios.
  • zsteg - Especializada em detectar dados ocultos em imagens PNG e BMP.

Disk Imaging

Aqui a coisa fica mais séria. Você recebe uma "imagem de disco", que é uma cópia exata de um HD, pen drive ou cartão de memória. Seu trabalho é investigar esse sistema de arquivos como um verdadeiro perito digital. Você precisará "montar" a imagem para navegar por ela ou usar ferramentas forenses para encontrar arquivos deletados, partições ocultas ou fragmentos de dados que contenham a flag.

Ferramentas:

  • Autopsy - Uma plataforma gráfica completa para análise forense de discos.
  • The Sleuth Kit - O conjunto de ferramentas de linha de comando por trás do Autopsy, para análises mais granulares.

Memory Forensics

Se a imagem de disco é uma foto do armazenamento, um "dump de memória" é uma foto da RAM do computador em um instante específico. A memória RAM pode conter um boa quantidade de informações voláteis: senhas em texto claro, chaves de criptografia, processos em execução, conexões de rede ativas e, claro, a nossa querida flag.

Ferramentas:

  • Volatility Framework - O padrão da indústria para análise de dumps de memória RAM.
  • strings - Um comando simples para extrair texto legível de qualquer arquivo binário, incluindo dumps de memória.

Hex Editors

Às vezes, a resposta não está no que um programa interpreta, mas nos bytes brutos que compõem um arquivo. Usando um editor hexadecimal, você pode ver e manipular um arquivo em seu nível mais fundamental. Isso é útil para corrigir cabeçalhos de arquivos corrompidos, encontrar padrões ocultos ou identificar dados que não são visíveis em editores de texto comuns, como uma flag em ASCII no meio de um código binário.

Ferramentas:

  • HxD - Um editor hexadecimal popular e gratuito para Windows.
  • hexedit - Uma opção para quem trabalha diretamente no terminal Linux.

Network Analysis

Nessa categoria, você recebe um arquivo de captura de tráfego de rede, geralmente um .pcap. Sua missão é ser o "fofoqueiro" da rede: analisar os pacotes para reconstruir conversas, extrair arquivos transferidos, encontrar credenciais enviadas sem criptografia ou identificar comunicações suspeitas. A flag pode estar em uma requisição HTTP, em uma conversa de chat ou até mesmo em um pacote DNS.

Ferramentas:

  • Wireshark - A ferramenta mais famosinha para análise de tráfego de rede, com uma interface gráfica poderosa.
  • tcpdump - A versão de linha de comando, ótima para capturar e filtrar tráfego rapidamente em servidores.

OSINT

OSINT, ou Open Source Intelligence, é a arte de ser um detetive digital(ou stalker, interprete como quiser) usando apenas fontes de informação públicas. Em um CTF, isso significa que a flag está em algum lugar na internet, esperando para ser encontrada. O desafio é conectar as pistas: um nome de usuário pode levar a um perfil no GitHub, que leva a um site pessoal, que tem um comentário com a flag. É um teste de paciência e de habilidade de pesquisa.

Google Dorks

O Google sabe de quase tudo, mas você sabe perguntar da forma certa? Google Dorks (ou Google Hacking) é o uso de operadores de busca avançados para filtrar resultados e encontrar informações específicas que não apareceriam em uma busca normal. Você pode procurar por tipos de arquivo, texto em URLs ou conteúdo em sites específicos, descobrindo documentos sensíveis ou páginas escondidas.

Ferramentas:

Google Lens

Uma imagem e o Google Lens pode te ajudar demais. Essa ferramenta de reconhecimento de imagem pode identificar locais, objetos, textos e até mesmo pessoas. Em um desafio de CTF, você pode receber a foto de um lugar e precisar descobrir suas coordenadas, ou a imagem de um objeto com um código que leva à flag.

Ferramentas:

  • Google Lens - Integrado na busca do Google e em celulares Android.

WHOIS & DNS

Todo domínio na internet tem um registro público (WHOIS) com informações sobre seu proprietário, e registros DNS que apontam para os servidores. Investigar esses registros pode revelar informações valiosas, como e-mails de contato, outros domínios pertencentes à mesma pessoa ou subdomínios "esquecidos" que podem conter a flag.

Ferramentas:

  • whois - Comando de terminal para consultar registros de domínio.
  • dig / nslookup - Comandos para consultar registros DNS.

Redes Sociais

As pessoas compartilham de tudo nas redes sociais, e isso é um prato cheio para desafios de OSINT. A flag pode estar escondida em um tweet antigo, em um comentário no Instagram, na descrição de um perfil no LinkedIn ou em um repositório público no GitHub. O desafio é seguir o rastro digital de um alvo para encontrar aquela informação específica.

Ferramentas:

  • Pesquisa manual nas plataformas (Twitter, Instagram, GitHub, etc.).
  • Social-Searcher - Um motor de busca para menções em redes sociais.

Criptografia

Na categoria de Cripto seu objetivo é quebrar códigos e decifrar mensagens. Os desafios testam seu conhecimento sobre como os dados são protegidos (e como essa proteção pode falhar). Vão desde cifras antigas, como a de ceasar, até falhas em implementações modernas de algoritmos complexos(RSA, ECC,... Já vimos). É uma mistura de lógica, matemática e reconhecimento de padrões.

Cifras Clássicas

Esses são os quebra-cabeças de criptografia mais antigos. Pense na Cifra de César, onde cada letra é trocada por outra algumas posições à frente no alfabeto, ou em cifras de substituição como ROT13. Geralmente, o desafio é primeiro identificar qual cifra está sendo usada e depois aplicar a lógica inversa para obter o texto original.

Ferramentas:

  • CyberChef - O "canivete suíço" para todo tipo de codificação e criptografia. Essencial.
  • dcode.fr - Um solucionador online para uma quantidade absurda de cifras.

Hashes

Hashes como MD5 e SHA256 não são criptografia (são irreversíveis!), mas aparecem muito em CTFs. O desafio pode ser "quebrar" um hash de uma senha fraca (usando rainbow tables ou força bruta) ou simplesmente identificar qual algoritmo de hash foi usado a partir do formato da string.

Ferramentas:

  • hashcat - A ferramenta mais rápida para quebra de hashes offline.
  • CrackStation - Um serviço online com uma base de dados gigante de hashes pré-calculados.

RSA / ECC/ Cripto Moderna

Aqui as coisas ficam mais matemáticas. Desafios envolvendo criptografia moderna, como RSA, geralmente não exigem que você quebre o algoritmo em si (isso seria impossível). Em vez disso, eles exploram falhas na implementação: chaves mal geradas, expoentes muito pequenos, reutilização de números primos ou outros erros que tornam o sistema vulnerável.

Ferramentas:

  • RsaCtfTool - Automatiza ataques conhecidos contra implementações fracas de RSA.
  • SageMath - Um software matemático, útil para cálculos complexos em criptografia.

Codificação

Muitas vezes, um texto que parece criptografado está, na verdade, apenas codificado. Codificações como Base64, Hexadecimal ou URL Encoding não são feitas para segurança, mas para representar dados em diferentes formatos. O desafio é reconhecer o padrão da codificação e usar a ferramenta certa para revertê-la ao seu formato original.

Ferramentas:

  • CyberChef - Perfeito para decodificar dados em múltiplos formatos, inclusive em cadeia.

Engenharia Reversa

Engenharia Reversa, ou "REV", é a arte de desmontar um programa para entender como ele funciona por dentro, sem ter acesso ao código-fonte. Em CTFs, você geralmente recebe um arquivo executável (.exe, .elf) e a flag está escondida dentro dele. Seu trabalho é descobrir a lógica do programa para extraí-la, seja encontrando a senha correta, seja burlando uma verificação de licença.

Análise Estática

Nesta abordagem, você analisa o programa sem executá-lo. É como ler a planta de um prédio em vez de andar por ele. Você vai usar descompiladores ou disassemblers para ler o código (ou o Assembly) em busca de strings, funções interessantes ou da lógica que valida a flag. É um processo mais seguro, mas pode ser difícil se o código for ofuscado.

Ferramentas:

  • Ghidra - Descompilador poderoso desenvolvido pela NSA e de código aberto.
  • Radare2 / Cutter - Um framework de análise para quem prefere o terminal (Radare2) ou uma interface gráfica (Cutter).

Análise Dinâmica

Aqui, você executa o programa em um ambiente controlado (uma máquina virtual, de preferência!) e observa seu comportamento em tempo real com um debugger. Você pode pausar a execução, inspecionar a memória, alterar valores de variáveis e seguir o fluxo do código passo a passo. É ótimo para entender como o programa processa sua entrada e bypassar verificações.

Ferramentas:

  • gdb - O debugger padrão para Linux, extensível.
  • ltrace & strace - Ferramentas para observar as chamadas de biblioteca e de sistema que um programa faz.

Desofuscação

Para dificultar a vida do engenheiro reverso, os desenvolvedores podem ofuscar o código, ou seja, embaralhá-lo de propósito. Isso pode envolver codificar strings, achatar o fluxo de controle ou usar "empacotadores" (packers) que comprimem o executável. Seu primeiro passo em muitos desafios de RE será desfazer essa ofuscação para conseguir analisar um código mais limpo.

Ferramentas:

  • uncompyle6 - Ferramenta para descompilar bytecode Python.
  • Scripts personalizados - Muitas vezes, a desofuscação requer que você escreva seu próprio código para automatizar a reversão.

Web

A categoria Web é uma das mais populares, pois simula ataques a sites e aplicações web reais. Os desafios envolvem encontrar e explorar vulnerabilidades comuns, como as listadas no OWASP Top 10. O objetivo é quase sempre o mesmo: explorar uma falha para conseguir ler um arquivo no servidor (como /flag.txt) ou extrair informações de um banco de dados.

Injeção SQL

Acontece quando uma aplicação web não filtra corretamente a entrada do usuário, permitindo que um atacante insira comandos SQL maliciosos em um campo de busca ou formulário de login. Com isso, é possível extrair, modificar ou deletar dados do banco de dados, incluindo a tabela que guarda a flag. O famoso ' OR 1=1 -- é o "hello world" do SQLi.

Ferramentas:

  • sqlmap - Automatiza o processo de detecção e exploração de falhas de injeção SQL.

XSS (Cross-Site Scripting)

No XSS, a vulnerabilidade permite que um atacante injete código JavaScript malicioso em uma página, que será executado no navegador de outros usuários. Em CTFs, o objetivo é geralmente criar um payload de XSS que roube os cookies do administrador do site, permitindo que você se passe por ele e acesse áreas restritas onde a flag está.

Ferramentas:

  • Navegador + DevTools - A maioria dos desafios de XSS pode ser resolvida diretamente no navegador.

Directory Traversal

Essa falha permite que você "suba" diretórios no servidor usando sequências como ../ em um parâmetro de URL que carrega arquivos. Se a aplicação for vulnerável, você pode conseguir acessar arquivos sensíveis fora do diretório web, como /etc/passwd em um servidor Linux ou, mais importante, o arquivo da flag.

Ferramentas:

  • dirb / gobuster - Ferramentas para descobrir diretórios e arquivos escondidos em um servidor web.

Autenticação

Esses desafios focam em falhas no sistema de login, registro ou gerenciamento de sessão. Isso pode incluir senhas fracas, a capacidade de enumerar usuários, falhas na lógica de "esqueci minha senha" ou tokens de sessão (como JWTs) mal configurados que podem ser forjados ou decodificados. O objetivo é conseguir acesso como outro usuário, geralmente o admin.

Ferramentas:

  • Burp Suite - Um proxy de interceptação que é essencial para qualquer teste de segurança web.
  • jwt_tool - Um canivete suíço para testar e quebrar JSON Web Tokens.

Misc

Como o próprio nome diz, "Miscelânea" é a categoria para tudo que não se encaixa nas outras. São desafios que exigem criatividade, conhecimento geral ou habilidades de programação. Podem ser desde puzzles lógicos até a interação com um protocolo de rede obscuro. É a caixa de surpresas do CTF.

Programação

Muitos desafios, especialmente em categorias como Cripto ou RE, acabam se tornando um problema de programação. Você pode precisar escrever um script para automatizar uma tarefa repetitiva, interagir com um servidor via socket, resolver um problema matemático complexo ou simplesmente fazer a força bruta em uma combinação até encontrar a flag.

Ferramentas:

  • Qualquer linguagem de programação - Python, C e JS são as mais populares para CTF.

Puzzles

Esses desafios testam mais a sua lógica e capacidade de pensar fora da caixa do que seu conhecimento técnico profundo. Podem envolver quebra-cabeças, manipulação de texto, reconhecimento de padrões estranhos ou seguir uma série de pistas enigmáticas. A solução geralmente é mais "aha!" do que técnica.

Ferramentas:

  • Editores de texto (VS Code, Sublime Text).
  • Scripts simples para manipulação de dados.

Trivial

São desafios de conhecimento geral sobre o mundo da segurança e da tecnologia. As perguntas são diretas e geralmente podem ser resolvidas com uma pesquisa rápida na internet. Coisas como "Qual é a porta padrão do protocolo SSH?" ou "Qual o nome do malware que afetou o Irã em 2010?". Servem para testar seus conhecimentos básicos.