Kaique Mitsuo Silva Yamamoto
Seguranca informacao

CTF e Labs de Prática

Plataformas de CTF, laboratórios de hacking, resolução de desafios, write-ups e como usar CTFs para acelerar aprendizado em segurança.

CTFs (Capture The Flag) e laboratórios são a melhor forma de aprender hacking na prática. Cada desafio simula uma vulnerabilidade real — e a resolução constrói muscle memory para bug bounty.


Plataformas de CTF

Para iniciantes

PlataformaFocoGratuito?Dificuldade
PicoCTFGeralSimFácil
OverTheWire (Bandit)Linux/CLISimFácil
PentesterLabWebParcialFácil-médio
TryHackMeGeralParcialFácil-médio
Root MeGeralSimFácil-avançado
CTFlearnGeralSimFácil-médio

Para intermediários

PlataformaFocoGratuito?Dificuldade
HackTheBoxPentest, webParcialMédio-avançado
PortSwigger AcademyWeb securitySim (labs)Médio-avançado
VulnHubVMs vulneráveisSimMédio-avançado
Intigriti CTFWebSimMédio-avançado
HackTheBox CTFGeralSimMédio-avançado

Para avançados

PlataformaFocoGratuito?Dificuldade
pwn.collegeBinary exploitationSimAvançado
NightmareBinary exploitationSimAvançado
CrackMes.oneReverse engineeringSimAvançado
Pwnable.kr/twBinary exploitationSimAvançado
MicrocorruptionEmbedded securitySimAvançado
DEFCON CTFGeralNãoElite
Google CTFGeralSimElite

Laboratórios locais

Docker lab

# docker-compose.yml — lab de web security
version: '3'
services:
  dvwa:
    image: vulnerables/web-dvwa
    ports:
      - "8081:80"

  juice-shop:
    image: bkimminich/juice-shop
    ports:
      - "8082:3000"

  webgoat:
    image: webgoat/webgoat
    ports:
      - "8083:8080"
    environment:
      - WEBGOAT_HOST=0.0.0.0

  sqli-labs:
    image: acgpiano/sqli-labs
    ports:
      - "8084:80"

  upload-labs:
    image: c0ny1/upload-labs
    ports:
      - "8085:80"

  mutillidae:
    image: citizenstig/nowasp
    ports:
      - "8086:80"
# Subir lab
docker compose up -d

# Acessar:
# DVWA: http://localhost:8081 (admin/password)
# Juice Shop: http://localhost:8082
# WebGoat: http://localhost:8083/WebGoat
# SQLi Labs: http://localhost:8084
# Upload Labs: http://localhost:8085
# Mutillidae: http://localhost:8086

Active Directory lab

# GOAD (Game of Active Directory)
# https://github.com/Orange-Cyberdefense/GOAD
# 3 DCs + 2 servidores Windows
# 30+ vulnerabilidades intencionais

# Setup:
git clone https://github.com/Orange-Cyberdefense/GOAD.git
cd GOAD
vagrant up
# Cria rede virtual com AD vulnerável para practice

Resolução de CTF — Metodologia

Web CTF

1. Recon
   → View source (HTML, JS, CSS)
   → Inspect Network (requests)
   → Fuzzing de endpoints
   → Verificar robots.txt, sitemap.xml

2. Análise
   → Identificar tecnologias
   → Procurar vulnerabilidades conhecidas
   → Testar inputs

3. Exploração
   → XSS, SQLi, SSRF, LFI, etc.
   → Manipulação de parâmetros
   → Bypass de filtros

4. Flag
   → Extrair flag do sistema
   → Formato: CTF{...} ou flag{...}

Pwn CTF

1. Análise do binário
   → file, checksec, strings
   → Identificar proteções (ASLR, DEP, PIE, canary)

2. Análise estática
   → Ghidra/IDA → entender lógica
   → Identificar vulnerabilidade (buffer overflow, format string)

3. Análise dinâmica
   → gdb/pwndbg → executar com inputs
   → Encontrar offset do crash

4. Exploração
   → Determinar técnica (ret2libc, ROP, heap exploitation)
   → Escrever exploit em pwntools

5. Remote
   → Adaptar exploit para alvo remoto
   → Calcular offsets com leak

Reversing CTF

1. Identificar formato
   → file binary (ELF, PE, Mach-O)
   → Detectar linguagem (C, C++, Go, Rust)

2. Strings
   → strings binary | grep -i flag
   → strings binary | grep -i password

3. Decompilar
   → Ghidra → decompiler view
   → Identificar lógica principal

4. Debugar
   → gdb/pwndbg → acompanhar execução
   → Breakpoints em verificações

5. Patch (se necessário)
   → Alterar instruções (JZ → JNZ)
   → Bypass de verificações

Write-ups de CTF

Estrutura de write-up

# [Nome do CTF/Challenge] — Write-up

## Descrição
Resumo do desafio e categoria.

## Recon
O que observei inicialmente.

## Vulnerabilidade
O que encontrei de errado.

## Exploração
Como explorei (passo a passo com código/comandos).

## Flag
CTF{...}

## Lições
O que aprendi.

Onde encontrar write-ups

1. CTFtime.org — write-ups de competições
2. GitHub — repos de write-ups por ano/equipe
3. Medium/Dev.to — artigos individuais
4. YouTube — video walkthroughs
5. Blog pessoal de hackers conhecidos

CTF Competições principais

CompetiçãoFrequênciaDificuldade
DEFCON CTFAnual (agosto)Elite
Google CTFAnual (junho)Avançado
PicoCTFAnual (março)Iniciante-intermediário
Hack-A-SatAnualHardware/satélite
Flare-OnAnual (setembro)Reversing avançado
PlaidCTFAnualAvançado
SECCONAnualMédio-avançado
RITSEC CTFAnualMédio

Como competir

1. Formar equipe (3-8 pessoas)
2. Cada pessoa com especialidade:
   → Web, pwn, reversing, crypto, misc
3. Inscrever no CTFtime.org
4. Participar de 1-2 CTFs por mês
5. Escrever write-ups de todas as flags
6. Rankear no CTFtime → atrair recrutadores

Trilha de estudo via CTF

Mês 1-2: Fundamentos

→ OverTheWire Bandit (Linux)
→ PicoCTF General Skills
→ TryHackMe Beginner Path
→ DVWA (Web vulnerabilities)

Mês 3-4: Web e OSINT

→ PortSwigger Academy (Web Security)
→ Juice Shop (OWASP)
→ TryHackMe Web Fundamentals
→ Intigriti Monthly Challenges

Mês 5-6: Especialização

→ Escolher: Pwn, Reverse, Crypto, ou Forense
→ Plataformas específicas:
  - Pwn: pwn.college, Pwnable.kr
  - Reverse: CrackMes.one, FLARE-On
  - Crypto: CryptoHack
  - Forense: DFIR.training

Mês 7+: Competição

→ Participar de CTFs semanais no CTFtime
→ Escrever write-ups
→ Contribuir para equipe
→ Construir portfolio no GitHub

Referências

On this page