| .. | ||
| doc.go | ||
| exercice_defines.go | ||
| exercice_files.go | ||
| exercice_hints.go | ||
| exercice_keys.go | ||
| exercices.go | ||
| file.go | ||
| full.go | ||
| importer_cloud.go | ||
| importer_localfs.go | ||
| README.md | ||
| themes.go | ||
Format des répertoires pour la synchronisation
- Un dossier par groupe/scénario, contenant :
AUTHORS.txtavec vos noms, tels qu'ils apparraîtront sur le siteintroduction.txtune présentation rapide du scenario (~2-3 phrases d'accroche pour lecture rapide), compréhensible par un décideur, petit schéma a l'appui- Un dossier par challenge :
CHID-Titre du challengescenario.txtcontenant le scénario du challenge, tel qu'il sera affiché sur le site, à destination des participantsintroduction.txtune présentation rapide du challenge (~1-2 phrases d'accroche), compréhensible par un décideur, petit schéma a l'appui si besoindefines.txtdéfinitions de quelques paramètres (format toml) :gain = 42: nombre de points que rapporte cet exercice ;[[hint]]: paramètres pour un indice :filename = "toto.txt": nom du fichier tel qu'il apparaît dans le dossierhints;cost = 10: coût de l'indice (par défaut 1/4 des gains du challenge) ;title = "Foo Bar": titre de l'astuce dans l'interface (par défaut "Astuce $id") ;
depends.txtcontenant les dépendances :- une dépendance par ligne
- format d'une ligne :
CHID
flags.txtcontenant les flags :- un flag par ligne
- format d'une ligne :
Description<TAB>Flagle premier caractère tabulation est utilisé comme séparateur entre la description et le flag. Prennez garde à ce que votre éditeur de texte ne remplace pas cette tabulation par des espaces ! - la description est facultative (sera remplacé par « Flag »), mais la tabulation ne l'est pas.
flags-ucq.txtpour un questionnaire type cases à cocher :- une question par ligne
- format d'une ligne :
<RESPONSE>Intituléle premier caractère0ou1indique si la bonne réponse est de cocher la case ou non. L'intitulé commence sans séparateur.
flags-mcq.txtpour un questionnaire à choix multiple :- une question par ligne avec ses réponses, séparé par des tabulations
- format d'une ligne :
Question<TAB>Réponse 1<TAB>Réponse 2<...>
links.txt: webographie publiée avec les solutions- un lien par ligne
- format d'une ligne :
https://lien Descriptionle premier ' ' est utilisé comme séparateur entre le lien et sa description - liens vers les CVE concernées, metasploit/exploitDB, article qui vous a aidé, extrait/dépôt de code, ...
hints/: dossier contenant des indices pour orienter le participant (qu'il débloquera en échange d'un certain nombre de points)- l'ordre alphabétique détermine l'ordre dans lequel seront proposé les astuces (préfixez par des numéros si besoin d'ordre)
- les fichiers textes de moins de 25 lignes sont affichés directement, les autres (autres types ou textes plus longs) sont proposés au téléchargement.
resolution/: dossier contenant les vidéos de résolution- format MP4 (H.264 + AAC + 3GPP Timed Text)
- utiliser les sous-titres pour commenter les étapes ; pas de commentaires audio
- environ 2' par vidéo : maxi 1'30" pour les challenges simples, 3-4' maxi
ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -f alsa -ac 2 -i hw:0 -strict experimental resolution.mp4- recordMyDesktop sous Linux
- Screencast Capture Lite pour Windows (pas de logiciel de « démonstration » => il faut payer la licence pour publier une vidéo)
- Aegisub, Gnome Subtitle, emacs/vim, ... pour les sous-titres
files/: fichiers à distribuer aux participantsDIGESTS.txt: contenant les condensats des fichiers :$(b2sum * > DIGESTS.txt)à générer avant l'upload !- Pas plus 4GB à télécharger par challenge (ie. tous les fichiers de ce challenge)
- Archives
.tader.bz2,.tar.gz,.tar.xzou.ziplorsque nécessaire. PAS de.rar, ... - Compresser (sans tarball, j+wwwwwwwwwwwwwwwwwwuste via gzip) les fichiers lorsque c'est utile (memory dump, ...)
- Utiliser
$(split -b 240M -d BIG_FILE BIG_FILE.)pour uploader les gros fichiers sur owncloud. Ces fichiers seront concaténés au moment de leur import sur l'interface. Seul le hash du fichier entier est requis dans le fichierDIGESTS.txt.
ressources/:- ressources et scripts que vous avez réalisés pour le challenge : pour sa construction ou sa résolution
- schéma du SI au premier challenge concerné
- éventuellement un
README.txtavec les liens des outils externes
Exemple d'arborescence
Active Directory/
...
Virtualisation légère/
...
PDF/
AUTHORS.txt
introduction.txt
1-Cible cachée/
...
2-Black&White/
...
3-Ligne rouge/
files/
DIGESTS.txt
clue.pdf
big_clue.pdf.00
big_clue.pdf.01
big_clue.pdf.02
resolution/
resolution.mp4
ressources/
generator.pl
PDFextractor.exe
solver.py
pdf_index_schema.svg
flags.txt
scenario.txt
links.txt
...
Exemple AUTHORS.txt
Courtois J. <mailto:courto_j@epita.fr>
Bombal S.
Mercier P-O. <https://nemunai.re/>
Vous pouvez indiquer entre chevrons, un lien qui sera associé à votre nom.
Vous pouvez utiliser un pseudo si vous n'êtes pas fier de vos réalisations.
Exemple flags.txt
Date d'exfiltration (yyyy-mm) 2015-12
IPv6 d'exfiltration fe80::319c:1002:7c60:68fa
CocoRik0
Sans description comme sur cette dernière ligne, l'intitulé affiché du flag sera "Flag :".
Exemple links.txt
https://media.ccc.de/... Vidéo d'inspiration
https://metasplo.it/ Exploit utilisé
https://nist.gov/ CVE-2016-4242
Exemple DIGESTS.txt
3222734c6c8782682a9c36135a3518e8f4d1facabf76e702cf50da0037a4ed0a425e51266c2914fb83828573e397f96c2a95d419bd85919055479d028f51dba5 fic2016.jpg
023939b0c52b0dfce66954318ab82f7a8c10af4c79c8d5781612b58c74f3ace056067d7b15967e612b176a186b46d3d900c4db8881ba47202521eec33e5bb87b fic.org
7c91450239cf9b0717642c55c3429dd7326db26e87d4ca198758053333f0640ee89d2dd9b2f1919598f89644b06aa8fc2085648e3d1e542a6db324c9b16a0bdf header.tex