Manual de campo — Sua máquina do CTF

Manual de campo · Infraestrutura do participante

Sua máquina de batalha, do zero, em 10 minutos

Todo participante precisa de um servidor próprio na internet para resolver alguns desafios específicos. Este guia leva você da criação da conta até o primeiro ssh funcionando. Você não vai pagar nada.

Máquina
1 vCPU · 1 GB
Disco
10–25 GB SSD
Sistema
Ubuntu 24.04
Custo
US$ 0,00
1

Separe o que você vai precisar

Antes de abrir o navegador

  • Um e-mail — pode ser o institucional da universidade.
  • Um cartão de crédito ou conta PayPal. Serve só para verificação; não haverá cobrança.
  • Um terminal. Linux e macOS já vêm com um. No Windows, use o Windows Terminal ou o PowerShell — ambos já têm SSH embutido.

Por que pedem cartão se é grátis

É uma trava contra abuso: sem isso, qualquer um criaria mil contas para minerar cripto. O provedor faz uma pré-autorização de US$ 1 (ou US$ 5 no PayPal) e libera em seguida. Você só é cobrado se estourar o crédito de US$ 200 — e uma máquina desse tamanho consome cerca de US$ 0,03 por dia.

2

Crie a conta na DigitalOcean

≈ 3 minutos

Escolhemos a DigitalOcean porque o cadastro é o mais rápido entre os provedores e o crédito inicial é generoso: US$ 200 válidos por 60 dias, mais do que suficiente para o CTF inteiro.

  1. Acesse digitalocean.com/try/free-trial-offer. Entre por esta página — o crédito é aplicado no momento do cadastro e não é concedido depois.
  2. Cadastre-se com e-mail e senha, ou pelo botão do Google/GitHub (mais rápido).
  3. Confirme o e-mail pelo link que chegar na caixa de entrada.
  4. Cadastre o cartão ou o PayPal quando for solicitado.
  5. Se perguntarem o nome de um projeto, escreva qualquer coisa — ctf serve.

Não caia nos sites de "VPS grátis para sempre"

Buscar "free VPS no credit card" devolve dezenas de sites prometendo 6 GB de RAM sem cadastro. Nenhum deles é sustentável: no melhor caso é isca de afiliado, no pior é coleta de credenciais. Você vai colocar sua chave SSH nessa máquina. Fique com provedores conhecidos.

3

Gere sua chave SSH

No seu computador, antes de criar o servidor

A chave SSH substitui a senha para entrar no servidor. São dois arquivos: a privada (fica com você, nunca sai da sua máquina) e a pública (você entrega ao provedor). Rode o comando abaixo no seu terminal — funciona igual no Linux, macOS e Windows.

seu computador
# gere o par de chaves (aperte Enter em todas as perguntas)
ssh-keygen -t ed25519 -C "ctf"

# mostre a chave PÚBLICA para copiar
cat ~/.ssh/id_ed25519.pub

A saída do segundo comando é uma linha só, começando com ssh-ed25519. Copie ela inteira — você vai colar no próximo passo.

A chave privada é sua identidade

O arquivo id_ed25519 (sem .pub) nunca deve ser enviado a ninguém, colado em chat, commitado em repositório ou copiado para o servidor. Quem tiver ele entra na sua máquina como você.

4

Suba o servidor

Na DigitalOcean, o servidor se chama "Droplet"

No painel, clique em Create → Droplets e preencha assim:

  1. Region: New York — é o datacenter com menor latência a partir do Brasil entre os disponíveis.
  2. Image: Ubuntu 24.04 (LTS) x64.
  3. Size: aba Basic → tipo Regular (SSD) → escolha o plano de US$ 6/mês: 1 GB de RAM, 1 vCPU, 25 GB. Existe um de US$ 4 com 512 MB e 10 GB, mas 512 MB apertam bastante quando você roda várias ferramentas ao mesmo tempo.
  4. Authentication: selecione SSH Key → New SSH Key e cole a chave pública do passo anterior. Dê um nome qualquer a ela.
  5. Hostname: algo que você reconheça, como ctf-box.
  6. Deixe backups, monitoring e o resto desmarcados. Clique em Create Droplet.

