Criando seu proprio Capture The Flag com o CTFd
Essa VM que usei é um Debian8(Jessie) , não tem nada instalado e configurado! Apenas o sistema Debian rodando limpo em linha de comando , vamos instalar tudo e no final vamos ter uma plataforma para criar seus próprios Capture The Flag.
Instalando o sudo
O sudo permite um usuário em particular execute vários comandos como super usuário sem que possua sua senha, ou seja sem a senha do root.
Precisamos de privilégios para isso então precisamos logar como root.
Para isso vamos instalar o sudo.
# apt-get install sudo
Configuração sudo
Agora vamos adicionar um usuário ao grupo sudo.
# adduser USUARIO sudo
Depois vamos testar dando um simples comando ifconfig.
Veja que é necessário colocar sua senha de usuário , é possível que precise reiniciar a VM.
Atualizando sistema
Para deixar nosso sistema atualizado vamos dar um update seguindo de um upgrade para deixar nosso sistema atualizado.
sudo apt-get update -y
sudo apt-get upgrade -y
Instalando SSH
Agora vamos instalar o serviço de SSH.
sudo apt-get install openssh-server openssh-client
Instalando Git
sudo apt-get install git
Controlando via SSH
Como é uma VM essa maquina poderia estar em qualquer lugar da sua casa ou até do mundo se for usar algum serviço de hospedagem para o seu servidor , para isso vamos ter acesso de nossa maqina via SSH.
Veja que primeiro demos um start no serviço SSH.
sudo service ssh start
Em seguida vemos nosso IP da nossa interface eth0.
sudo ifconfig eth0
Caso queira ver de todas elas
sudo ifconfig
Agora em nossa maquina vamos logar no servidor
ssh usuario@192.168.0.111
Nesse caso usuario é seu nome de usuário , já 192.168.0.111 no caso é o IP do seu Servidor.
Em seguida é necessário colocar a senha.
Baixando projeto
Assim que logamos no serviço SSH vamos dar um pwd para ver onde estamos (diretório).
pwd
Em seguida vamos clonar o projeto CTFd.
git clone https://github.com/isislab/CTFd.git
Em seguida vamos listar o nosso diretório ver se o projeto está OK.
ls
Instalando dependências
Está tudo OK como o nosso projeto , agora precisamos entrar na pasta e instalar as dependências.
cd CTFd/
ls
Vamos começar a instalar as dependências , do projeto.
Veja que dentro da pasta do projeto '''CTFd''' tem um arquivo chamado prepare.sh ele é um script que vai instalar todas as dependências do nosso projeto , para executar é simples !
sudo ./prepare.sh
Esse arquivo prepare.sh é o arquivo responsável por instalar as dependências do projeto CTFd.
Em seguida faça
Iniciando o CTFd
python server.py
Vai iniciar o serviço , por padrão ele funciona na porta 4000.
Agora nosso CTF já esta funcionando , agora precisamos fazer algumas configurações.
Já estamos na pagina principal do projeto , vamos realizar o login.
Espero que não tenha esquecido sua senha , vamos fazer login e adicionar nosso primeiro Challenges.
Assim que logado você vai ser redirecionado para a pagina de Challenges , como acabamos de configurar nosso projeto ainda não tem nenhum , vamos configurar ?
Está em branco , vamos criar um simples Challenge para testarmos o projeto e ver se está tudo OK.
Está tudo OK , vamos cadastrar outro usuário para testar.
Vamos para a pagina para registrar novos usuários , em seguida vamos cadastrar um usuário para teste.
Ok , apos o usuário criado a pagina é redirecionada para a pagina
Agora vamos resolver a challenge que criamos com o nosso admin.
Vamos testar uma key que não é verdadeira para testarmos , aparece uma mensagem em vermelho no rodapé..
Agora vamos resolver a Key , o resultado vai ser semelhante ! A diferença é uma mensagem de sucess em verde , veja agora a aba de 1 solves.
Alem de tudo isso temos uma área para a configuração do CTF. Podemos configurar EMAIL , o inicio e o fim do CTF
Vale a pena dar uma olhada !
Isso é o básico que podemos fazer com esse incrível projeto que é opensource , vamos valorizar esse tipo de projeto !
No site Oficial , lá é possível você saber mais sobre o projeto e ainda pode alugar um servidor para realizar seu CTF com uma galera que já se divertindo a um tempo já por apenas 5 Dolares.
Link do projeto: CTFd
Link do github: CTFd Github