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 [email protected]: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.txt
parapysodium == 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 [email protected]
-
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.json
com os demais mebros. Os demais membros devem colocar o arquivoteam-secrets.json
na pasta2018
clonada.
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 challs
Para 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 --pull
Voc 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 --pull
Podemos tentar ajudá-lo via IRC: #pwn2win @ freenode.