Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
BreakEscape — Moteur Rails montable proposant plus de 24 scénarios d'escape room de cybersécurité avec mots de passe randomisés, dialogues NPC compilés JIT et une API RESTful pour la gestion de l'état du jeu. Conçu pour une formation pratique en sécurité. | Kitploit
Outils/GitHubGitHub/cliffe/breakescape
Sécurité WebCTFTests d'IntrusionApprentissage et ÉducationParcours et CoursLabs et Pratique
GitHubcliffe/breakescape

BreakEscape

Moteur Rails montable proposant plus de 24 scénarios d'escape room de cybersécurité avec mots de passe randomisés, dialogues NPC compilés JIT et une API RESTful pour la gestion de l'état du jeu. Conçu pour une formation pratique en sécurité.

Voir le dépôt
624il y a 8 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

BreakEscape Moteur Rails

Jeu d'évasion d'entraînement en cybersécurité sous forme de moteur Rails montable.

Fonctionnalités

  • Plus de 24 scénarios d'évasion en cybersécurité
  • Suivi de progression côté serveur avec un schéma de 2 tables
  • Mots de passe aléatoires par instance de jeu via ERB
  • Compilation JIT de scripts Ink pour les dialogues PNJ
  • Support de joueur polymorphique (User/DemoUser)
  • Autorisation Pundit
  • API RESTful pour la gestion de l'état du jeu
  • Persistance de l'état basée sur les sessions

Installation

Dans votre Gemfile :

root@kitploit:~
gem 'break_escape', path: 'path/to/break_escape'

Ensuite :

root@kitploit:~
bundle install
rails break_escape:install:migrations
rails db:migrate
rails db:seed  # Optional: creates missions from scenarios

Montage dans l'application hôte

Dans votre config/routes.rb :

root@kitploit:~
mount BreakEscape::Engine => "/break_escape"

Utilisation

Mode autonome (Développement)

root@kitploit:~
export BREAK_ESCAPE_STANDALONE=true
rails server
# Visit http://localhost:3000/break_escape/

Mode monté (Production)

Montez dans Hacktivity ou une autre application Rails. Le moteur utilisera l'current_user de l'application hôte via Devise.

Configuration

root@kitploit:~
# config/initializers/break_escape.rb
BreakEscape.configure do |config|
  config.standalone_mode = false  # true for development
  config.demo_user_handle = 'demo_player'
end

Schéma de base de données

  • break_escape_missions - Métadonnées du scénario (nom, display_name, publié, difficulté)
  • break_escape_games - État du joueur + instantané du scénario (JSONB)
  • break_escape_demo_users - Mode autonome uniquement (optionnel)

Points de terminaison API

  • GET /games/:id/scenario - JSON du scénario (généré par ERB)
  • GET /games/:id/ink?npc=X - Script PNJ (compilé JIT à partir de .ink)
  • GET /games/:id/bootstrap - Données initiales du jeu
  • PUT /games/:id/sync_state - Synchroniser l'état du joueur
  • POST /games/:id/unlock - Valider la tentative de déverrouillage
  • POST /games/:id/inventory - Mettre à jour l'inventaire

Architecture

Génération de scénario ERB

Les scénarios sont stockés sous forme de modèles .json.erb et rendus à la demande avec des valeurs aléatoires :

  • <%= random_password %> - Génère un mot de passe unique par partie
  • <%= random_pin %> - Génère un code PIN unique à 4 chiffres
  • <%= random_code %> - Génère un code hexadécimal unique

Compilation JIT Ink

Les scripts de dialogue PNJ se compilent lors de la première requête (~300 ms) :

  1. Vérifier si .json existe et est plus récent que .ink
  2. Si nécessaire, exécuter inklecate pour compiler
  3. Mettre en cache le JSON compilé pour les requêtes suivantes

Gestion de l'état

État du joueur stocké dans une colonne JSONB :

  • Pièce actuelle et pièces déverrouillées
  • Inventaire et objets collectés
  • Rencontres PNJ
  • Variables globales (synchronisées avec le client)
  • Santé et état du mini-jeu

Tests

CI

Les tests s'exécutent automatiquement sur GitHub Actions. Le Gemfile.lock commit fixe les versions exactes des gems utilisées.

Localement avec accès réseau

root@kitploit:~
bundle install
bundle exec rails db:create db:migrate RAILS_ENV=test
bundle exec rails test

Localement sans accès réseau

Le moteur est livré avec un script bin/setup qui amorce le bundle à partir d'un checkout frère de Hacktivity (qui contient déjà toutes les gems requises) :

root@kitploit:~
# From the BreakEscape root — Hacktivity must be at ../Hacktivity
bin/setup
bundle exec rails test

# If Hacktivity is elsewhere, set HACKTIVITY_DIR:
HACKTIVITY_DIR=/path/to/Hacktivity bin/setup

bin/setup copie les fichiers .gem résolus dans vendor/cache/ et exécute bundle install --local. Les répertoires vendor/cache/ et vendor/bundle/ sont gitignorés ; seul Gemfile.lock est commit.

Documentation

Voir HACKTIVITY_INTEGRATION.md pour le guide d'intégration.

Remerciements

Un grand merci à tous ceux qui ont contribué au projet. Veuillez vous référer à l'historique GitHub.

  • Ce projet est soutenu par une subvention de ressources Cyber Security Body of Knowledge (CyBOK) autour de CyBOK 1.1 (2023-2024).
  • Ce projet est soutenu par une subvention de ressources Cyber Security Body of Knowledge (CyBOK) autour de CyBOK 1.1 (2024-2025).
  • Ce projet est soutenu par une subvention de ressources Cyber Security Body of Knowledge (CyBOK) autour de Security-Informed Safety (2025-2026).
Télécharger l’outil