Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

Mon premier CTF

Vous désirez organiser un Capture The flag à destination de grands débutants ? Ce repo est pour vous !

Vous trouverez ici, une série de challenges destinés à permettre aux participants de commencer à se constituer la trousse à outil minimale pour participer à un CTF.


Un jeu de slide à destination des participants est disponible en https://github.com/monpremierctf/mon_premier_ctf/blob/master/doc/Introduction_au_CTF.pdf

Vous trouverez dans ce document des instructions détaillées sur :



Fonctionnalités

Tous les challenges sont accessibles à travers le navigateur Web. Il n'y a aucune installation à faire sur le poste des utilisateurs.

Challenges textuels

Utilisation d'un terminal 'Kali like' dans le browser

Lancement à la demande de serveurs dédiés

Serveur de type ssh ou Web

Editeur et Execution de code python



Installer et démarrer le serveur

3 types d'installations sont possibles:

  • Zéro install: le site http://hacklab.yoloctf.org (il est down, je peux le remonter si c'est utile, faites moi signe)
  • Installation de la VM pré-configurée
  • Installation de zéro sur un serveur ubuntu

Methode 1: Installation de la VM YOLO CTF

https://drive.google.com/file/d/1LvcRQ8aUUXzW4xIUsc8UmsR_kseuti4i/view?usp=sharing

Pour tester tranquillement sur mon PC, ou organiser un CTF sur mon LAN : Je télécharge une VM prète à l'emploi

==> Instructions pour l'installation de la VM




Methode 2: Installation from scratch sur Ubuntu

git clone https://github.com/monpremierctf/mon_premier_ctf.git
cd mon_premier_ctf
./go_launch_first_install_webserver_run

Pour organiser un CTF sur Internet, je fais une installation sur un Ubuntu Server vierge chez Amazon ou OVH

==> Instructions pour l'installation sur un serveur ubuntu vierge




Participer au CTF

Accéder au site Web du CTF

Vous pouvez vous connecter avec votre navigateur Web :

http://IP_DU_SERVEUR/

La connection en HTTP (tout les messages sont en clairs) va être redirigée vers une connection en HTTPS (les messages sont chiffrés et le serveur est authentifié). Vous allez avoir une alerte de sécurité. C'est normal.

Le serveur Web a généré ses propres certificats pour utiliser une liaison HTTPS (HTTP Sécurisée). L'alerte vous prévient qu'aucune autorité de certification 'officielle' ne valide les clefs de sécurité de ce site, et qu'il peut donc y a donc un risque.

Il faut ajouter une exception pour accepter le certificat non signé qui est présenté par le site. Cliquez sur [ Accepter le risque et poursuivre]

Sur un autre navigateur (chrome, explorer..) ou si vous avez un antivirus installé le message peut être différent. Mais le principe reste le même. Il faut accepter de prendre le risque de reconnaitre le certificat autosigné du site.




Administrer le CTF

Se logguer avec le compte Admin

Le mot de passe du compte admin est donné dans le terminal:

  • admin
  • lvlwxnjygeycmias

Changer le mot de passe du compte Admin

Le mot de passe étant prédéfini sur la VM, il est nécessaire de le changer :

Allez sur l'onglet 'Mon Compte' dans la table des matières en bas à gauche. Définissez un nouveau mot de passe et cliquez [Change].


Monitoring light

L'onglet [Admin] en bas à gauche permet de voir :

  • Le nombre de sessions actives
  • Le nombre d'utilisateurs
  • Les flags soumis par les utilisateurs
  • Les containers démarrés par les utilisateurs

Reseter les Flags

Dès l'instant ou le serveur est démarré, les participants peuvent commencer à valider les flags. Vous pouvez aussi vouloir tester un peu. Le lien [ClearFlags] en bas de page permet d'effacer tous les flags validés.


Consultez les feedbacks

L'onglet Feedback est à utiliser pour obtenir un retour des utilisateurs en fin de CTF, et permet de détailler un problème rencontré sur le site ou un challenge.




Monitorer

Monitoring du serveur et de ses containers

Une fois que votre serveur tourne, c'est une bonne idée de surveiller ce qui se passe et vérifier la mémoire libre, la charge du CPU et la place restante sur le disque.

Liste des containers

docker ps --format '{{.Names}}'

Consommation CPU et mémoire par les containers

docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

Analyse de logs

# docker logs challenge-box-provider

Monitoring global en interface web sur http://localhost:8888

chmod a+x tools/monitor.sh
tools/monitor.sh


Customisation

Pour ajouter des challenges jetez un oeil à : doc/create_new_challenges.md

Enjoy !