greenmind Postado Agosto 20, 2017 em 00:33 Compartilhar Postado Agosto 20, 2017 em 00:33 Conhecendo o CTFd O CTFd é uma plataforma para criar de forma fácil o seu próprio Capture The Flag no estilo jeopardy , com a possibilidade de criar e inserir diversos plugins e temas acredito que seja a melhor plataforma para quem está começando e deseja criar o seu próprio CTF. Site Oficial Podemos ver também um demo que o pessoal disponibiliza. Demo CTFd Além disso eles disponibilizam a plataforma por 50 dólares por mês em uma cloud para você. **Mais temos o código fonte dela no github.** Obtendo o CTFd Podemos encontrar o CTFd no repositório oficial no Github Repositório CTFd O projeto está em desenvolvimento , mais ainda tem alguns bugs como , exportar os desafios e os jogadores. Assim como todo projeto em desenvolvimento temos alguns bugs , podemos resolver ajudando no desenvolvimento do projeto. Documentação do CTFd Assim como todo projeto de qualidade achamos uma documentação para nos auxiliar , podemos ver em [Documentação CTFd](https://github.com/CTFd/CTFd/wiki). Instalando o CTFd Podemos criar o nosso CTF em uma simples VM rodando no Virtualbox , Vagrant e até o Docker. Idependente de onde vamos rodar precisamos baixar o CTFd , eu recomendo usar o GIT. Com ele já instalado podemos dar um **git clone**. git clone https://github.com/CTFd/CTFd Ou podemos baixar ele em https://github.com/CTFd/CTFd/archive/master.zip Instalação simples Nesse primeiro caso é uma instalação simples , visando apenas conhecer o projeto e jogando com os brothers já que dessa forma conseguimos ter um numero pequeno de jogadores pois usa o próprio servidor do Flask. Vamos apenas executar o arquivo **prepare.sh** com poderes de administrador. Com isso já temos nossa plataforma rodando sem problemas. Basta executar o arquivo serve.py. python serve.py Instalação completa Já na segunda vamos usar o gunicorn e o nginx como proxy reverso já que é o que eles recomendam para jogar com grande numero de pessoas. A documentação pede para que seja rodado o arquivo prepare.sh , o arquivo de instalação nada mais é que o pedido para instalar. apt-get install build-essential python-dev python-pip libffi-dev E os requisitos requeriments.txt. pip install -r requirements.txt Esses requisitos vão ser instalados automaticamente , mais caso queira saber o que é podemos ver esse arquivo que é uma pequena lista de bibliotecas e versões para que o CTFd funcione sem problemas. Atualmente é Flask==0.12.2 Flask-SQLAlchemy==2.2 Flask-Session==0.3.1 Flask-Caching==1.2.0 Flask-Migrate==2.0.4 SQLAlchemy==1.1.11 SQLAlchemy-Utils==0.32.14 passlib==1.7.1 bcrypt==3.1.3 six==1.10.0 itsdangerous==0.24 requests==2.18.1 PyMySQL==0.7.11 gunicorn==19.7.0 dataset==0.8.0 mistune==0.7.4 netaddr==0.7.19 Com isso já temos nossa plataforma rodando sem problemas. Basta executar o arquivo serve.py . python serve.py Caso instalou para rodar usando o **python3** faça. python3 serve.py Executando o gunicorn Mais a ideia é executar essa plataforma usando o gunicorn , na própria documentação ele explica como podemos fazer isso. Com ele já instalado vamos executar iniciar ele na porta **8000** , mais podemos iniciar em qualquer porta , nesse caso ele não precisa de permissão de um administrador para ser executado. gunicorn --bind 0.0.0.0:8000 -w 4 "CTFd:create_app()" Configurando Proxy Nginx Para instalar o **Nginx** é bem simples. apt-get install nginx Vamos agora configurar ele para que ele sirva de **proxy reverso** a nossa aplicação que vai estar rodando na porta **8000**. Vamos criar o arquivo chamado ctf.conf. /etc/nginx/sites-available/ctf.conf O conteúdo do arquivo é server { listen 80; server_name localhost; access_log /var/log/nginx/proxy-ctf.log; location / { proxy_pass http://127.0.0.1:8000; } } Vamos apagar o arquivo padrão. rm /etc/nginx/sites-enabled/default Agora vamos criar um link no Linux usando o comando ln para lincar a pasta sites-available para a sites-enabled. ln -s /etc/nginx/sites-available/ctf.conf /etc/nginx/sites-enabled/ctf.conf Agora basta reiniciar o **Nginx** e pronto. service nginx restart Pronto para jogar Toda a instalação que eu acabei de explicar eu fiz e está online no meu blog em http://lab.greenmind.top/ Espero ter ajudado nesse tutorial , e qualquer duvida por favor entrem em contato. Pontos importantes - Esse projeto ainda está em desenvolvimento. - Esse é apenas a primeira versão desse tutorial - Esse é o primeiro POST do meu blog e toda critica é muito bem vinda. - Tema é muito simples modificar e criar. Referências GreenMind ABase - https://greenmind.top/abase/Infraestrutura/Games/CTFd/ CTFd Wiki - https://github.com/CTFd/CTFd/wiki CTFd Github - https://github.com/CTFd/CTFd/ Site CTFd - https://ctfd.io Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.