This commit is contained in:
Adrian Amaglio 2022-01-20 13:50:31 +01:00
parent fda4c85dbb
commit 4f61b3147a
6 changed files with 108 additions and 33 deletions

View File

@ -5,7 +5,11 @@ WORKDIR /root
RUN addgroup eleve RUN addgroup eleve
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
nano \
netcat \
nginx \
ssh \ ssh \
vim \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*

View File

@ -6,5 +6,6 @@ services:
- ./config:/root/config - ./config:/root/config
- ./home_eleves:/home - ./home_eleves:/home
- ./exercices:/root/exercices - ./exercices:/root/exercices
- ./http:/root/http
network_mode: "host" network_mode: "host"
restart: "unless-stopped" restart: "unless-stopped"

29
exercices/gen_arbo.sh Executable file → Normal file
View File

@ -8,28 +8,33 @@ fi
cd $1 cd $1
#rm -rf *
mkdir -p viens/voir/par/ici/si/jy/suis mkdir -p viens/voir/par/ici/si/jy/suis
echo "faites demi-tour avec prudence" > viens/voir/par/ici/si/jy/suis/ah_bah_non echo "faites demi-tour avec prudence" > viens/voir/par/ici/si/jy/suis/ah_bah_non
mkdir chez ; cd chez mkdir -p chez ; cd chez
mkdir moi toi lui elle ellui eux nous iels ; cd .. mkdir -p moi toi lui elle ellui eux nous iels ; cd ..
mkdir Trash ; cd Trash mkdir -p Trash ; cd Trash
mkdir tmp info files prefecture ; cd .. mkdir -p tmp info files prefecture ; cd ..
mkdir unix ; cd unix mkdir -p unix ; cd unix
mkdir bin boot dev etc home home/user home/root home/sudo home/user2 lib media mnt opt proc root run sbin srv sys tmp usr var mkdir -p bin boot dev etc home home/user home/root home/sudo home/user2 lib media mnt opt proc root run sbin srv sys tmp usr var
touch initrd.img vmlinuz ; cd .. touch initrd.img vmlinuz ; cd ..
mkdir Images mkdir -p Images
touch Images/thisisBASHyoulowlycasual touch Images/thisisBASHyoulowlycasual
mkdir TrucSuperImportant mkdir -p TrucSuperImportant
echo -e "La vie ? \nUn sacré sac de petits tracas et de grandes contrariétés. \n\nMais avec des pauses crêpe, ça passe." > TrucSuperImportant/la_verite_se_trouve_ici.txt echo -e "La vie ? \nUn sacré sac de petits tracas et de grandes contrariétés. \n\nMais avec des pauses crêpe, ça passe." > TrucSuperImportant/la_verite_se_trouve_ici.txt
mkdir -p "Video/My_Little_Pony-Friendship_is_Magic" ; cd "Video/My_Little_Pony-Friendship_is_Magic" mkdir -p "Video/My_Little_Pony-Friendship_is_Magic" ; cd "Video/My_Little_Pony-Friendship_is_Magic"
touch "1_-_Friendship_Is_Magic_(Part_1).webm" "2_-_Friendship_Is_Magic_(Part_2).webm" "3_-_The_Ticket_Master.webm" "4_-_Applebuck_Season.webm" "5_-_Griffon_the_Brush-Off.webm" "6_-_Boast_Busters.webm" "7_-_Dragonshy.webm" "8_-_Look_Before_You_Sleep.webm" "9_-_Bridle_Gossip.webm" "10_-_Swarm_of_the_Century.webm" "11_-_Winter_Wrap_Up.webm" "12_-_Call_of_the_Cutie.webm" "13_-_Fall_Weather_Friends.webm" "14_-_Suited_for_Success.webm" "15_-_Feeling_Pinkie_Keen.webm" "16_-_Sonic_Rainboom.webm" "17_-_Stare_Master.webm" "18_-_The_Show_Stoppers.webm" "19_-_A_Dog_and_Pony_Show.webm" "20_-_Green_Isn't_Your_Color.webm" "21_-_Over_a_Barrel.webm" "22_-_A_Bird_in_the_Hoof.webm" "23_-_The_Cutie_Mark_Chronicles.webm" "24_-_Owl's_Well_That_Ends_Well.webm" "25_-_Party_of_One.webm" "26_-_The_Best_Night_Ever.webm" touch "1_-_Friendship_Is_Magic_(Part_1).webm" "2_-_Friendship_Is_Magic_(Part_2).webm" "3_-_The_Ticket_Master.webm" "4_-_Applebuck_Season.webm" "5_-_Griffon_the_Brush-Off.webm" "6_-_Boast_Busters.webm" "7_-_Dragonshy.webm" "8_-_Look_Before_You_Sleep.webm" "9_-_Bridle_Gossip.webm" "10_-_Swarm_of_the_Century.webm" "11_-_Winter_Wrap_Up.webm" "12_-_Call_of_the_Cutie.webm" "13_-_Fall_Weather_Friends.webm" "14_-_Suited_for_Success.webm" "15_-_Feeling_Pinkie_Keen.webm" "16_-_Sonic_Rainboom.webm" "17_-_Stare_Master.webm" "18_-_The_Show_Stoppers.webm" "19_-_A_Dog_and_Pony_Show.webm" "20_-_Green_Isn't_Your_Color.webm" "21_-_Over_a_Barrel.webm" "22_-_A_Bird_in_the_Hoof.webm" "23_-_The_Cutie_Mark_Chronicles.webm" "24_-_Owl's_Well_That_Ends_Well.webm" "25_-_Party_of_One.webm" "26_-_The_Best_Night_Ever.webm"
cd ../.. cd ../..
mkdir secrets mkdir -p secrets
echo -e "https://www.infokiosques.net : Mine d'or de documentation anarchiste sur tous les sujets de luttes actuelles, passées et futures. Enfin une façon d'apprendre sans s'encombrer de l'école \!\nhttps://www.lamuledupape.com : média indépendant et entêté, qui donne des nouvelles du sud dont on n'entendra jamais parler à la télé ni la radio\nhttps://www.lepoing.net : journal participatif montpeliérain\nhttps://www.rebellyon.fr : actualités des luttes dans la région lyonnaise et le reste de la France\nhttps://www.lemediatv.fr : site de journalisme et actualités en vidéo, fait par des idéalistes indépendant.es" > secrets/ne_pas_ouvrir.txt echo -e "https://www.infokiosques.net : Mine d'or de documentation anarchiste sur tous les sujets de luttes actuelles, passées et futures. Enfin une façon d'apprendre sans s'encombrer de l'école \!\nhttps://www.lamuledupape.com : média indépendant et entêté, qui donne des nouvelles du sud dont on n'entendra jamais parler à la télé ni la radio\nhttps://www.lepoing.net : journal participatif montpeliérain\nhttps://www.rebellyon.fr : actualités des luttes dans la région lyonnaise et le reste de la France\nhttps://www.lemediatv.fr : site de journalisme et actualités en vidéo, fait par des idéalistes indépendant.es" > secrets/ne_pas_ouvrir.txt
mkdir -p Musique
touch Musique/Joey_Gluten_-_Le_Pouvoir_des_Pierres
touch Musique/Trotsky_tulsky
touch Musique/Merryl_coucou
touch Musique/kriill_macarena
touch Musique/Mona_Haydar_-_Hijabi
touch Musique/Aya_Nakamura
touch Musique/Mili_World.execute(me)