Em cerca de 40 segundos o painel mostra o endereço IP público da máquina. Anote — é o seu endereço daqui em diante.

A cobrança é por segundo

Você paga apenas pelo tempo em que a máquina existe, com mínimo de 60 segundos. Cinco dias dessa configuração custam cerca de US$ 1 — descontados do crédito de US$ 200.

5

Entre na máquina

Primeiro acesso via SSH

Troque SEU_IP pelo endereço que apareceu no painel:

terminal
ssh root@SEU_IP

Na primeira conexão aparece um aviso sobre a autenticidade do host. Responda yes. Se o prompt mudar para root@ctf-box:~#, você está dentro.

6

Prepare o ambiente

Já conectado, dentro do servidor

Atualize o sistema e instale o básico. A primeira linha demora um ou dois minutos.

root@ctf-box
apt update && apt -y upgrade

# ferramentas de trabalho
apt -y install git curl wget tmux vim build-essential \
    python3-pip python3-venv unzip jq net-tools

# memória virtual: 1 GB de RAM acaba rápido
fallocate -l 2G /swapfile && chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

Use tmux para que suas sessões continuem rodando se a conexão cair: tmux new -s ctf para abrir, Ctrl+B depois D para sair sem matar, tmux attach -t ctf para voltar.

7

Transfira arquivos quando precisar

Entre o seu computador e o servidor

seu computador
# enviar um arquivo para o servidor
scp arquivo.bin root@SEU_IP:/root/

# trazer um arquivo do servidor
scp root@SEU_IP:/root/resultado.txt .
8

Destrua a máquina no fim

Depois que o CTF acabar

Desligar o servidor não para a cobrança — o disco continua reservado para você. Para zerar o gasto é preciso destruir o Droplet: no painel, abra a máquina e vá em Destroy → Destroy this Droplet.

Se pretende continuar usando depois do evento, tire antes um snapshot (custa alguns centavos por mês) e recrie a máquina a partir dele quando quiser.

Coloque um alerta de consumo

Em Settings → Billing → Billing alerts, configure um aviso em US$ 5. É a rede de segurança contra a máquina esquecida ligada por três meses.

Regras de uso

Escopo

Use esta máquina apenas nos desafios listados no dashboard do CTF. Varredura, força bruta ou exploração de qualquer host fora do escopo viola os termos do provedor e a lei — e a consequência prática mais imediata é o bloqueio da sua conta e a perda da máquina no meio da competição. Provedores detectam tráfego de scan em minutos.

Problemas comuns

"Permission denied (publickey)" ao conectar

O servidor não reconhece sua chave. Confira se você colou a chave pública (o arquivo terminado em .pub) no painel, e se colou a linha inteira, sem quebras. Se errou na criação, adicione a chave certa em Settings → Security e recrie o Droplet.

"Connection timed out"

O IP está errado ou a máquina ainda está inicializando. Confira o IP no painel e espere um minuto. Se a sua rede bloqueia a porta 22 (comum em Wi-Fi de universidade), use o Console do painel web para entrar e teste depois em outra rede.

O cadastro rejeitou meu cartão

Cartões pré-pagos e virtuais costumam ser recusados. Tente um cartão de crédito comum ou a opção PayPal. Se ainda assim não passar, veja as alternativas abaixo.

Não quero ou não posso cadastrar cartão

Alternativas, em ordem de praticidade: Azure (US$ 200 por 30 dias) e Google Cloud (US$ 300 por 90 dias) também pedem cartão, mas aceitam bandeiras diferentes. A Oracle Cloud tem um plano permanentemente gratuito bem generoso, porém o cadastro no Brasil é lento e frequentemente rejeitado — não conte com ele em cima da hora. Se nada funcionar, fale com a organização: uma máquina virtual local no VirtualBox ou no WSL2 resolve a maior parte dos desafios, faltando só o IP público.

Como sei quanto já gastei?

No painel, em Billing, aparece o crédito restante e o consumo do mês. Com uma única máquina desse porte, você não vai chegar perto do limite.