Sobre a nossa NIZK (Non-Interactive Zero-Knowledge) Platform: https://arxiv.org/pdf/1708.05844.pdf
-
Todos os membros do time devem ter uma conta no GitHub e configurar uma chave SSH nas suas configurações de conta.
Nota: Se você não conseguir seguir as instruções de instalação abaixo,
ou simplesmente é preguiçoso demais para fazer os passos, preparamos para você um contêiner LXD com a plataforma pré-instalada. Se você prefere Docker, disponibilizamos também um Dockerfile. Caso queira instalar diretamente na sua máquina (sem contêineres), ignore esta nota. -
Todos os membros do time devem clonar o repositório e instalar as dependências:
git clone git@github.com:pwn2winctf/2018.git cd 2018 sudo apt-get install libsodium18 curl https://bootstrap.pypa.io/get-pip.py | sudo -H python sudo -H python -m pip install -r pip-requirements.txt
Nota: Qualquer versão do libsodium >= libsodium18 é suportada. No entanto, versões recentes do pysodium têm um bug quando usadas com a libsodium antiga. Então, se você usar libsodium18, por favor mude a segunda linha do
pip-requirements.txtparapysodium == 0.6.9.1, de forma a usar exatamente a versão do pysodium que funciona corretamente com a libsodium18. -
Todos os membros do time devem ter um cliente git corretamente configurado. Se você nunca usou git antes, execute:
git config --global user.name "Fulano de Tal" git config --global user.email fulanodetal@exemplo.com.br -
Se as dependências estiverem corretamente instaladas (ou se você usou uma das nossas imagens), você deve conseguir ver o menu de ajuda executando:
./ctf -h
-
O líder do time deve executar o seguinte comando e seguir as instruções para registrar a equipe:
./ctf init
-
Os demais membros devem se logar com o GitHub sem criar um novo time:
./ctf login
-
Após isso, o líder deve compartilhar o arquivo
team-secrets.jsoncom os demais mebros. Os demais membros devem colocar o arquivoteam-secrets.jsonna pasta2018clonada.
Os challenges ficarão disponíveis em https://pwn2.win/2018.
Se você preferir, pode consultar localmente subindo um servidor usando ./ctf serve, ou listar os challenges na Interface de Linha de Comando:
./ctf challsPara submeter uma flag:
./ctf submit --chall chall-id 'CTF-BR{flag123}'Você pode omitir o --chall chall-id do comando, mas vai demorar mais para submeter. Nesse caso, será tentada a flag para cada um dos challenges liberados até então.
Para pegar as credenciais da VPN, quando seu time desbloqueá-la, após resolver 6 challenges (veja a página de regras pra entender melhor):
./ctf news --pullVoc pode ver o scoreboard no link do game (https://pwn2.win/2018), localmente (se você rodar o webserver) ou através da CLI:
./ctf score --names --pullPodemos tentar ajudá-lo via IRC: #pwn2win @ freenode.