96
exercices/gen_enonces.sh Executable file → Normal file
View File

@ -1,16 +1,23 @@
#!/bin/bash #!/bin/bash
if [ "$#" -lt 2 ] ; then if [ "$#" -lt 3 ] ; then
echo 'Usage: $0 <seed> <eleve> [root]' echo 'Usage: $0 <seed> <eleve> [root] <dir> [pw]'
echo '<seed>: seed directory' echo '<seed>: seed directory'
echo '<eleve>: home directory' echo '<eleve>: student name'
echo '[root]: unused. Please dont try to feed it! You have been warned.' echo "<dir>: student's home directory"
echo '[pw]: password storage file. Default=/root/config/passwords.txt'
echo '[root]: Kept starved. Please do not feed it. You have been warned.'
exit 1 exit 1
fi fi
seed=$1 seed=$1
eleve=$2 eleve=$2
root=$3 root=$4
pw="/root/config/passwords.txt"
if [[ "$#" == 5 ]] ; then
pw=$5
fi
mkdir -p enonces/$eleve prof/$eleve mkdir -p enonces/$eleve prof/$eleve
@ -42,7 +49,8 @@ function ex2() {
} }
function ex3() { function ex3() {
#cat a file for instructions, the more cd and touch
folder=$(head -n 3 $seed/$eleve/folders.seed | tail -n 1) folder=$(head -n 3 $seed/$eleve/folders.seed | tail -n 1)
filename=$(head -n 1 $seed/$eleve/filenames.seed) ; filename=$(head -n 1 $seed/$eleve/filenames.seed) ;
folder2=$(head -n 4 $seed/$eleve/folders.seed | tail -n 1) folder2=$(head -n 4 $seed/$eleve/folders.seed | tail -n 1)
@ -55,12 +63,80 @@ function ex3() {
echo -e "#!/bin/bash \nls $folder | grep -i $filename ; exit \$?" > prof/$eleve/ex3.sh echo -e "#!/bin/bash \nls $folder | grep -i $filename ; exit \$?" > prof/$eleve/ex3.sh
} }
function ex4() {
#use echo "blah" > file to write something in a given file
folder=$(head -n 1 $seed/$eleve/folders.seed)
echo -e "Inscris le mot de passe avec lequel tu t'es connecté.e au début de la séance dans le fichier de l'exercice 1.\n\nRappel : ton fichier est censé se trouver dans le dossier $folder" > enonces/$eleve/ex4.txt
echo "#!/bin/bash" > prof/$eleve/ex4.sh
echo "file=\$(ls $folder | grep -m 1 -o -i $eleve)" >> prof/$eleve/ex4.sh
echo "pass=\$(cat $pw | grep -i $eleve | cut -d = -f 2)" >> prof/$eleve/ex4.sh
echo "cat $folder/\$file | grep -w \$pass" >> prof/$eleve/ex4.sh
echo "exit \$?" >> prof/$eleve/ex4.sh
}
function ex5() {
# use cp to make a backup copy
folder=$(head -n 1 $seed/$eleve/folders.seed)
filename=$(head -n 3 $seed/$eleve/filenames.seed | tail -n 1)
echo -e "Nous allons maintenant manipuler le fichier de l'exercice 4 et le déplacer dans l'arborescence de dossiers. \nMais avant toute chose, il s'agit d'une information sensible (ton mot de passe inscrit en clair, tout de même !), nous allons donc en faire une copie de sauvegarde.\nCrée dans le même dossier une copie du fichier $eleve qui s'appellera $eleve.$filename." > enonces/$eleve/ex5.txt
echo -e "#!/bin/bash\ntest -s $folder/$eleve -a \$(cat $folder/$eleve) = \$(cat $folder/$eleve.$filename)\nexit \$?" > prof/$eleve/ex5.sh
}
function ex6() {
#use mkdir
filename=$(head -n 4 $seed/$eleve/filenames.seed | tail -n 1)
echo -e "Il est temps de protéger un peu ces données personnelles e tde s'inquiéter de la sécurité de tes données informatiques.\nCrée un dossier $filename dans $root/unix/home/sudo, puis le sous-dossier password-storage dans $root/unix/home/sudo/$filename.\nCe sera l'emplacement futur des données sensibles." > enonces/$eleve/ex6.txt
echo -e "#!/bin/bash\ntest -d \"$root/unix/home/sudo/$filename/password-storage\"\nexit \$?" > prof/$eleve/ex6.sh
}
function ex7() {
#use mv
folder=$(head -n 1 $seed/$eleve/folders.seed)
folder2=$root/Video/My_Little_Pony-Friendship_is_Magic
filename=$(head -n 5 $seed/$eleve/filenames.seed | tail -n 1)
echo -e "Maintenant que cette piste alléchante a été déposée pour lurer d'éventuels intrus.es, on va ranger ton mot de passe là où personne n'ira jamais le chercher :\nDéplace le fichier $folder/$eleve contenant ton mot de passe dans le dossier $folder2 en le renomant $filename" > enonces/$eleve/ex7.txt
echo -e "#!/bin/bash\n\nexit \$?" > prof/$eleve/ex7.sh
echo "#!/bin/bash" > prof/$eleve/ex7.sh
echo "pass=\$(cat $pw | grep -i $eleve | cut -d = -f 2)" >> prof/$eleve/ex7.sh
echo "if [[ -e $folder/$eleve ]] ; then " >> prof/$eleve/ex7.sh
echo " exit 1" >> prof/$eleve/ex7.sh
echo "else" >> prof/$eleve/ex7.sh
echo " cat $folder2/$filename | grep -w \$pass" >> prof/$eleve/ex7.sh
echo "fi" >> prof/$eleve/ex7.sh
echo "exit \$?" >> prof/$eleve/ex7.sh
}
function ex8() {
#use rm
folder=$(head -n 1 $seed/$eleve/folders.seed)
filename=$(head -n 3 $seed/$eleve/filenames.seed | tail -n 1)
echo -e "Maintenant que tes données sont bien sécurisées et à l'abri de tout.e hackeur.euse mal intentionné.e (ahem...), on peut se débarasser de la copie de sauvegarde que l'on avait faite à l'exercice 5.\nRetourne supprimer le fichier $folder/$eleve.$filename pour effacer tes traces." > enonces/$eleve/ex8.txt
echo -e "#!/bin/bash\ntest ! -e $folder/$eleve.$filename\nexit \$?" > prof/$eleve/ex8.sh
}
ex1 ex1
ex2 ex2
ex3 ex3
ex4
ex5
ex6
ex7
ex8

0
exercices/gen_seed.sh Executable file → Normal file
View File

View File

@ -216,14 +216,3 @@ zèbre
zigomar zigomar
zouave zouave
Zoulou Zoulou
anthropopithèque
flibustier
particulier
sinapisme
anthropopithèque
boit-sans-soif
cornichon
froussard
maraud
paltoquet
sapajou